Module: WickedPdf::AssetHelper
- Defined in:
- lib/wicked_pdf/asset_helper.rb
Constant Summary collapse
- ASSET_URL_REGEX =
/url\(['"]?([^'"]+?)['"]?\)/
Class Method Summary collapse
Instance Method Summary collapse
- #wicked_pdf_asset_base64(path) ⇒ Object
- #wicked_pdf_asset_path(asset) ⇒ Object
- #wicked_pdf_image_tag(img, options = {}) ⇒ Object
- #wicked_pdf_javascript_include_tag(*sources) ⇒ Object
- #wicked_pdf_javascript_src_tag(jsfile, options = {}) ⇒ Object
- #wicked_pdf_stylesheet_link_tag(*sources) ⇒ Object
Class Method Details
.add_extension(filename, extension) ⇒ Object
11 12 13 |
# File 'lib/wicked_pdf/asset_helper.rb', line 11 def self.add_extension(filename, extension) filename.to_s.split('.').include?(extension) ? filename : "#{filename}.#{extension}" end |
.root_path ⇒ Object
7 8 9 |
# File 'lib/wicked_pdf/asset_helper.rb', line 7 def self.root_path String === Rails.root ? Pathname.new(Rails.root) : Rails.root end |
Instance Method Details
#wicked_pdf_asset_base64(path) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/wicked_pdf/asset_helper.rb', line 15 def wicked_pdf_asset_base64(path) asset = find_asset(path) raise "Could not find asset '#{path}'" if asset.nil? base64 = Base64.encode64(asset.to_s).gsub(/\s+/, '') "data:#{asset.content_type};base64,#{Rack::Utils.escape(base64)}" end |
#wicked_pdf_asset_path(asset) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/wicked_pdf/asset_helper.rb', line 54 def wicked_pdf_asset_path(asset) if (pathname = asset_pathname(asset).to_s) =~ URI_REGEXP pathname else "file:///#{pathname}" end end |
#wicked_pdf_image_tag(img, options = {}) ⇒ Object
38 39 40 |
# File 'lib/wicked_pdf/asset_helper.rb', line 38 def wicked_pdf_image_tag(img, = {}) image_tag wicked_pdf_asset_path(img), end |
#wicked_pdf_javascript_include_tag(*sources) ⇒ Object
47 48 49 50 51 52 |
# File 'lib/wicked_pdf/asset_helper.rb', line 47 def wicked_pdf_javascript_include_tag(*sources) sources.collect do |source| source = WickedPdf::AssetHelper.add_extension(source, 'js') "<script type='text/javascript'>#{read_asset(source)}</script>" end.join("\n").html_safe end |
#wicked_pdf_javascript_src_tag(jsfile, options = {}) ⇒ Object
42 43 44 45 |
# File 'lib/wicked_pdf/asset_helper.rb', line 42 def wicked_pdf_javascript_src_tag(jsfile, = {}) jsfile = WickedPdf::AssetHelper.add_extension(jsfile, 'js') javascript_include_tag wicked_pdf_asset_path(jsfile), end |
#wicked_pdf_stylesheet_link_tag(*sources) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/wicked_pdf/asset_helper.rb', line 23 def wicked_pdf_stylesheet_link_tag(*sources) stylesheet_contents = sources.collect do |source| source = WickedPdf::AssetHelper.add_extension(source, 'css') "<style type='text/css'>#{read_asset(source)}</style>" end.join("\n") stylesheet_contents.gsub(ASSET_URL_REGEX) do if Regexp.last_match[1].starts_with?('data:') "url(#{Regexp.last_match[1]})" else "url(#{wicked_pdf_asset_path(Regexp.last_match[1])})" end end.html_safe end |