Sha256: 91968973221a0b805b16cee688fa72c4fc5c7f04545b76af17b67776841bbce6

Contents?: true

Size: 752 Bytes

Versions: 1

Compression:

Stored size: 752 Bytes

Contents

require_relative 'hash_with_indifferent_access'

module Simple
end

class Simple::Hash < Simple::HashWithIndifferentAccess
  VERSION = "1.1.0"

  def method_missing(method_name, *args, &block)
    if keys.map(&:to_s).include?(method_name.to_s) && args.empty? && block.nil?
      fetch(method_name)
    else
      super
    end
  end

  def respond_to_missing?(method_name, include_private = false)
    keys.map(&:to_s).include?(method_name.to_s) || super
  end

  def methods
    super + keys.map(&:to_sym)
  end

  protected

  def convert_value(value, options = {})
    if value.is_a?(Hash)
      Simple::Hash.new(value).freeze
    elsif value.is_a?(Array)
      value.map { |val| convert_value(val, options) }
    else
      value
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-hash-1.1.0 lib/simple/hash.rb