Sha256: 65fd7cfa28ca879b455a1d70e8cbe733a831148d43fc2f1e9056bf2290b8d563

Contents?: true

Size: 605 Bytes

Versions: 3

Compression:

Stored size: 605 Bytes

Contents

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
table_transform-0.6.2 lib/table_transform/properties.rb
table_transform-0.6.1 lib/table_transform/properties.rb
table_transform-0.6.0 lib/table_transform/properties.rb