autostats 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/Rakefile +0 -2
  2. data/VERSION +1 -1
  3. data/autostats.gemspec +1 -7
  4. data/lib/autostats.rb +33 -0
  5. data/lib/car.rb +3 -6
  6. metadata +14 -36
data/Rakefile CHANGED
@@ -22,8 +22,6 @@ Jeweler::Tasks.new do |gem|
22
22
  gem.email = "connerd@connerwingard.com"
23
23
  gem.authors = ["Conner Wingard"]
24
24
  # dependencies defined in Gemfile
25
- gem.add_dependency 'nokogiri'
26
- gem.add_dependency 'progressbar'
27
25
  end
28
26
  Jeweler::RubygemsDotOrgTasks.new
29
27
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{autostats}
8
- s.version = "0.1.0"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Conner Wingard}]
@@ -47,8 +47,6 @@ Gem::Specification.new do |s|
47
47
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
48
48
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
49
49
  s.add_development_dependency(%q<rcov>, [">= 0"])
50
- s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
51
- s.add_runtime_dependency(%q<progressbar>, [">= 0"])
52
50
  else
53
51
  s.add_dependency(%q<progressbar>, [">= 0"])
54
52
  s.add_dependency(%q<nokogiri>, [">= 0"])
@@ -56,8 +54,6 @@ Gem::Specification.new do |s|
56
54
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
57
55
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
58
56
  s.add_dependency(%q<rcov>, [">= 0"])
59
- s.add_dependency(%q<nokogiri>, [">= 0"])
60
- s.add_dependency(%q<progressbar>, [">= 0"])
61
57
  end
62
58
  else
63
59
  s.add_dependency(%q<progressbar>, [">= 0"])
@@ -66,8 +62,6 @@ Gem::Specification.new do |s|
66
62
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
63
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
68
64
  s.add_dependency(%q<rcov>, [">= 0"])
69
- s.add_dependency(%q<nokogiri>, [">= 0"])
70
- s.add_dependency(%q<progressbar>, [">= 0"])
71
65
  end
72
66
  end
73
67
 
@@ -5,3 +5,36 @@ require 'progressbar'
5
5
  require 'car'
6
6
  require 'trim'
7
7
 
8
+ class MakeDoesNotExist < Exception
9
+ def to_s
10
+ "The make you are looking for is not available"
11
+ end
12
+ end
13
+
14
+ class ModelDoesNotExist < Exception
15
+ def to_s
16
+ "The model you are looking for is not available"
17
+ end
18
+ end
19
+
20
+
21
+ def get_makes()
22
+ car_page = Nokogiri::HTML(open("http://autos.aol.com"))
23
+ makes = car_page.xpath("//div[@id = 'car_search_research_makes']/ul/li/a").collect{ |make| make.text + "\n" }
24
+ end
25
+
26
+ def get_models(make)
27
+ car_page = Nokogiri::HTML(open("http://autos.aol.com/#{make.downcase}"))
28
+
29
+ if car_page.xpath("//title").text == "Site Map - AOL Autos"
30
+ puts "make #{make} does not exist"
31
+ raise MakeDoesNotExist
32
+ end
33
+
34
+ models = car_page.xpath("//li[@class = 'sub_title']/a")
35
+ model_name_list = []
36
+ models.each do |model|
37
+ model_name_list << model.text[(6 + make.size)..model.text.size] # strip year and make from text
38
+ end
39
+ model_name_list
40
+ end
data/lib/car.rb CHANGED
@@ -58,8 +58,7 @@ class Car
58
58
  :fuel_tank_capacity,
59
59
  :epa_mileage_estimates
60
60
  )
61
-
62
-
61
+
63
62
  get_overview
64
63
  get_specs
65
64
  get_features
@@ -69,8 +68,7 @@ class Car
69
68
  car_page = Nokogiri::HTML(open(@overview_url))
70
69
 
71
70
  if car_page.xpath("//title").text == "Site Map - AOL Autos"
72
- puts "Requested car does not exist"
73
- return
71
+ raise ModelDoesNotExist
74
72
  end
75
73
 
76
74
  @overview = car_page.xpath("//div[@class = 'rv_box']").text
@@ -80,8 +78,7 @@ class Car
80
78
  car_page = Nokogiri::HTML(open(@specs_url))
81
79
 
82
80
  if car_page.xpath("//title").text == "Site Map - AOL Autos"
83
- puts "Requested car does not exist"
84
- return
81
+ raise ModelDoesNotExist
85
82
  end
86
83
  trim_list = car_page.xpath("//div[@class = 'sliding_columns_container']")
87
84
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autostats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-22 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: progressbar
16
- requirement: &70204693793260 !ruby/object:Gem::Requirement
16
+ requirement: &70174300918800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70204693793260
24
+ version_requirements: *70174300918800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70204693792140 !ruby/object:Gem::Requirement
27
+ requirement: &70174300918100 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70204693792140
35
+ version_requirements: *70174300918100
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &70204693791100 !ruby/object:Gem::Requirement
38
+ requirement: &70174300917400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70204693791100
46
+ version_requirements: *70174300917400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70204693790000 !ruby/object:Gem::Requirement
49
+ requirement: &70174300916800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70204693790000
57
+ version_requirements: *70174300916800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70204693788900 !ruby/object:Gem::Requirement
60
+ requirement: &70174300916200 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70204693788900
68
+ version_requirements: *70174300916200
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70204693788200 !ruby/object:Gem::Requirement
71
+ requirement: &70174300915620 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,29 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70204693788200
80
- - !ruby/object:Gem::Dependency
81
- name: nokogiri
82
- requirement: &70204693787000 !ruby/object:Gem::Requirement
83
- none: false
84
- requirements:
85
- - - ! '>='
86
- - !ruby/object:Gem::Version
87
- version: '0'
88
- type: :runtime
89
- prerelease: false
90
- version_requirements: *70204693787000
91
- - !ruby/object:Gem::Dependency
92
- name: progressbar
93
- requirement: &70204693785840 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ! '>='
97
- - !ruby/object:Gem::Version
98
- version: '0'
99
- type: :runtime
100
- prerelease: false
101
- version_requirements: *70204693785840
79
+ version_requirements: *70174300915620
102
80
  description: Scrapes data from aol.autos.com to get all relevant information specific
103
81
  to a car based on year, make, and model
104
82
  email: connerd@connerwingard.com
@@ -136,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
136
114
  version: '0'
137
115
  segments:
138
116
  - 0
139
- hash: 3294937515312711188
117
+ hash: -1975050334852643143
140
118
  required_rubygems_version: !ruby/object:Gem::Requirement
141
119
  none: false
142
120
  requirements: