Class: PairKit::DslFactory::ContextDsl
- Inherits:
-
Object
- Object
- PairKit::DslFactory::ContextDsl
- Defined in:
- lib/pair_kit/dsl_factory/context_dsl.rb
Instance Method Summary collapse
- #call(thing, **options, &block) ⇒ Object
-
#initialize(dsl, context) ⇒ ContextDsl
constructor
A new instance of ContextDsl.
Constructor Details
#initialize(dsl, context) ⇒ ContextDsl
Returns a new instance of ContextDsl.
4 5 6 7 |
# File 'lib/pair_kit/dsl_factory/context_dsl.rb', line 4 def initialize(dsl, context) @dsl = dsl @context = context end |
Instance Method Details
#call(thing, **options, &block) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/pair_kit/dsl_factory/context_dsl.rb', line 9 def call(thing, **, &block) builder_name = ([:builder] = [:builder]&.to_sym || @dsl.default_builder) builder_class = @dsl.builders[builder_name] || raise("Unknown builder #{builder_name}") Wrapper.new(builder_name, builder_class.new(self, thing, @context, **)) .tap { |x| x.instance_exec(&block) if block } end |