class Dicer::Context

Public Class Methods

current() click to toggle source
# File lib/dicer/railtie/context.rb, line 12
def self.current
  Middleware.store[:context]
end
current=(context) click to toggle source
# File lib/dicer/railtie/context.rb, line 8
def self.current=(context)
  Middleware.store[:context] = context
end
current_controller() click to toggle source
# File lib/dicer/railtie/context.rb, line 20
def self.current_controller
  Middleware.store[:current_controller]
end
current_controller=(controller) click to toggle source
# File lib/dicer/railtie/context.rb, line 16
def self.current_controller=(controller)
  Middleware.store[:current_controller] = controller
end
describe(klass, &block) click to toggle source
# File lib/dicer/context.rb, line 12
def self.describe(klass, &block)
  description = Description.new(klass, &block)
  klass = description.described_class

  if descriptions.has_key?(klass)
    descriptions[klass].merge!(description)
  else
    descriptions[klass] = description
  end
end
descriptions() click to toggle source
# File lib/dicer/context.rb, line 5
def self.descriptions
  @descriptions ||=
    self < Dicer::Context ?
      self.superclass.descriptions.dup :
      {}
end

Public Instance Methods

controller() click to toggle source
# File lib/dicer/railtie/context.rb, line 24
def controller
  self.class.current_controller
end
supply(object, role = nil) click to toggle source
# File lib/dicer/context.rb, line 23
def supply(object, role = nil)
  description = self.class.descriptions[object.class]
  delegator = description ?
    (role.nil? ?
      description.delegator :
      description.delegator_for(role)) :
    nil

  delegator ? delegator.new(object) : object
end