autostats 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: