class RawgApi::Entities::BaseEntity
Attributes
delegated_methods[RW]
Public Class Methods
collection(entities, entity_type = self)
click to toggle source
# File lib/rawg_api/entities/base_entity.rb, line 33 def collection(entities, entity_type = self) if !entities.is_a?(Array) && entities.key?(:results) metadata = entities.dup metadata.delete(:results) results = ::ApiStruct::Collection.new(entities[:results], entity_type) EntityResponse.new(metadata, results) else ::ApiStruct::Collection.new(entities, entity_type) end end
delegate_method(resolver_klass = nil, *args)
click to toggle source
# File lib/rawg_api/entities/base_entity.rb, line 17 def delegate_method(resolver_klass = nil, *args) define_method = args[0].to_sym call_method = args[1].to_sym define_singleton_method(define_method) do |*attrs| id = attrs.shift args = attrs.shift || {} if args.empty? resolver_klass.send(call_method, id) else resolver_klass.send(call_method, id, **args) end end self.delegated_methods ||= {} self.delegated_methods[define_method] = {class: resolver_klass, method: call_method} end
new(entity, entity_status = true)
click to toggle source
# File lib/rawg_api/entities/base_entity.rb, line 45 def initialize(entity, entity_status = true) raise EntityError, "#{entity} must be Hash" unless entity.is_a?(Hash) @entity = BaseEntityHashie.new(extract_attributes(entity)) @entity_status = entity_status __setobj__(@entity) end