Class: Rack::Pack
- Inherits:
-
Object
- Object
- Rack::Pack
- Defined in:
- lib/rack/pack.rb,
lib/rack/pack/package.rb,
lib/rack/pack/version.rb,
lib/rack/pack/javascript.rb,
lib/rack/pack/stylesheet.rb
Defined Under Namespace
Classes: Javascript, Package, Stylesheet
Constant Summary collapse
- DEFAULT_OPTIONS =
{ :public_dir => 'public', :always_update => false, :always_compress => false, :js_compression => {}, :css_compression => {} }.freeze
- VERSION =
'0.2.1'
Class Attribute Summary collapse
-
.environment ⇒ Object
Returns the value of attribute environment.
-
.options ⇒ Object
Returns the value of attribute options.
-
.packages ⇒ Object
Returns the value of attribute packages.
Class Method Summary collapse
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}) ⇒ Pack
constructor
A new instance of Pack.
Constructor Details
#initialize(app, options = {}) ⇒ Pack
Returns a new instance of Pack.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rack/pack.rb', line 36 def initialize(app, = {}) @app = app Pack.packages = {} Pack. = DEFAULT_OPTIONS.dup Pack.environment = if defined?(RAILS_ENV) RAILS_ENV # Rails 2 elsif defined?(Rails) && defined?(Rails.env) Rails.env # Rails 3 elsif defined?(app.settings) && defined?(app.settings.environment) app.settings.environment # Sinatra elsif ENV.key?('RACK_ENV') ENV['RACK_ENV'] else :development end Pack..each_key do |key| Pack.[key] = .delete(key) if .key?(key) end Pack.add_package 'javascripts/application.js', '{vendor,app,.}/javascripts/*.js' Pack.add_package 'stylesheets/application.css', '{vendor,app,.}/stylesheets/*.css' .each do |to_file, from_files| Pack.add_package(to_file, from_files) end end |
Class Attribute Details
.environment ⇒ Object
Returns the value of attribute environment.
19 20 21 |
# File 'lib/rack/pack.rb', line 19 def environment @environment end |
.options ⇒ Object
Returns the value of attribute options.
19 20 21 |
# File 'lib/rack/pack.rb', line 19 def @options end |
.packages ⇒ Object
Returns the value of attribute packages.
19 20 21 |
# File 'lib/rack/pack.rb', line 19 def packages @packages end |
Class Method Details
.add_package(output_file, source_files) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/rack/pack.rb', line 25 def add_package(output_file, source_files) if source_files.nil? packages.delete(output_file) else public_output_file = ::File.join(self.[:public_dir], output_file.to_s) package_class = Package[output_file] packages[output_file] = package_class.new(public_output_file, source_files) end end |
.production? ⇒ Boolean
21 22 23 |
# File 'lib/rack/pack.rb', line 21 def production? self.environment.to_s == 'production' end |
Instance Method Details
#call(env) ⇒ Object
65 66 67 68 |
# File 'lib/rack/pack.rb', line 65 def call(env) update_packages unless skip_update? @app.call(env) end |