for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
# Heros filtering and searching methods
def heros
total_heros = Dir['./data/heroes/*'].length
[*0..(total_heros - 1)].map do |i|
h = load_yaml("/heroes/#{i}")
h['nivel'] = 1 unless h['nivel']
h['ciudad'] = 'Jadessvärd' unless h['ciudad']
h['id'] = i
Hero.new(h)
end
def filter_heros(criteria, palabra)
filtered_heros =
case criteria
when 'status'
# TODO: This should be API requests.
lista_status =
case palabra
when 'licenciados' then 'retirado'
when 'heroes' then 'activo'
when 'ausentes' then 'ausente'
when 'reservistas' then 'reserva'
when 'extranjeros' then 'extranjero'
heros.select { |h| h.estado.downcase.include?(lista_status) }
when 'heroe'
heros.select { |h| h.name.downcase.include?(palabra) }
when 'jugador'
heros.select { |h| h.jugador.downcase.include?(palabra) }
when 'raza'
heros.select { |h| h.raza.downcase.include?(palabra) }
when 'mascota'
con_mascota = heros.reject { |h| h.pet.nil? }
con_mascota.select { |h| h.pet.name.downcase.include?(palabra) }
filtered_heros.sort_by { |h| [h.nivel, h.reputacion] }.reverse
def hero(id)
heros[id]
def jugadores
(heros + renegados).map(&:jugador).uniq
def narrados(historiados)
narrados = heros.select { |p| p.historia if p.historia == historiados }
narrados.sort_by { |p| p.premio ? p.premio : 3 }
def nomalize_pj(personaje)
normalization = {
'%C3%A1' => 'á',
'%C3%A9' => 'é',
'%C3%AD' => 'í',
'%C3%B3' => 'ó',
'%C3%BA' => 'ú',
'%CF%B8' => 'ϸ',
}
personaje.gsub(/%C3%A1|%C3%A9|%C3%AD|%C3%B3|%C3%BA|%CF%B8/) do |match|
normalization[match]