class PokeApi::NamedApiResource
Base class with shared methods for all Named API Resources
Attributes
id[R]
name[R]
url[R]
Public Instance Methods
get()
click to toggle source
# File lib/poke_api/named_api_resource.rb, line 8 def get return if id data = Fetcher.call_uri(url) assign_data(data) self end
Private Instance Methods
assign_data(data)
click to toggle source
# File lib/poke_api/named_api_resource.rb, line 18 def assign_data(data) return unless data data.each_key do |key| data_chunk = data[key] if (klass = endpoint_assignment(key: key, custom_endpoint_object: custom_endpoint_object)) assign_object(klass, data_chunk, key) else instance_variable_set("@#{key}", data_chunk) end end end
assign_object(klass, data, key)
click to toggle source
# File lib/poke_api/named_api_resource.rb, line 31 def assign_object(klass, data, key) return unless data assignment = if data.is_a? Array assign_list(klass: klass, data: data) else klass.new(data) end instance_variable_set("@#{key}", assignment) end