Class: TenderHash::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/tender_hash/rule.rb

Instance Method Summary collapse

Constructor Details

#initialize(old_key, new_key = nil, options = {}) ⇒ Rule

Returns a new instance of Rule.



4
5
6
7
8
9
# File 'lib/tender_hash/rule.rb', line 4

def initialize(old_key, new_key=nil, options={})
  @old_key = old_key
  @new_key = new_key || old_key
  @caster  = Caster.for(options[:cast_to])
  @default = options[:default]
end

Instance Method Details

#apply(old_hash, new_hash) ⇒ Object



11
12
13
14
# File 'lib/tender_hash/rule.rb', line 11

def apply(old_hash, new_hash)
  new_value = cast_value(old_hash[@old_key])
  new_hash[@new_key] = new_value.nil? ? @default : new_value
end