Brew_Finder 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -0
- data/bin/brew-finder +1 -1
- data/bin/setup +1 -1
- data/brew_finder.gemspec +1 -0
- data/lib/Brew_Finder/brewery_fetcher.rb +21 -14
- data/lib/Brew_Finder/brewery_info.rb +15 -3
- data/lib/Brew_Finder/command_line_interface.rb +52 -24
- data/lib/Brew_Finder/version.rb +1 -1
- data/lib/brew_finder.rb +1 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d5d3b767bf66d9b98b0137354042cdfded186b72
|
4
|
+
data.tar.gz: 9dcd8f08adb932f0271e67a62bd72b8fd1aa0e01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce07650410b13b98fa6336482194832be698ede8bfa3a52a336c0837ee6c23f0a3298f97fc8f4aca616085cd246ca7efb4aa759fc5524fb68655e2bec54c54cc
|
7
|
+
data.tar.gz: aa260ce400312c5316be577144b477e0748ce64f478001e332399c19ca5946da0318aad06a915e8d2f22087650a63bb999a8d998c3e2f0846a644bc5aa7139ae
|
data/Gemfile.lock
CHANGED
data/bin/brew-finder
CHANGED
data/bin/setup
CHANGED
data/brew_finder.gemspec
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
require 'open-uri'
|
2
2
|
require 'nokogiri'
|
3
|
-
require 'pry'
|
4
3
|
|
5
4
|
class Brewery_Fetcher
|
6
5
|
|
7
6
|
def self.query_api(api_query)
|
8
7
|
returned_request = Nokogiri::HTML(open(api_query))
|
9
|
-
puts "#{returned_request}"
|
10
8
|
breweries = []
|
11
9
|
#we gotta use something called xpath?
|
12
10
|
returned_request.xpath("//location").each do |location|
|
@@ -27,19 +25,28 @@ class Brewery_Fetcher
|
|
27
25
|
def self.fetch_score_info(score_request)
|
28
26
|
returned_scores = Nokogiri::HTML(open(score_request))
|
29
27
|
#brewery score profile
|
30
|
-
score_location = returned_scores.xpath("//location")
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
28
|
+
score_location = returned_scores.xpath("//location/*")
|
29
|
+
|
30
|
+
if (score_location.xpath("//overall").text.to_i == 0)
|
31
|
+
#puts "fetcher error"
|
32
|
+
|
33
|
+
score_profile = nil
|
34
|
+
else
|
35
|
+
#puts "#{score_location.xpath("//overall").text}"
|
36
|
+
score_profile = {
|
37
|
+
|
38
|
+
#overall_score, selection, service, atmosphere, food, review_count
|
39
|
+
:overall_score => score_location.xpath("//overall").text.to_f.round(1),
|
40
|
+
:selection => score_location.xpath("//selection").text.to_f.round(2),
|
41
|
+
:service => score_location.xpath("//service").text.to_f.round(2),
|
42
|
+
:atmosphere => score_location.xpath("//atmosphere").text.to_f.round(2),
|
43
|
+
:review_count => score_location.xpath("//reviewcount").text.to_i,
|
44
|
+
:food=>score_location.xpath("//food").text.to_f.round(2)
|
45
|
+
}
|
46
|
+
score_profile
|
47
|
+
end
|
48
|
+
|
40
49
|
|
41
|
-
#return brewery score profile
|
42
|
-
return score_profile
|
43
50
|
|
44
51
|
end
|
45
52
|
|
@@ -8,14 +8,20 @@ class Brewery
|
|
8
8
|
|
9
9
|
def initialize(brewery_hash)
|
10
10
|
#puts "#{brewery_hash}"
|
11
|
+
count = 0
|
11
12
|
brewery_hash.each do |key, value|
|
12
|
-
#puts "#{key} #{value}"
|
13
|
+
#puts "#{key}: #{value}"
|
14
|
+
#value.each do |key,value|
|
15
|
+
# puts "#{key},#{value}"
|
16
|
+
#end
|
17
|
+
#puts "count = #{count}"
|
18
|
+
count += 1
|
13
19
|
self.send(("#{key}="), value)
|
14
|
-
#puts "#{self.
|
20
|
+
#puts "#{self.street_address}"
|
15
21
|
|
16
22
|
end
|
17
23
|
@@all << self
|
18
|
-
#puts "#{
|
24
|
+
#puts "#{self.inspect}"
|
19
25
|
end
|
20
26
|
|
21
27
|
#change students_array to brewery_array
|
@@ -25,13 +31,19 @@ class Brewery
|
|
25
31
|
#Brewery.new
|
26
32
|
#puts "#{brewery_hash} #{index}"
|
27
33
|
Brewery.new(brewery_hash)
|
34
|
+
#puts "#{self.name} #{self.id}"
|
28
35
|
end
|
29
36
|
end
|
30
37
|
|
31
38
|
#change to add_brewery_info, score_hash
|
32
39
|
def add_score_info(score_hash)
|
40
|
+
if (score_hash == nil)
|
41
|
+
#puts "nildorado"
|
42
|
+
end
|
43
|
+
#puts "#{score_hash}"
|
33
44
|
score_hash.each do |key, value|
|
34
45
|
self.send(("#{key}="), value)
|
46
|
+
#puts "#{key}= #{value}"
|
35
47
|
end
|
36
48
|
end
|
37
49
|
|
@@ -1,7 +1,4 @@
|
|
1
|
-
|
2
|
-
require_relative "../lib/brewery_info.rb"
|
3
|
-
require 'nokogiri'
|
4
|
-
require 'colorize'
|
1
|
+
|
5
2
|
|
6
3
|
class CommandLineInterface
|
7
4
|
#change this to base api query
|
@@ -13,9 +10,7 @@ class CommandLineInterface
|
|
13
10
|
#first welcome user
|
14
11
|
puts "\e[H\e[2J"
|
15
12
|
puts <<-DOC
|
16
|
-
o©ºº©oo©oº°©
|
17
|
-
/ \
|
18
|
-
|___________|____
|
13
|
+
o©ºº©oo©oº°©oo____
|
19
14
|
| |____)
|
20
15
|
| WELCOME | | |
|
21
16
|
| | | |
|
@@ -39,6 +34,7 @@ class CommandLineInterface
|
|
39
34
|
case input
|
40
35
|
when /search/
|
41
36
|
return_search
|
37
|
+
#Brewery.all.each {|brewery| puts "#{brewery.inspect}"}
|
42
38
|
display_breweries
|
43
39
|
score_menu
|
44
40
|
when /exit/
|
@@ -66,11 +62,13 @@ class CommandLineInterface
|
|
66
62
|
input = gets.chomp
|
67
63
|
case input
|
68
64
|
when /scores/
|
65
|
+
#Brewery.all.each {|brewery| puts "#{brewery.inspect}"}
|
69
66
|
return_scores
|
70
67
|
end_menu
|
71
68
|
when /search/
|
72
69
|
return_search
|
73
|
-
|
70
|
+
display_breweries
|
71
|
+
score_menu
|
74
72
|
when /exit/
|
75
73
|
puts "Goodbye!"
|
76
74
|
exit
|
@@ -91,6 +89,7 @@ class CommandLineInterface
|
|
91
89
|
score_menu
|
92
90
|
when /search/
|
93
91
|
return_search
|
92
|
+
display_breweries
|
94
93
|
score_menu
|
95
94
|
when /exit/
|
96
95
|
puts "Goodbye!"
|
@@ -102,8 +101,14 @@ class CommandLineInterface
|
|
102
101
|
end
|
103
102
|
|
104
103
|
def return_scores
|
105
|
-
|
106
|
-
|
104
|
+
id = get_score_query
|
105
|
+
#puts "id:#{id}"
|
106
|
+
formatted_scores = format_score_query(id)
|
107
|
+
scores = get_brewery_score(formatted_scores)
|
108
|
+
#puts "#{scores}"
|
109
|
+
#Brewery.all.each {|brewery| puts "#{brewery.inspect}"}
|
110
|
+
scored_brewery = add_scores_to_brewery(id, scores)
|
111
|
+
#puts "#{scored_brewery.name}"
|
107
112
|
display_score(scored_brewery)
|
108
113
|
end
|
109
114
|
|
@@ -150,34 +155,57 @@ class CommandLineInterface
|
|
150
155
|
#take the requested brewery and add additional info
|
151
156
|
def get_brewery_score(formatted_score)
|
152
157
|
#take the brewery instance and give it more attributes
|
153
|
-
scores = Brewery_Fetcher.fetch_score_info(
|
158
|
+
scores = Brewery_Fetcher.fetch_score_info(formatted_score)
|
154
159
|
scores
|
155
160
|
end
|
156
161
|
|
157
162
|
def add_scores_to_brewery(brewery_id, score_hash)
|
158
|
-
|
159
|
-
|
160
|
-
|
163
|
+
#puts "brewery_id #{brewery_id.class} score hash #{score_hash}"
|
164
|
+
#Brewery.all.each {|brewery|puts "#{brewery.inspect}"}
|
165
|
+
scored_brewery_array = Brewery.all.select {|brewery| brewery.id == brewery_id.to_i}
|
166
|
+
#puts "#{scored_brewery_array}"
|
167
|
+
scored_brewery = scored_brewery_array[0]
|
168
|
+
#puts "#{scored_brewery.class}"
|
169
|
+
if (score_hash == nil)
|
170
|
+
#puts "nildred"
|
171
|
+
scored_brewery
|
172
|
+
|
173
|
+
else
|
174
|
+
scored_brewery.add_score_info(score_hash)
|
175
|
+
scored_brewery
|
176
|
+
end
|
161
177
|
end
|
162
178
|
|
163
179
|
def display_breweries
|
164
180
|
Brewery.all.each do |brewery|
|
165
|
-
|
181
|
+
print "Establishment: ".colorize(:light_yellow)
|
182
|
+
puts "#{brewery.name}".colorize(:yellow)
|
183
|
+
print "ID: ".colorize(:light_green)
|
166
184
|
puts "#{brewery.id}".colorize(:green)
|
167
|
-
puts "#{brewery.street_address}".colorize(:
|
168
|
-
puts "#{brewery.phone}".colorize(:
|
185
|
+
puts "#{brewery.street_address}".colorize(:cyan)
|
186
|
+
puts "#{brewery.phone}".colorize(:light_blue)
|
169
187
|
end
|
170
188
|
end
|
171
189
|
|
172
190
|
#display additional requested brewery info
|
173
191
|
def display_score(scored_brewery)
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
192
|
+
if (scored_brewery.overall_score == nil)
|
193
|
+
puts "No scores seem to be available for this brewery."
|
194
|
+
else
|
195
|
+
puts "#{scored_brewery.name}".colorize(:light_magenta)
|
196
|
+
print "Overall score: "
|
197
|
+
puts "#{scored_brewery.overall_score}".colorize(:light_yellow)
|
198
|
+
print "Selection: "
|
199
|
+
puts "#{scored_brewery.selection}".colorize(:light_yellow)
|
200
|
+
print "Service: "
|
201
|
+
puts "#{scored_brewery.service}".colorize(:light_yellow)
|
202
|
+
print "Atmosphere: "
|
203
|
+
puts "#{scored_brewery.atmosphere}".colorize(:light_yellow)
|
204
|
+
print "Number of reviews: "
|
205
|
+
puts"#{scored_brewery.review_count}".colorize(:light_yellow)
|
206
|
+
print "Food (if available): "
|
207
|
+
puts "#{scored_brewery.food}".colorize(:light_yellow)
|
208
|
+
end
|
181
209
|
end
|
182
210
|
|
183
211
|
end
|
data/lib/Brew_Finder/version.rb
CHANGED
data/lib/brew_finder.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Brew_Finder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kathleen DaSilva
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: colorize
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: Search by city/state to find local breweries/brewpubs, also view rating
|
56
70
|
information for indiviual locations.
|
57
71
|
email:
|
@@ -108,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
122
|
version: '0'
|
109
123
|
requirements: []
|
110
124
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.6.
|
125
|
+
rubygems_version: 2.6.4
|
112
126
|
signing_key:
|
113
127
|
specification_version: 4
|
114
128
|
summary: Search for breweries/brewpubs using the Beer Mapping Project API
|
@@ -116,3 +130,4 @@ test_files:
|
|
116
130
|
- spec/brewery_fetcher_spec.rb
|
117
131
|
- spec/brewery_spec.rb
|
118
132
|
- spec/spec_helper.rb
|
133
|
+
has_rdoc:
|