module PagesHelper def parse_pp_tags(file) opened_file = File.open(file) doc = Nokogiri::HTML(opened_file, nil, "UTF-8") opened_file.close pps = doc.css("*[data-pp]") pps.each do |pp| pp.content = "
" end doc.to_html end def render_widget_for_frontend(controller_name, widget_method, widget_file) file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb")) doc = Nokogiri::HTML(file, nil, "UTF-8") file.close wrap_elements = doc.css("*[data-repeat]") controller = "#{controller_name.capitalize}Controller".classify.constantize.new data = controller.send("#{widget_method}") wrap_elements.each do |wrap_element| html_to_render = "" data.each do |item| el = wrap_element.inner_html item.each do |key,value| el = el.gsub("{{#{key}}}",value) el = el.gsub("%7B%7B#{key}%7D%7D",value) end html_to_render = html_to_render + el end wrap_element.inner_html = html_to_render end doc.to_s.html_safe end end