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.
- data/Rakefile +0 -2
- data/VERSION +1 -1
- data/autostats.gemspec +1 -7
- data/lib/autostats.rb +33 -0
- data/lib/car.rb +3 -6
- metadata +14 -36
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/autostats.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{autostats}
|
8
|
-
s.version = "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
|
|
data/lib/autostats.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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.
|
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: &
|
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: *
|
24
|
+
version_requirements: *70174300918800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
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: *
|
35
|
+
version_requirements: *70174300918100
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
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: *
|
46
|
+
version_requirements: *70174300917400
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
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: *
|
57
|
+
version_requirements: *70174300916800
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
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: *
|
68
|
+
version_requirements: *70174300916200
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
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: *
|
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:
|
117
|
+
hash: -1975050334852643143
|
140
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
119
|
none: false
|
142
120
|
requirements:
|