Sha256: 3a145b830f780d4ec50765c61d8715665f4c6d707b8c7e57e41ba67461ada6bd

Contents?: true

Size: 427 Bytes

Versions: 4

Compression:

Stored size: 427 Bytes

Contents

require 'observed/hash/key_path_encoding'

module Observed
  module Hash
    class Builder
      include Observed::Hash::KeyPathEncoding

      def initialize(defaults={})
        @hash = defaults.dup
      end

      def []=(key_path, value)
        at_key_path_on_hash @hash, key_path, create_if_missing: true do |h, k|
          h[k] = value
        end
      end

      def build
        @hash
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
observed-0.2.0 lib/observed/hash/builder.rb
observed-0.2.0.rc2 lib/observed/hash/builder.rb
observed-0.2.0.rc1 lib/observed/hash/builder.rb
observed-0.1.1 lib/observed/hash/builder.rb