module Rebels::Values::With
Public Instance Methods
attributes()
click to toggle source
# File lib/rebels/values/with.rb, line 2 def attributes keys = self.class.superclass.const_get(:VALUE_ATTRS) keys.reduce({}){|m,e| m.merge(e => self.send(e))} end
with(deltas)
click to toggle source
# File lib/rebels/values/with.rb, line 6 def with(deltas) keys = self.class.superclass.const_get(:VALUE_ATTRS) raise "bad keys #{(deltas.keys - keys)}" if !(deltas.keys - keys).empty? map = Hash[keys.zip(values)] keys.each do |k| map[k] = deltas[k] if deltas.has_key?(k) end self.class.new(*map.values) end