module Luchadeer::API

Constants

RESOURCES

Attributes

cache[W]

Public Instance Methods

cache(key, refresh = false) { || ... } click to toggle source
# File lib/luchadeer/api.rb, line 43
def cache(key, refresh = false)
  @cache ||= {}
  @cache.delete(key) if refresh

  if block_given?
    @cache[key] || (@cache[key] = yield)
  else
    @cache.fetch(key)
  end
end
fetch(path, refresh = false, klass = Luchadeer::Resource) click to toggle source
# File lib/luchadeer/api.rb, line 54
def fetch(path, refresh = false, klass = Luchadeer::Resource)
  return unless results = cache(path, refresh) do
    get(path).body[:results]
  end

  results.is_a?(Array) ? results.map { |r| klass.new(r) } : klass.new(results)
end