Class: WebResourceBundler::Filters::ImageEncodeFilter::Filter
- Inherits:
-
BaseFilter
- Object
- BaseFilter
- WebResourceBundler::Filters::ImageEncodeFilter::Filter
- Defined in:
- lib/web_resource_bundler/filters/image_encode_filter.rb
Constant Summary collapse
- FILE_PREFIX =
'base64_'
- IE_FILE_PREFIX =
'base64_ie_'
- MHTML_FILE_PREFIX =
'mhtml_'
Instance Attribute Summary
Attributes inherited from BaseFilter
Instance Method Summary collapse
- #apply!(block_data) ⇒ Object
-
#encoded_filepath(base_file_path) ⇒ Object
path of a new file with images encoded.
-
#encoded_filepath_for_ie(base_file_path) ⇒ Object
path of a new file for IE with images encoded.
-
#initialize(settings, file_manager) ⇒ Filter
constructor
A new instance of Filter.
-
#mhtml_filepath(base_file_path) ⇒ Object
filepath of mhtml file for IE.
- #set_settings(settings) ⇒ Object
Methods inherited from BaseFilter
Constructor Details
#initialize(settings, file_manager) ⇒ Filter
Returns a new instance of Filter.
9 10 11 12 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 9 def initialize(settings, file_manager) super settings, file_manager @generator = CssGenerator.new(@settings, @file_manager) end |
Instance Method Details
#apply!(block_data) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 19 def apply!(block_data) added_files = [] block_data.styles.each do |file| #creating new css file with content for IE ie_css_file = WebResourceBundler::ResourceFile.new_ie_css_file(encoded_filepath_for_ie(file.path), file.content.dup) #creating new mhtml file with images encoded in base64 mhtml_file = WebResourceBundler::ResourceFile.new_mhtml_file(mhtml_filepath(file.path), "") file.path = encoded_filepath(file.path) #we've created separate file for IE so current file should be marked as CSS only file.types = [WebResourceBundler::ResourceFileType::CSS] unless file.content.empty? @generator.encode_images!(file.content) #getting images to construct mhtml file images = @generator.encode_images_for_ie!(ie_css_file.content, mhtml_file.path) mhtml_file.content = @generator.construct_mhtml_content(images) end added_files << ie_css_file added_files << mhtml_file end block_data.files += added_files block_data end |
#encoded_filepath(base_file_path) ⇒ Object
path of a new file with images encoded
43 44 45 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 43 def encoded_filepath(base_file_path) File.join(@settings[:cache_dir], FILE_PREFIX + File.basename(base_file_path)) end |
#encoded_filepath_for_ie(base_file_path) ⇒ Object
path of a new file for IE with images encoded
48 49 50 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 48 def encoded_filepath_for_ie(base_file_path) File.join(@settings[:cache_dir], IE_FILE_PREFIX + File.basename(base_file_path)) end |
#mhtml_filepath(base_file_path) ⇒ Object
filepath of mhtml file for IE
53 54 55 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 53 def mhtml_filepath(base_file_path) File.join(@settings[:cache_dir], MHTML_FILE_PREFIX + File.basename(base_file_path, ".*") + '.mhtml') end |
#set_settings(settings) ⇒ Object
14 15 16 17 |
# File 'lib/web_resource_bundler/filters/image_encode_filter.rb', line 14 def set_settings(settings) super settings @generator.set_settings(settings) end |