Parent

Methods

Files

Class/Module Index [+]

Quicksearch

Rack::MonetaStore

A Rack middleware that inserts a Moneta store in the environment and supports per-request caching via the the option `:cache => true`.

@example config.ru

# Add Rack::MonetaStore somewhere in your rack stack
use Rack::MonetaStore, :Memory, :cache => true

run lambda { |env|
  env['rack.moneta_store'] # is a Moneta store with per-request caching
}

@example config.ru

# Pass it a block like the one passed to Moneta.build
use Rack::MonetaStore do
  use :Transformer, :value => :zlib
  adapter :Cookie
end

run lambda { |env|
  env['rack.moneta_store'] # is a Moneta store without caching
}

@api public

Public Class Methods

new(app, store = nil, options = {}, &block) click to toggle source
# File lib/rack/moneta_store.rb, line 28
def initialize(app, store = nil, options = {}, &block)
  @app = app
  @cache = options.delete(:cache)
  if block
    raise ArgumentError, 'Use either block or options' unless options.empty?
    @store = ::Moneta.build(&block)
  else
    raise ArgumentError, 'Block or argument store is required' unless @store = store
    @store = ::Moneta.new(@store, options) if Symbol === @store
  end
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/moneta_store.rb, line 40
def call(env)
  env['rack.moneta_store'] = @cache ? ::Moneta::Cache.new(:cache => ::Moneta::Adapters::Memory.new, :adapter => @store) : @store
  @app.call(env)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.