Module: ActiveContext

Defined in:
lib/activecontext.rb,
lib/activecontext/rack.rb,
lib/activecontext/container.rb

Defined Under Namespace

Classes: Container, Rack

Instance Method Summary collapse

Instance Method Details

#biject(*args) ⇒ Object



4
5
6
7
# File 'lib/activecontext.rb', line 4

def biject(*args)
  inject(*args)
  outject(*args)
end

#inject(*names) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/activecontext.rb', line 9

def inject(*names)
  names.each do |name|
    raise "invalid inject name #{name}" if methods.include?(name)
    define_method name do
      (value = Container.current[name]) && value.is_a?(Proc) ? value.call : value
    end
  end
end

#outject(*names) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/activecontext.rb', line 18

def outject(*names)
  names.each do |name|
    raise "invalid outject name #{name}" if methods.include?(:"#{name}=")
    define_method "#{name}=" do |*args|
      Container.current[name] = args.first
    end
  end
end