Class: VSM::DSL::Builder
- Inherits:
-
Object
- Object
- VSM::DSL::Builder
- Defined in:
- lib/vsm/dsl.rb,
lib/vsm/dsl_mcp.rb
Defined Under Namespace
Classes: ChildrenBuilder
Instance Method Summary collapse
- #build ⇒ Object
- #coordination(klass: VSM::Coordination, args: {}) ⇒ Object
- #governance(klass: VSM::Governance, args: {}) ⇒ Object
- #identity(klass: VSM::Identity, args: {}) ⇒ Object
-
#initialize(name) ⇒ Builder
constructor
A new instance of Builder.
- #intelligence(klass: VSM::Intelligence, args: {}) ⇒ Object
- #monitoring(klass: VSM::Monitoring, args: {}) ⇒ Object
- #operations(klass: VSM::Operations, args: {}, &blk) ⇒ Object
Constructor Details
#initialize(name) ⇒ Builder
Returns a new instance of Builder.
7 8 9 10 11 12 |
# File 'lib/vsm/dsl.rb', line 7 def initialize(name) @name = name @roles = {} @children = {} @after_build = [] end |
Instance Method Details
#build ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/vsm/dsl.rb', line 29 def build # Inject governance into tool capsules if they accept it @children.each_value do |child| child.governance = @roles[:governance] if child.respond_to?(:governance=) end capsule = VSM::Capsule.new(name: @name, roles: @roles, children: @children) @after_build.each { _1.call(capsule) } capsule end |
#coordination(klass: VSM::Coordination, args: {}) ⇒ Object
16 |
# File 'lib/vsm/dsl.rb', line 16 def coordination(klass: VSM::Coordination, args: {}) = assign_role(:coordination, klass, args) |
#governance(klass: VSM::Governance, args: {}) ⇒ Object
15 |
# File 'lib/vsm/dsl.rb', line 15 def governance(klass: VSM::Governance, args: {}) = assign_role(:governance, klass, args) |
#identity(klass: VSM::Identity, args: {}) ⇒ Object
14 |
# File 'lib/vsm/dsl.rb', line 14 def identity(klass: VSM::Identity, args: {}) = assign_role(:identity, klass, args) |
#intelligence(klass: VSM::Intelligence, args: {}) ⇒ Object
17 |
# File 'lib/vsm/dsl.rb', line 17 def intelligence(klass: VSM::Intelligence, args: {}) = assign_role(:intelligence, klass, args) |
#monitoring(klass: VSM::Monitoring, args: {}) ⇒ Object
27 |
# File 'lib/vsm/dsl.rb', line 27 def monitoring(klass: VSM::Monitoring, args: {}) = assign_role(:monitoring, klass, args) |
#operations(klass: VSM::Operations, args: {}, &blk) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/vsm/dsl.rb', line 18 def operations(klass: VSM::Operations, args: {}, &blk) @roles[:operations] = instantiate(klass, args) if blk builder = ChildrenBuilder.new(self) builder.instance_eval(&blk) @children.merge!(builder.result) end end |