Class: PairKit::DslFactory::ContextDsl

Inherits:
Object
  • Object
show all
Defined in:
lib/pair_kit/dsl_factory/context_dsl.rb

Instance Method Summary collapse

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, **options, &block)
  builder_name = (options[:builder] = options[: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, **options))
         .tap { |x| x.instance_exec(&block) if block }
end