Sha256: 6ab8796939a3fb76632a71d5fc90e98961bb8d5122e96492518a7ed51d5f233e

Contents?: true

Size: 920 Bytes

Versions: 6

Compression:

Stored size: 920 Bytes

Contents

# frozen_string_literal: true

module Grape
  module Util
    module Lazy
      class ValueEnumerable < Value
        def [](key)
          if @value_hash[key].nil?
            Value.new(nil).reached_by(access_keys, key)
          else
            @value_hash[key].reached_by(access_keys, key)
          end
        end

        def fetch(access_keys)
          fetched_keys = access_keys.dup
          value = self[fetched_keys.shift]
          fetched_keys.any? ? value.fetch(fetched_keys) : value
        end

        def []=(key, value)
          @value_hash[key] = case value
                             when Hash
                               ValueHash.new(value)
                             when Array
                               ValueArray.new(value)
                             else
                               Value.new(value)
                             end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
grape-2.3.0 lib/grape/util/lazy/value_enumerable.rb
grape-2.2.0 lib/grape/util/lazy/value_enumerable.rb
grape-2.1.3 lib/grape/util/lazy/value_enumerable.rb
grape-2.1.2 lib/grape/util/lazy/value_enumerable.rb
grape-2.1.1 lib/grape/util/lazy/value_enumerable.rb
grape-2.1.0 lib/grape/util/lazy/value_enumerable.rb