Module: Ruby::Merge::BlockBindingSupport

Defined in:
lib/ruby/merge/block_binding_support.rb

Overview

Parser-neutral naming policy for a block-local receiver.

Class Method Summary collapse

Class Method Details

.effective_receiver(receiver, block_var, placeholder: :__block_binding__) ⇒ Object



9
10
11
# File 'lib/ruby/merge/block_binding_support.rb', line 9

def effective_receiver(receiver, block_var, placeholder: :__block_binding__)
  block_var && receiver == block_var ? placeholder : receiver
end

.merged_block_var(var, preferred_var) ⇒ Object



17
18
19
# File 'lib/ruby/merge/block_binding_support.rb', line 17

def merged_block_var(var, preferred_var)
  preferred_var || var
end

.preferred_block_var(template_var, destination_var) ⇒ Object



13
14
15
# File 'lib/ruby/merge/block_binding_support.rb', line 13

def preferred_block_var(template_var, destination_var)
  template_var if template_var && destination_var && template_var != destination_var
end