Completed
Push — master ( 5bf27b...e7c8e8 )
by Borja
02:18
created

Pet.conocidos()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.125

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
ccs 1
cts 2
cp 0.5
crap 1.125
rs 10
c 0
b 0
f 0
1
#!/usr/bin/ruby
2
# encoding: UTF-8
3
# Clase para gestionar las minimascotas familiares del heroe.
4 1
class Pet < Hash
5 1
  attr_accessor :id, :name, :torpe
6
7 1
  def initialize(args)
8
    args.each do |k, v|
9
      instance_variable_set("@#{k}".to_sym, v) unless v.nil?
10
    end
11
  end
12
13 1
  def personajes
14
    if pet(id)['personajes'] == 'todos'
15
      %w(enano elfo bárbaro mago)
16
    else
17
      pet(id)['personajes']
18
    end
19
  end
20
21 1
  def lacra
22
    pet(id)['lacra']
23
  end
24
25 1
  def bono
26
    pet(id)['bono']
27
  end
28
29 1
  def sex
30
    pet(id)['sex']
31
  end
32
33 1
  def bicho
34
    pet(id)['name']
35
  end # > "pitufo", "rata"
36
37 1
  def img_path
38
    "'../../images/pets/#{bicho}.png'"
39
  end
40
41 1
  def nombre
42
    articulo = sex ? 'la' : 'el'
43
    "#{name.capitalize}, #{articulo} #{bicho.capitalize} #{'torpe' if torpe}"
44
  end
45
46 1
  def descripcion
47
    toprpeza = "<br><b>Penalizador: </b><i>#{lacra}</i>" if torpe
48
    "<b>Bonificador</b>: <i>#{bono}</i>#{toprpeza}"
49
  end
50
51 1
  def conocidos
52
    familiares_conocidos(id)
53
  end
54
end
55
56
# DB Loader
57 1
def pets
58
  load_yaml('personaje/pets')
59
end
60
61 1
def pet(id)
62
  pets[id]
63
end
64
65
# % Statistics
66 1
def porcentaje_heroes_con_familiar
67
  h_familiares = heros.select(&:pet)
68 View Code Duplication
  ((h_familiares.count / heros.count.to_f) * 100.0).round(2)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
69
end
70
71 1
def porcentaje_familiares_torpes
72
  h_familiares = heros.select(&:pet)
73 View Code Duplication
  familiares_torpes = h_familiares.count { |h| h.pet.torpe }
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
74
  ((familiares_torpes.to_f / h_familiares.count) * 100.0).round(2)
75
end
76