Class: Locomotive::Steam::Middlewares::DynamicAssets

Inherits:
Object
  • Object
show all
Defined in:
lib/locomotive/steam/middlewares/dynamic_assets.rb

Constant Summary collapse

REGEXP =
/^\/(javascripts|stylesheets)\/(.*)$/o
@@sprocket_environments =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, options) ⇒ DynamicAssets

Returns a new instance of DynamicAssets.



12
13
14
15
# File 'lib/locomotive/steam/middlewares/dynamic_assets.rb', line 12

def initialize(app, options)
  @app    = app
  @assets = self.class.sprocket_environment(options[:root], options)
end

Instance Attribute Details

#appObject (readonly)

Returns the value of attribute app.



10
11
12
# File 'lib/locomotive/steam/middlewares/dynamic_assets.rb', line 10

def app
  @app
end

#assetsObject (readonly)

Returns the value of attribute assets.



10
11
12
# File 'lib/locomotive/steam/middlewares/dynamic_assets.rb', line 10

def assets
  @assets
end

Class Method Details

.sprocket_environment(root, options) ⇒ Object



26
27
28
# File 'lib/locomotive/steam/middlewares/dynamic_assets.rb', line 26

def self.sprocket_environment(root, options)
  @@sprocket_environments[root] ||= Locomotive::Steam::SprocketsEnvironment.new(root, options)
end

Instance Method Details

#call(env) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/locomotive/steam/middlewares/dynamic_assets.rb', line 17

def call(env)
  if env['PATH_INFO'] =~ REGEXP
    env['PATH_INFO'] = $2
    assets.call(env)
  else
    app.call(env)
  end
end