Class: Animals

Inherits:
Object
  • Object
show all
Defined in:
lib/animals.rb

Direct Known Subclasses

Barnyard, Birds, Cats, Dogs, Equine, Pigs, Rabbits, Small

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Animals

Returns a new instance of Animals.



4
5
6
7
# File 'lib/animals.rb', line 4

def initialize(attributes)
  attributes.each {|k, v| self.send(("#{k}="), v)}
  self.class.all << self unless self.class.all.any? {|pet| pet.url == self.url}
end

Instance Attribute Details

#ageObject

Returns the value of attribute age.



2
3
4
# File 'lib/animals.rb', line 2

def age
  @age
end

#breedObject

Returns the value of attribute breed.



2
3
4
# File 'lib/animals.rb', line 2

def breed
  @breed
end

#colorObject

Returns the value of attribute color.



2
3
4
# File 'lib/animals.rb', line 2

def color
  @color
end

#descriptionObject

Returns the value of attribute description.



2
3
4
# File 'lib/animals.rb', line 2

def description
  @description
end

#nameObject

Returns the value of attribute name.



2
3
4
# File 'lib/animals.rb', line 2

def name
  @name
end

#sexObject

Returns the value of attribute sex.



2
3
4
# File 'lib/animals.rb', line 2

def sex
  @sex
end

#sizeObject

Returns the value of attribute size.



2
3
4
# File 'lib/animals.rb', line 2

def size
  @size
end

#speciesObject

Returns the value of attribute species.



2
3
4
# File 'lib/animals.rb', line 2

def species
  @species
end

#urlObject

Returns the value of attribute url.



2
3
4
# File 'lib/animals.rb', line 2

def url
  @url
end

Class Method Details

.create_new(pet_array) ⇒ Object



9
10
11
12
13
# File 'lib/animals.rb', line 9

def self.create_new(pet_array)
  pet_array.each do |pet_hash|
    self.new(pet_hash)
  end
end

Instance Method Details

#add_attributes(details_hash) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/animals.rb', line 15

def add_attributes(details_hash)
  details_hash.each do |k, v|
    self.send(("#{k}="), v)
  end
  check_attributes_for_nil
  self
end

#check_attributes_for_nilObject



23
24
25
26
27
28
29
30
31
# File 'lib/animals.rb', line 23

def check_attributes_for_nil
  attributes = ["species", "name", "breed", "age", "url", "size", "color", "sex", "description"]
  empty = [" ", "", nil]
  attributes.each do |var|
    if empty.any? { |e| self.send("#{var}") == e}
      self.send(("#{var}="), "N/A")
    end
  end
end