class RubyJisho::Results

Enumberable to store metadata and wrap Result objects cleanly

Attributes

payload[R]

Public Class Methods

new(payload) click to toggle source
# File lib/ruby_jisho/results.rb, line 10
def initialize(payload)
  @payload = JSON.parse(payload, symbolize_names: true)
end

Public Instance Methods

each() { |r| ... } click to toggle source
# File lib/ruby_jisho/results.rb, line 22
def each
  data.each { |r| yield r }
end
keys() click to toggle source
# File lib/ruby_jisho/results.rb, line 18
def keys
  payload.keys
end
meta() click to toggle source
# File lib/ruby_jisho/results.rb, line 14
def meta
  payload.fetch(:meta, {})
end
method_missing(sym, *args, &block) click to toggle source
Calls superclass method
# File lib/ruby_jisho/results.rb, line 26
def method_missing(sym, *args, &block)
  if keys.include?(sym)
    payload.fetch(sym)
  else
    super
  end
end
respond_to_missing?(method_name, include_private = false) click to toggle source
Calls superclass method
# File lib/ruby_jisho/results.rb, line 34
def respond_to_missing?(method_name, include_private = false)
  keys.include?(method_name) || super
end

Private Instance Methods

data() click to toggle source
# File lib/ruby_jisho/results.rb, line 40
def data
  payload.fetch(:data, [{}])
         .map { |r| Result.new(r) }
end