Class: Antwort::EmailBuilder
- Defined in:
- lib/antwort/builder/email.rb
Instance Attribute Summary collapse
-
#html_markup ⇒ Object
Returns the value of attribute html_markup.
Attributes inherited from Builder
#asset_server, #build_dir, #build_id, #css, #css_style, #markup_dir, #scss_dir, #source_dir, #template
Instance Method Summary collapse
- #build! ⇒ Object
- #build_html! ⇒ Object
- #cleanup_markup(markup) ⇒ Object
- #inline_css! ⇒ Object
- #post_initialize ⇒ Object
Methods inherited from Builder
#build, #build_css!, #compile_scss, #create_build_directories!, #flatten_inlined_css, #initialize, #load_css, #use_asset_server
Methods included from MarkupSanitizers
#add_included_css, #remove_excessive_newlines, #remove_extra_dom, #remove_livereload, #remove_roadie_flags
Methods included from LogicHelpers
#cleanup_logic, #convert_helper_wrappers, #convert_partials_to_includes, #preserve_assignments, #preserve_comments, #preserve_conditionals, #preserve_leftover_statements, #preserve_logic, #preserve_loops, #preserve_nbsps, #preserve_variables, #restore_nbsps, #restore_variables_in_links
Methods included from FileHelpers
#count_files, #create_file!, #email_id_from_folder_name, #list_folders
Methods included from Helpers
Constructor Details
This class inherits a constructor from Antwort::Builder
Instance Attribute Details
#html_markup ⇒ Object
Returns the value of attribute html_markup.
3 4 5 |
# File 'lib/antwort/builder/email.rb', line 3 def html_markup @html_markup end |
Instance Method Details
#build! ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/antwort/builder/email.rb', line 19 def build! unless html_markup.nil? build_css! build_html! inline_css! end sleep 1 until File.exist?(@inlined_file) true end |
#build_html! ⇒ Object
30 31 32 33 34 35 |
# File 'lib/antwort/builder/email.rb', line 30 def build_html! markup = html_markup markup = markup.gsub("/assets/#{template.name}/inline.css", 'inline.css') .gsub("/assets/#{template.name}/include.css", 'include.css') create_file!(content: markup, path: "#{markup_dir}/#{template.name}.html") end |
#cleanup_markup(markup) ⇒ Object
52 53 54 55 56 |
# File 'lib/antwort/builder/email.rb', line 52 def cleanup_markup(markup) content = use_asset_server(markup) content = add_included_css(content) content end |
#inline_css! ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/antwort/builder/email.rb', line 37 def inline_css! markup = preserve_nbsps(html_markup) document = Roadie::Document.new(markup) document.asset_providers << Roadie::NullProvider.new document.add_css(css) inlined = restore_nbsps(document.transform) inlined = cleanup_markup(inlined) inlined = remove_roadie_flags(inlined) inlined = remove_excessive_newlines(inlined) inlined = flatten_inlined_css(inlined) create_file!(content: inlined, path: @inlined_file) end |
#post_initialize ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/antwort/builder/email.rb', line 5 def post_initialize(*) app ||= Antwort::Server.new mock ||= Rack::MockRequest.new(app) @request = mock.get("/template/#{template.name}") if template_is_valid? create_build_directories! @html_markup = remove_livereload(@request.body) @inlined_file = "#{build_dir}/#{template.name}.html" else end end |