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