Sha256: 2ab7eebc75eb278d62639436a3e02747db51c066b821512737f17f0f6803263d
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
module Htmltoword module HtmltowordHelper def template_file template_file_name=nil default_path = File.join(::Htmltoword.templates_path, 'default.docx') template_path = template_file_name.present? ? File.join(::Htmltoword.templates_path, template_file_name) : '' File.exist?(template_path) ? template_path : default_path end def replace_values content, set doc = Nokogiri::HTML(content) set.each_pair do |key, value| fields = (doc/"//span[@data-id='#{key}']") fields.each do |f| date_format = f.attr('date-format') || 'long' data_transform = f.attr('data-transform') if value.is_a? Hash view = ActionView::Base.new(ActionController::Base.view_paths, {}) final_value = view.render 'partials/answer_table', :answer => value fragment = doc.root.parse(final_value).first new_node = doc.root.add_child(fragment) f.parent.replace new_node elsif value.is_a? Time f.content = I18n.l(value.to_date, :format => date_format.to_sym) elsif data_transform == 'capitalized' f.content = value.mb_chars.capitalize rescue value else f.content = value end end end doc.to_s end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
htmltoword-1.8.7-0.1.8.rc2 | lib/htmltoword/htmltoword_helper.rb |
htmltoword-1.8.7-0.1.8.rc1 | lib/htmltoword/htmltoword_helper.rb |