lib/table_transform/properties.rb
require 'forwardable'
module TableTransform
class Properties
extend Forwardable
def_delegators :@props, :delete, :each, :[]
def initialize(init_properties = {})
validate(init_properties)
@props = init_properties.clone
end
def validate(properties)
raise 'Default properties must be a hash' unless properties.is_a? Hash
end
def to_h
@props.clone
end
def update(properties)
validate(properties)
@props.merge! properties
end
def reset(properties)
validate(properties)
@props = properties
end
end
end