Class: WebResourceBundler::Bundler
- Inherits:
-
Object
- Object
- WebResourceBundler::Bundler
- Includes:
- Singleton
- Defined in:
- lib/web_resource_bundler.rb
Instance Attribute Summary collapse
-
#filters ⇒ Object
readonly
Returns the value of attribute filters.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
-
#settings_correct ⇒ Object
readonly
Returns the value of attribute settings_correct.
Instance Method Summary collapse
-
#initialize ⇒ Bundler
constructor
A new instance of Bundler.
-
#process(block, domain, protocol) ⇒ Object
main method to process html text block.
-
#set_settings(settings) ⇒ Object
this method should be used to turn onoff filters on particular request.
-
#setup(rails_root, rails_env) ⇒ Object
this method should called in initializer.
Constructor Details
#initialize ⇒ Bundler
Returns a new instance of Bundler.
23 24 25 26 27 28 29 30 |
# File 'lib/web_resource_bundler.rb', line 23 def initialize @filters = {} @settings = nil @file_manager = FileManager.new('','') @parser = BlockParser.new @logger = nil @settings_correct = false end |
Instance Attribute Details
#filters ⇒ Object (readonly)
Returns the value of attribute filters.
21 22 23 |
# File 'lib/web_resource_bundler.rb', line 21 def filters @filters end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
21 22 23 |
# File 'lib/web_resource_bundler.rb', line 21 def logger @logger end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
21 22 23 |
# File 'lib/web_resource_bundler.rb', line 21 def settings @settings end |
#settings_correct ⇒ Object (readonly)
Returns the value of attribute settings_correct.
21 22 23 |
# File 'lib/web_resource_bundler.rb', line 21 def settings_correct @settings_correct end |
Instance Method Details
#process(block, domain, protocol) ⇒ Object
main method to process html text block
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/web_resource_bundler.rb', line 52 def process(block, domain, protocol) if @settings_correct begin filters = filters_array #passing current request domain and protocol to each filter filters.each do |filter| SettingsManager.set_request_specific_settings!(filter.settings, domain, protocol) end #parsing html text block, creating BlockData instance block_data = @parser.parse(block) #if filters set and no bundle files exists we should process block data unless filters.empty? or bundle_upto_date?(block_data) #reading files content and populating block_data read_resources!(block_data) #applying filters to block_data block_data.apply_filters(filters) #writing resulted files with filtered content on disk write_files_on_disk(block_data) @logger.info("files written on disk") return block_data end #bundle up to date, returning existing block with modified file names block_data.apply_filters(filters) return block_data rescue Exceptions::WebResourceBundlerError => e @logger.error(e.to_s) return nil rescue Exception => e @logger.error(e.backtrace.join("\n") + "Unknown error occured: " + e.to_s) return nil end end end |
#set_settings(settings) ⇒ Object
this method should be used to turn onoff filters on particular request
45 46 47 48 49 |
# File 'lib/web_resource_bundler.rb', line 45 def set_settings(settings) @settings.merge!(settings) @settings_correct = SettingsManager.settings_correct?(@settings) set_filters(@settings, @file_manager) end |
#setup(rails_root, rails_env) ⇒ Object
this method should called in initializer
33 34 35 36 37 38 39 40 41 |
# File 'lib/web_resource_bundler.rb', line 33 def setup(rails_root, rails_env) @settings = SettingsManager.create_settings(rails_root, rails_env) @settings_correct = SettingsManager.settings_correct?(@settings) if @settings_correct @logger = create_logger(@settings[:log_path]) unless @logger @file_manager.resource_dir, @file_manager.cache_dir = @settings[:resource_dir], @settings[:cache_dir] set_filters(@settings, @file_manager) end end |