class Rack::Tipi::Assets

Attributes

app[R]
tipi_root[R]

Public Class Methods

new(app, options) click to toggle source
# File lib/rack/tipi/assets.rb, line 8
def initialize(app, options)
  @app = app
  @tipi_root = options[:tipi_root]
end
register(namespace, path, route) click to toggle source
# File lib/rack/tipi/assets.rb, line 29
def self.register(namespace, path, route)
  asset = Asset.new(namespace, path, route)
  (@resources ||= []) << asset unless resources.include? asset
end
resources() click to toggle source
# File lib/rack/tipi/assets.rb, line 25
def self.resources
  @resources || []
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/tipi/assets.rb, line 13
def call(env)
  asset = self.class.resources.detect do |a|
    "#{tipi_root}#{a.route}" == env['REQUEST_PATH']
  end

  if asset
    [ 200, { 'Content-Type' => asset.mime_type }, [ asset.content ] ]
  else
    app.call(env)
  end
end