Module: Luchadeer::API
- Included in:
- Client
- Defined in:
- lib/luchadeer/api.rb
Constant Summary collapse
- RESOURCES =
[ Luchadeer::Accessory, Luchadeer::Character, Luchadeer::Chat, Luchadeer::Company, Luchadeer::Concept, Luchadeer::Franchise, Luchadeer::Game, Luchadeer::GameRating, Luchadeer::Genre, Luchadeer::Location, Luchadeer::Object, Luchadeer::Person, Luchadeer::Platform, Luchadeer::Promo, Luchadeer::RatingBoard, Luchadeer::Region, Luchadeer::Release, Luchadeer::Review, Luchadeer::Theme, Luchadeer::UserReview, Luchadeer::Video, Luchadeer::VideoType ]
Instance Attribute Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#cache(key, refresh = false) ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# 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 |
Instance Method Details
#fetch(path, refresh = false, klass = Luchadeer::Resource) ⇒ Object
54 55 56 57 58 59 60 |
# 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 |