ma_breweries 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 699f1af180401fde6c094acf63e517c3d15284403aeafacb4a6b9989f9ab1ccb
4
- data.tar.gz: 4135c4e6200aa0a7bf1cabc5eee2cb2c8a636b03f62f556b6aa92672efb7eeda
3
+ metadata.gz: f3fb5f15bbc1a8d1f4068b443020a095d948013296319c9408a2f6e9d70efd40
4
+ data.tar.gz: dfeea8b72bda4d870722ae468d4d15aea1cb3d1237f683600f0fccdadca1e6ca
5
5
  SHA512:
6
- metadata.gz: 9fc779bf71bbcfe687136d88918a874425d17371ce1da07d205d81c4c0f7eff27b9f41fa2343f7a12e63563b7ec0abc5a20420f2cd1b4a6421bdea0fc1613ac0
7
- data.tar.gz: e6f391f58796b98aa9b1eeec463f9d737389b7a1abb42cb94cf00968e0f25653205e2c370b8e8d98411ef033f308a8bbf538fa1ee8df137b66257c6f3958a23b
6
+ metadata.gz: 8f368f7f80c25543cc8c82072910b9b9c7bfc2a28b0e71fec21eea270fb362dea08c193ea83fc5ac0e912d41c8f763276def2534814fc7621760873478701963
7
+ data.tar.gz: a30e666b0cd168ce4878f0367660af2bcc90ec8636713610950ffc8b201e7310eb78dfabf57e268a74d2d360b2fb6e9381bad5153487b04f01f2eaf24afa34ad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ma_breweries (0.1.1)
4
+ ma_breweries (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,7 +12,7 @@ GEM
12
12
  pry (0.12.2)
13
13
  coderay (~> 1.1.0)
14
14
  method_source (~> 0.9.0)
15
- rake (10.5.0)
15
+ rake (12.3.2)
16
16
 
17
17
  PLATFORMS
18
18
  ruby
@@ -25,4 +25,4 @@ DEPENDENCIES
25
25
  rake
26
26
 
27
27
  BUNDLED WITH
28
- 1.17.2
28
+ 1.17.3
data/README.md CHANGED
@@ -1,9 +1,6 @@
1
1
  # MaBreweries
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/ma_breweries`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
6
-
3
+ Brewery search that allows you to find all of the local Massachusetts breweries. You are able to list all of the breweries by name in a numbered list. Also you can search all of the breweries by Name, Brewery type, Street, and City. This CLI project is based on the Open Brewery DB API.
7
4
  ## Installation
8
5
 
9
6
  Add this line to your application's Gemfile:
data/bin/ma_breweries CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- puts "We have the beer!"
2
+ require_relative "../lib/ma_breweries"
3
+ MaBreweries::CLI.new.call
@@ -0,0 +1,56 @@
1
+ class MaBreweries::BREWERY
2
+
3
+ attr_accessor :name, :brewery_type, :street, :city, :state, :postal_code, :country, :phone, :website_url
4
+ @@all = []
5
+
6
+ def initialize(attributes)
7
+ attributes.each do |key, value|
8
+ if self.respond_to?(key)
9
+ self.send(("#{key}="), value)
10
+ end
11
+ end
12
+ @@all << self
13
+ end
14
+
15
+ def self.all
16
+ @@all
17
+ end
18
+
19
+ def self.all_names
20
+ self.all.each_with_index do |brewery, i|
21
+ puts "#{i+1}: #{brewery.name}"
22
+ end
23
+ end
24
+
25
+ def self.find_by_name(name)
26
+ self.all.detect {|brewery| brewery.name.downcase == name.downcase}
27
+
28
+ end
29
+
30
+ def self.find_by_brewery_type(brewery_type)
31
+ self.all.select {|brewery| brewery.brewery_type.downcase == brewery_type.downcase}
32
+ end
33
+
34
+ def self.find_by_street(street)
35
+ self.all.select {|brewery| brewery.street.downcase == street.downcase}
36
+ end
37
+
38
+ def self.find_by_city(city)
39
+ self.all.select {|brewery| brewery.city.downcase == city.downcase}
40
+ end
41
+
42
+ def self.all_names
43
+ self.all.each_with_index do |brewery, i|
44
+ puts "#{i+1}: #{brewery.name}"
45
+ end
46
+ end
47
+
48
+ def brew_info
49
+ puts "Brewery Name: #{self.name}"
50
+ puts "Brewery Type: #{self.brewery_type}"
51
+ puts "Adress: #{self.street} #{self.city} #{self.state}, #{self.postal_code} #{self.country}"
52
+ puts "Phone Number: #{self.phone}"
53
+ puts "Website: #{self.website_url}"
54
+ end
55
+
56
+ end
@@ -0,0 +1,116 @@
1
+ require 'pry'
2
+ require 'open-uri'
3
+ require 'json'
4
+
5
+ class MaBreweries::CLI
6
+
7
+ def initialize
8
+ boolean = true
9
+ i = 1
10
+ while boolean do
11
+ page = open("https://api.openbrewerydb.org/breweries?by_state=Massachusetts&per_page=50&page=#{i}")
12
+ i+=1
13
+ breweries = JSON.parse(page.read)
14
+ if breweries.count == 0
15
+ boolean = false
16
+ else
17
+ breweries.each do |attributes_hash|
18
+ MaBreweries::BREWERY.new(attributes_hash)
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ def call
25
+ puts " ** Welcome to your one stop search or all of your local breweries. **"
26
+ puts "\n"
27
+ puts " ** Do you want to know where the brews are? **"
28
+ puts "\n"
29
+ puts " ** I can help you search but you will have to share! **"
30
+ puts "\n"
31
+
32
+ menu
33
+ brewery_input = gets.chomp.downcase
34
+ while (brewery_input != "exit")
35
+ if brewery_input == "name"
36
+ search_breweries_by_name
37
+ elsif brewery_input == "type"
38
+ search_breweries_by_type
39
+ elsif brewery_input == "street"
40
+ search_breweries_by_street
41
+ elsif brewery_input == "city"
42
+ search_breweries_by_city
43
+ elsif brewery_input == "all"
44
+ show_all_breweries
45
+ else
46
+ puts " ** I am sorry you won't find any brews that way! ** "
47
+ end
48
+ menu
49
+ brewery_input = gets.chomp.downcase
50
+ end
51
+ puts " ** Peace out! Have fun and drive carefully! ** "
52
+ end
53
+
54
+ def menu
55
+ puts " * There are many ways fo you to search."
56
+ puts "\n"
57
+ puts " * To search by brewery name please enter - Name"
58
+ puts " * To search by brewery type please enter - Type"
59
+ puts " * To search by street name please enter - Street"
60
+ puts " * To search by city please enter - City"
61
+ puts " * To list all the breweries by name please enter - All"
62
+ puts "\n"
63
+ puts " * To exit please enter - exit"
64
+ end
65
+
66
+ def search_breweries_by_name
67
+ puts "Please enter the brewery name: "
68
+ input = gets.chomp
69
+ brewery = MaBreweries::BREWERY.find_by_name(input)
70
+ if brewery
71
+ brewery.brew_info
72
+ end
73
+ end
74
+
75
+ def search_breweries_by_type
76
+ puts "Please enter the brewery type: "
77
+ input = gets.chomp
78
+ breweries = MaBreweries::BREWERY.find_by_brewery_type(input)
79
+ if breweries
80
+ breweries.each do |brewery|
81
+ brewery.brew_info
82
+ puts "\n"
83
+ end
84
+ end
85
+ end
86
+
87
+ def search_breweries_by_street
88
+ puts "Pease enter the street you think the brews are on:"
89
+ input = gets.chomp
90
+ breweries = MaBreweries::BREWERY.find_by_street(input)
91
+ if breweries
92
+ breweries.each do |brewery|
93
+ brewery.brew_info
94
+ puts "\n"
95
+ end
96
+ end
97
+ end
98
+
99
+
100
+ def search_breweries_by_city
101
+ puts "Please enter the city you would like to search in:"
102
+ input = gets.chomp
103
+ breweries = MaBreweries::BREWERY.find_by_city(input)
104
+ if breweries
105
+ breweries.each do |brewery|
106
+ brewery.brew_info
107
+ puts "\n"
108
+ end
109
+ end
110
+ end
111
+
112
+ def show_all_breweries
113
+ MaBreweries::BREWERY.all_names
114
+ end
115
+
116
+ end
@@ -1,3 +1,3 @@
1
1
  module MaBreweries
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/ma_breweries.rb CHANGED
@@ -1,4 +1,10 @@
1
- require "ma_breweries/version"
1
+ require "pry"
2
+ require "open-uri"
3
+ require "json"
4
+ require_relative "./ma_breweries/version"
5
+ require_relative "./ma_breweries/brewery"
6
+ require_relative "./ma_breweries/cli"
7
+
2
8
 
3
9
  module MaBreweries
4
10
  class Error < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ma_breweries
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - "'Justin Beaulieu'"
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-31 00:00:00.000000000 Z
11
+ date: 2019-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -85,6 +85,8 @@ files:
85
85
  - bin/ma_breweries
86
86
  - bin/setup
87
87
  - lib/ma_breweries.rb
88
+ - lib/ma_breweries/brewery.rb
89
+ - lib/ma_breweries/cli.rb
88
90
  - lib/ma_breweries/version.rb
89
91
  - ma_breweries.gemspec
90
92
  homepage: https://github.com/Beaulieu527/ma_breweries
@@ -106,8 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
108
  - !ruby/object:Gem::Version
107
109
  version: '0'
108
110
  requirements: []
109
- rubyforge_project:
110
- rubygems_version: 2.7.8
111
+ rubygems_version: 3.0.2
111
112
  signing_key:
112
113
  specification_version: 4
113
114
  summary: Cli for displaying all local breweries in Mass.