class Minicontext::Environment

Attributes

memoized[R]
request[R]
response[R]

Public Class Methods

new(request, response = nil) click to toggle source
# File lib/minicontext/environment.rb, line 5
def initialize(request, response = nil)
  @request  = request
  @response = response
  @memoized = {}
end

Public Instance Methods

action(&block) click to toggle source
# File lib/minicontext/environment.rb, line 29
def action(&block)
  instance_eval(&block)
end
bind(val) click to toggle source
# File lib/minicontext/environment.rb, line 11
def bind(val)
  dup.tap { |env| env.response = val }
end
call(context, &block) click to toggle source
# File lib/minicontext/environment.rb, line 37
def call(context, &block)
  @context = context

  bind(short_circuit? ? @response : action(&block))
end
fetch(name) click to toggle source
# File lib/minicontext/environment.rb, line 25
def fetch(name)
  (f = @context.lookup(name)) && f.(self).response
end
halt(*args) click to toggle source
# File lib/minicontext/environment.rb, line 21
def halt(*args)
  Halt.new(*args)
end
response=(val) click to toggle source
# File lib/minicontext/environment.rb, line 15
def response=(val)
  raise AssignError, 'response' if response

  @response = val
end
short_circuit?() click to toggle source
# File lib/minicontext/environment.rb, line 33
def short_circuit?
  Halt === @response
end

Private Instance Methods

initialize_copy(obj) click to toggle source
# File lib/minicontext/environment.rb, line 45
def initialize_copy(obj)
  @context  = nil
  @response = nil
end