Module: AdaptivePayments::Aliases

Includes:
Forwardable
Included in:
JsonModel
Defined in:
lib/pp-adaptive/support/aliases.rb

Overview

Provides an interface to create shortcuts to child nodes without traversing an object graph

Instance Method Summary collapse

Instance Method Details

#alias_param(attr, alias_name, original_name) ⇒ Object

Invoke alias_name as if original_name were invoked on attr

Parameters:

  • attr (Symbol)

    the name of the attribute containing the child node

  • alias_name (Symbol)

    the name of the alias method to define

  • original_name (Symbol)

    the name of the original method in attr



17
18
19
20
21
# File 'lib/pp-adaptive/support/aliases.rb', line 17

def alias_param(attr, alias_name, original_name)
  def_delegator attr, original_name,        alias_name
  def_delegator attr, :"#{original_name}=", :"#{alias_name}="
  def_delegator attr, :"#{original_name}?", :"#{alias_name}?" # FIXME: Only alias this for Booleans
end

#alias_params(attr, aliases) ⇒ Object

Shortcut for definining multiple aliases in a single call

Parameters:

  • attr (Symbol)

    the name of the attribute containing the child node

  • aliases (Hash)

    a Hash mapping { :alias_name => :original_name }



29
30
31
# File 'lib/pp-adaptive/support/aliases.rb', line 29

def alias_params(attr, aliases)
  aliases.each { |k, v| alias_param(attr, k, v) }
end