class PokeAPI::Parser::EvolutionChain

Public Class Methods

new(data) click to toggle source
# File lib/pokeapi/parser/evolution_chain.rb, line 8
def initialize(data)
  @data = data.clone
  @chain = data.delete :chain
end
parse(data) click to toggle source
# File lib/pokeapi/parser/evolution_chain.rb, line 4
def self.parse(data)
  new(data).parse
end

Public Instance Methods

parse() click to toggle source
# File lib/pokeapi/parser/evolution_chain.rb, line 13
def parse
  {
    id: @data[:id],
    chain: parse_chain(@chain),
  }
end

Private Instance Methods

parse_chain(chain) click to toggle source
# File lib/pokeapi/parser/evolution_chain.rb, line 22
def parse_chain(chain)
  {
    name: chain[:species][:name],
    evolution_details: EvolutionDetails.parse(chain[:evolution_details].first),
    evolves_to: chain[:evolves_to].map { |evolution_chain| parse_chain(evolution_chain) },
  }
end