module PokeApi

Main module for gem operation

Constants

VERSION

Public Class Methods

get(unnamed_resource = nil, **endpoint_opts) click to toggle source
# File lib/poke-api-v2.rb, line 6
def get(unnamed_resource = nil, **endpoint_opts)
  endpoints = sanitize_endpoints(unnamed_resource, endpoint_opts)
  endpoints.map do |key, value|
    klass = value.class == Hash ? ApiResourceList : ENDPOINT_OBJECTS[key]
    klass.new(Fetcher.call(key, value))
  end.first
end
pokedex(query = nil) click to toggle source
# File lib/poke-api-v2.rb, line 14
def pokedex(query = nil)
  query ||= (rand(POKEMON_COUNT) + 1)
  get(pokemon: query)
end

Private Class Methods

sanitize_endpoints(unnamed_resource, endpoint_opts) click to toggle source
# File lib/poke-api-v2.rb, line 21
def sanitize_endpoints(unnamed_resource, endpoint_opts)
  ErrorHandling.unnamed_resource_args if unnamed_resource && !endpoint_opts.empty?

  endpoint_opts[unnamed_resource] = { limit: 20 } if unnamed_resource
  endpoint_opts
end