Class: DogBreeds::Breeds

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

Constant Summary collapse

@@group_number =
""

Class Method Summary collapse

Class Method Details

.listObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/dog_breeds/breeds.rb', line 5

def self.list
  puts "Which group of breeds would you like to see? (1-7)"
  @@group_number = gets.strip
  case @@group_number
  when "1"
    scrape_sporting
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "2"
    scrape_hound
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "3"
    scrape_working
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "4"
    scrape_terrier
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "5"
    scrape_toy
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "6"
    scrape_non_sporting
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  when "7"
    scrape_herding
    @breeds.each_with_index do |breed, number|
      puts "#{number + 1}. #{breed}"
    end
  else
    puts "\nInvalid entry. Please enter a valid group number."
    DogBreeds::Groups.list
    self.list
  end
end

.pick_breed(group_number = "") ⇒ Object



51
52
53
54
55
56
# File 'lib/dog_breeds/breeds.rb', line 51

def self.pick_breed(group_number = "")
  group_number = @@group_number
  puts "\nWhich breed would you like more information on? (Enter the breed's number.)"
  @breed_number = gets.strip
  DogBreeds::BreedDetails.get_url(@@group_number, @breed_number)
end

.scrape_herdingObject



121
122
123
124
125
126
127
128
129
# File 'lib/dog_breeds/breeds.rb', line 121

def self.scrape_herding
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/herding/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end

.scrape_houndObject



71
72
73
74
75
76
77
78
79
# File 'lib/dog_breeds/breeds.rb', line 71

def self.scrape_hound
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/hound/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end

.scrape_non_sportingObject



111
112
113
114
115
116
117
118
119
# File 'lib/dog_breeds/breeds.rb', line 111

def self.scrape_non_sporting
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/non-sporting/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end

.scrape_sportingObject



58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/dog_breeds/breeds.rb', line 58

def self.scrape_sporting
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/sporting/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  #@dogs instance variable gives you XML of all the dogs in the group, which is
  #used in the BreedDetails class to scrape the chosen breed's individual URL
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  #@breeds is an array of strings of all the breeds in the group
  @dogs
end

.scrape_terrierObject



91
92
93
94
95
96
97
98
99
# File 'lib/dog_breeds/breeds.rb', line 91

def self.scrape_terrier
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/terrier/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end

.scrape_toyObject



101
102
103
104
105
106
107
108
109
# File 'lib/dog_breeds/breeds.rb', line 101

def self.scrape_toy
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/toy/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end

.scrape_workingObject



81
82
83
84
85
86
87
88
89
# File 'lib/dog_breeds/breeds.rb', line 81

def self.scrape_working
  doc = Nokogiri::HTML(open("http://www.akc.org/dog-breeds/groups/working/"))
  @breeds = []
  @dogs = doc.css('.event-contain .scale-contents h2')
  @dogs.each do |dog|
    @breeds << dog.css('a[href]').text
  end
  @dogs
end