hash_wrapper.rb
593 Bytes
module Searchkick
class HashWrapper
def initialize(data)
@data = data
end
def method_missing(m, *args, &block)
if @data.key?(m.to_s)
raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0)" if args.any?
@data[m.to_s]
else
super
end
end
def respond_to?(m, include_private = false)
@data.key?(m.to_s) || super
end
def to_h
@data
end
def inspect
str = @data.map { |k, v| "#{k}=#{v.inspect}" }.join(" ")
"#<Searchkick::HashWrapper #{str}>"
end
end
end