require 'erubis' module RenderHelper def get_current_language() if respond_to?(:current_page) current_page.metadata[:locals][:language] else nil end end def echo(str, template_data = nil) if str.nil? return "" end language = (template_data and template_data[:language]) ? template_data[:language] : get_current_language if respond_to?(:current_page) current_page.metadata[:locals].keys.each do |key| singleton_class.send(:define_method, key) { current_page.metadata[:locals][key] } end end if (not template_data.nil?) and template_data template_data.each do |key, value| singleton_class.send(:define_method, key) { value } if [:method_snippet_obj, :parameter_snippet_obj].include?(key) and not value.nil? if key == :method_snippet_obj link = edit_link("/data/api_methods/#{value['method_key']}/#{value['method_key']}_snippet.yml", 'this snippet') end if key == :parameter_snippet_obj link = edit_link("/data/parameters/#{value['param_key']}.yml", 'this snippet') end singleton_class.send(:define_method, '_snippet') { value } value.to_h.keys.each do |snippet_key| singleton_class.send(:define_method, snippet_key) { value[snippet_key] } end end end end template = Erubis::Eruby.new(str) res = template.result(binding) end def render_current_page(options) if config[:stage] == 'develop' current_page.render({layout: 'raw'}, options) else @@page_content ||= {} @@page_content[current_page.destination_path] ||= current_page.render({layout: 'raw'}, options) @@page_content[current_page.destination_path] end end def snippet(name, force_tabs=false) snippet = nil if name.instance_of?(String) snippet = current_page.metadata[:locals][:guide_snippet] if snippet edit_link = edit_link("/source/#{current_page.metadata[:locals][:snippet_file]}", 'snippet') if snippet[name.to_sym] snippet = snippet[name.to_sym] end else snippet = name return "
" out << "" out << "" out << "" out << "" out << "Copy" out << "" out << "" out << "
" out << "" out << "" out << "" out << "" out << "" out << "Edit #{ressource_name}" out << "" out << "" out << "
" out.join('') end end end