Class: Holodekk::Builder
- Inherits:
-
Object
- Object
- Holodekk::Builder
- Defined in:
- lib/holodekk/builder.rb,
lib/holodekk/builder/option.rb,
lib/holodekk/builder/instruction.rb
Direct Known Subclasses
Defined Under Namespace
Classes: Instruction, Option
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(instructions, options = nil) ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize(instructions, options = nil) ⇒ Builder
Returns a new instance of Builder.
28 29 30 31 |
# File 'lib/holodekk/builder.rb', line 28 def initialize(instructions, = nil) @instructions = instructions @options = end |
Class Method Details
.instruction(klass) ⇒ Object
9 10 11 12 13 14 15 |
# File 'lib/holodekk/builder.rb', line 9 def instruction(klass) method_name = klass.name.split('::').last.underscore define_method method_name do |*args, **kwargs, &block| ins = klass.build(*args, **kwargs, &block) @instructions << ins end end |
.option(klass) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/holodekk/builder.rb', line 17 def option(klass) method_name = klass.name.split('::').last.underscore define_method method_name do |*args, **kwargs, &block| raise "option #{method_name} invoked, but no options target supplied to builder." if @options.nil? opt = klass.build(*args, **kwargs, &block) @options << opt end end |