Class: WebResourceBundler::Filters::BundleFilter::Filter
- Inherits:
-
WebResourceBundler::Filters::BaseFilter
- Object
- WebResourceBundler::Filters::BaseFilter
- WebResourceBundler::Filters::BundleFilter::Filter
- Defined in:
- lib/web_resource_bundler/filters/bundle_filter.rb
Instance Attribute Summary
Attributes inherited from WebResourceBundler::Filters::BaseFilter
Instance Method Summary collapse
- #apply!(block_data) ⇒ Object
- #bundle_filepath(type, files) ⇒ Object
-
#css_bundle_filepath(files) ⇒ Object
just aliases to simplify code.
- #get_md5(files) ⇒ Object
-
#initialize(settings, file_manager) ⇒ Filter
constructor
A new instance of Filter.
- #js_bundle_filepath(files) ⇒ Object
Methods inherited from WebResourceBundler::Filters::BaseFilter
Constructor Details
#initialize(settings, file_manager) ⇒ Filter
Returns a new instance of Filter.
7 8 9 10 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 7 def initialize(settings, file_manager) super(settings, file_manager) @packager = ResourcePackager.new(@settings, @file_manager) end |
Instance Method Details
#apply!(block_data) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 12 def apply!(block_data) new_files = [] unless block_data.styles.empty? new_css_filename = css_bundle_filepath(block_data.styles) new_css_content = @packager.bundle_files(block_data.styles) new_css_file = WebResourceBundler::ResourceFile.new_style_file(new_css_filename, new_css_content) new_files << new_css_file end unless block_data.scripts.empty? new_js_filename = js_bundle_filepath(block_data.scripts) new_js_content = @packager.bundle_files(block_data.scripts) new_js_file = WebResourceBundler::ResourceFile.new_js_file(new_js_filename, new_js_content) new_files << new_js_file end block_data.files = new_files block_data end |
#bundle_filepath(type, files) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 38 def bundle_filepath(type, files) unless files.empty? items = [type[:name] + '_' + get_md5(files)] items += @settings[:filename_additional_data] if @settings[:filename_additional_data] items << type[:ext] return File.join(@settings[:cache_dir], items.join('.')) else return nil end end |
#css_bundle_filepath(files) ⇒ Object
just aliases to simplify code
50 51 52 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 50 def css_bundle_filepath(files) bundle_filepath(WebResourceBundler::ResourceFileType::CSS, files) end |
#get_md5(files) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 30 def get_md5(files) items = [(files.map {|f| f.path }).sort] items << @settings[:protocol] items << @settings[:domain] items += @settings[:md5_additional_data] if @settings[:md5_additional_data] Digest::MD5.hexdigest(items.flatten.join('|')) end |
#js_bundle_filepath(files) ⇒ Object
54 55 56 |
# File 'lib/web_resource_bundler/filters/bundle_filter.rb', line 54 def js_bundle_filepath(files) bundle_filepath(WebResourceBundler::ResourceFileType::JS, files) end |