Module: Greedy::DCI

Included in:
Greedy
Defined in:
lib/greedy/dci.rb,
lib/greedy/dci/role.rb,
lib/greedy/dci/context.rb,
lib/greedy/dci/version.rb

Defined Under Namespace

Modules: Context Classes: Role

Constant Summary collapse

VERSION =
"1.1.1"

Instance Method Summary collapse

Instance Method Details

#context(&block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/greedy/dci.rb', line 7

def context(&block)
  roles = block.parameters.map &:last
  -> **where do
    actors = where.values_at(*roles)
    Struct.new(*roles) do
      include Context
      class_exec(*actors.map(&Role), &block)
    end.new *actors
  end
end