class RedditGet::Data
Allow to use method call chains instead of Hash keys navigation
Public Class Methods
new(data)
click to toggle source
# File lib/reddit_get.rb, line 14 def initialize(data) @data = data end
Public Instance Methods
[](key)
click to toggle source
# File lib/reddit_get.rb, line 31 def [](key) @data.fetch(key) end
method_missing(method, *_args)
click to toggle source
# File lib/reddit_get.rb, line 35 def method_missing(method, *_args) @data.send(method) rescue NoMethodError out = @data.fetch(method.to_s) case out when Hash Data.new(out) when Array out.map { |i| Data.new(i) } else out end end
objectify(data)
click to toggle source
# File lib/reddit_get.rb, line 18 def objectify(data) data.transform_values! do |v| case v when Hash Data.new(v) when Array v.map { |i| Data.new(i) } else v end end end
respond_to_missing?(method)
click to toggle source
Calls superclass method
# File lib/reddit_get.rb, line 49 def respond_to_missing?(method) @data.key?(method_name.to_s) || super end