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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcaa9f2cc367a46534ff08ea636feafa44065189
4
- data.tar.gz: 14c5bd6dd95c26c6a119e7729e7007e118c309c8
3
+ metadata.gz: d5d3b767bf66d9b98b0137354042cdfded186b72
4
+ data.tar.gz: 9dcd8f08adb932f0271e67a62bd72b8fd1aa0e01
5
5
  SHA512:
6
- metadata.gz: c4cc13d5ae97c9c309f5fe70052d268be57873c2e14ade6bb175d165e7cf07e28f24afe886783b4810e440b47720985687a2eac032dfad664dbee657c7dd70ae
7
- data.tar.gz: 80806cb22c53f8ba1504fe3a051671b73eacfdf96de94246c67efc1ab8756536d7bc188c7e6f87a5d6c62169a9be8f8c42cf12b758b0d48a19088a71dd720c87
6
+ metadata.gz: ce07650410b13b98fa6336482194832be698ede8bfa3a52a336c0837ee6c23f0a3298f97fc8f4aca616085cd246ca7efb4aa759fc5524fb68655e2bec54c54cc
7
+ data.tar.gz: aa260ce400312c5316be577144b477e0748ce64f478001e332399c19ca5946da0318aad06a915e8d2f22087650a63bb999a8d998c3e2f0846a644bc5aa7139ae
@@ -2,11 +2,13 @@ PATH
2
2
  remote: .
3
3
  specs:
4
4
  Brew_Finder (0.1.0)
5
+ colorize
5
6
  nokogiri
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
11
+ colorize (0.8.1)
10
12
  mini_portile2 (2.1.0)
11
13
  nokogiri (1.6.8)
12
14
  mini_portile2 (~> 2.1.0)
@@ -6,4 +6,4 @@
6
6
  require_relative "../lib/brew_finder"
7
7
 
8
8
 
9
- BrewFinder::CommandLineInterface.new.welcome
9
+ CommandLineInterface.new.welcome
data/bin/setup CHANGED
@@ -1,4 +1,4 @@
1
-
1
+ s
2
2
  #!/usr/bin/env bash
3
3
  set -euo pipefail
4
4
  IFS=$'\n\t'
@@ -21,4 +21,5 @@ require 'Brew_Finder/version'
21
21
  spec.add_development_dependency "bundler", "~> 1.5"
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_dependency "nokogiri"
24
+ spec.add_dependency "colorize"
24
25
  end
@@ -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
- score_profile = {
32
- #overall_score, selection, service, atmosphere, food, review_count
33
- :overall_score => score_location.xpath("child::overall").text.to_f.round(1),
34
- :selection => score_location.xpath("child::selection").text.to_f.round(2),
35
- :service => score_location.xpath("child::service").text.to_f.round(2),
36
- :atmosphere => score_location.xpath("child::atmosphere").text.to_f.round(2),
37
- :review_count => score_location.xpath("child::reviewcount").text.to_i,
38
- :food=>score_location.xpath("child::food").text.to_f.round(2)
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.phone}"
20
+ #puts "#{self.street_address}"
15
21
 
16
22
  end
17
23
  @@all << self
18
- #puts "#{@@all}"
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
- require_relative "../lib/brewery_fetcher.rb"
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
- scores_menu
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
- scores = get_brewery_score(formatted_score)
106
- scored_brewery = add_scores_to_brewery(first_score_query, scores)
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(score_query)
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
- scored_brewery = Brewery.all.detect{|brewery| brewery.id = brewery_id}
159
- scored_brewery.add_score_info(score_hash)
160
- scored_brewery
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
- puts "#{brewery.name}".colorize(:purple)
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(:blue)
168
- puts "#{brewery.phone}".colorize(:orange)
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
- puts "#{scored_brewery.name}".colorize(:purple)
175
- puts "Overall score: #{scored_brewery.overall_score}".colorize(:red)
176
- puts "Selection: #{scored_brewery.selection}"
177
- puts "Service: #{scored_brewery.service}"
178
- puts "Atmosphere: #{scored_brewery.atmosphere}"
179
- puts "Number of reviews: #{scored_brewery.review_count}"
180
- puts "Food: #{scored_brewery.food}"
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
@@ -1,3 +1,3 @@
1
1
  module BrewFinder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require 'nokogiri'
2
2
  require 'open-uri'
3
+ require 'colorize'
3
4
 
4
5
  require_relative './Brew_Finder/brewery_fetcher'
5
6
  require_relative './Brew_Finder/brewery_info'
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.0
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 00:00:00.000000000 Z
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.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: