Module: Foobara::Callback::Block::Concerns::KeywordArgumentableBlock

Included in:
After, Around, Before
Defined in:
foobara-0.0.110/projects/callback/src/block/concerns/keyword_argumentable_block.rb

Instance Method Summary collapse

Instance Method Details

#to_procObject



6
7
8
9
10
11
12
13
14
# File 'foobara-0.0.110/projects/callback/src/block/concerns/keyword_argumentable_block.rb', line 6

def to_proc
  @to_proc ||= if has_keyword_args?
                 proc do |*args, &block|
                   original_block.call(**args.reduce(:merge), &block)
                 end
               else
                 original_block
               end
end

#validate_original_block!Object



16
17
18
19
20
21
22
23
24
25
# File 'foobara-0.0.110/projects/callback/src/block/concerns/keyword_argumentable_block.rb', line 16

def validate_original_block!
  super

  if has_keyword_args? && has_positional_args?
    # TODO: raise a real error
    # :nocov:
    raise "Expect #{type} block to either take a positional arg or keyword args but not both"
    # :nocov:
  end
end