beer_me 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/beer_me.gemspec +1 -1
- data/bin/beer-me +14 -3
- data/lib/beer_me/beer.rb +13 -18
- data/lib/beer_me/cli.rb +11 -17
- data/lib/beer_me/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9a8e3bff05c9bef9bc2de1dd3ce7bc8adc4db8f
|
4
|
+
data.tar.gz: 2ed209f325e0cb6942693b9528480414681c2fa2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ddc650e8b44dbef6efc4ce33dd5f66e24170aee90802777e80552a6a2010ff5f1fe3ced4bfaa6f2814d170ba2f986ffe636791c3944946173395bb4e6585d3f
|
7
|
+
data.tar.gz: abb2dac40ee45dc3edd54e64a663888ce8c9ba69fd87e29deb93c9906b32d6e19d9e6cd7bf3f489282379c8b93562c3f98da8cb1e8f9d21b64c6cb796a3c813f
|
data/beer_me.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["lguzman@me.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{BeerMe CLI is a gem that gets the Top New Beers of the Month and provides info on the beers}
|
13
|
-
spec.description = %q{
|
13
|
+
spec.description = %q{BeerMe CLI is a gem that gets the Top New Beers of the Month and provides info on the beers}
|
14
14
|
spec.homepage = "http://github.com"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
data/bin/beer-me
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
#shebang
|
2
3
|
|
3
4
|
|
4
5
|
#when first creating the file, we need to give it permission to be executed.
|
@@ -6,10 +7,20 @@
|
|
6
7
|
#To give permission we need to change them using 'chmod +x beer-me' in bin/
|
7
8
|
#puts "Hello World!"
|
8
9
|
|
9
|
-
|
10
|
+
#require is for external
|
10
11
|
require "bundler/setup"
|
11
|
-
|
12
|
+
#require_relative is for internal files. The '..' goes 1 up from the bin
|
13
|
+
require_relative "../lib/beer_me"
|
12
14
|
|
13
15
|
# We do not want the actual CLI in the bin file.
|
14
16
|
# We have a class called CLI that we instaniate and can create a call method that will start the program
|
15
|
-
BeerMe::CLI.new.call
|
17
|
+
BeerMe::CLI.new.call
|
18
|
+
|
19
|
+
#my app code
|
20
|
+
# require 'beer-me'
|
21
|
+
|
22
|
+
# class MyApp::CLI
|
23
|
+
|
24
|
+
# end
|
25
|
+
|
26
|
+
# MyApp::CLI.new
|
data/lib/beer_me/beer.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
class BeerMe::Beer
|
2
|
-
attr_accessor :name
|
2
|
+
attr_accessor :name, :style, :reviews, :score
|
3
3
|
|
4
4
|
#set the inital value of beers to be an empty array that can hold the beers
|
5
5
|
@@beers = []
|
6
6
|
|
7
|
-
def
|
7
|
+
def initialize
|
8
8
|
@@beers << self
|
9
|
-
|
10
9
|
end
|
11
10
|
|
12
11
|
def self.all
|
@@ -14,31 +13,27 @@ class BeerMe::Beer
|
|
14
13
|
end
|
15
14
|
|
16
15
|
def self.scrape_beers_site
|
17
|
-
#
|
16
|
+
#obtains the page from ratebeer as nokogiri elements
|
18
17
|
doc = Nokogiri::HTML(open("https://www.ratebeer.com/Ratings/TopOfTheMonth.asp"))
|
19
18
|
|
20
19
|
#List the beers of the month
|
21
|
-
#Use 'tr' to get
|
20
|
+
#Use 'tr' to get the rows that contains the info for each beer
|
22
21
|
#each row is an array of items
|
23
22
|
#the name of the beer is the [1] element
|
24
23
|
beer_rows = doc.css('tr')
|
25
|
-
|
24
|
+
|
26
25
|
beer_rows.each_with_index do |row, i|
|
27
|
-
beer = BeerMe::Beer.new
|
28
|
-
beer.name = row.css('td')[1].text
|
29
26
|
#since the iteration will bring back the first row and that row has no info we want to skip the first one
|
30
|
-
|
31
|
-
|
32
|
-
|
27
|
+
if i != 0
|
28
|
+
beer = BeerMe::Beer.new
|
29
|
+
beer.name = row.css('td')[1].text
|
30
|
+
beer.style = row.css('td')[4].text
|
31
|
+
beer.reviews = row.css('td')[3].text
|
32
|
+
beer.score = row.css('td')[2].text
|
33
|
+
|
33
34
|
end
|
34
|
-
puts "#{i}. #{beer.name}"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
|
39
|
-
#scrapes the table and only gets the info from the rows
|
40
|
-
doc = Nokogiri::HTML(open("https://www.ratebeer.com/Ratings/TopOfTheMonth.asp"))
|
41
|
-
|
42
|
-
beer_rows = doc.css("tr")
|
43
|
-
end
|
38
|
+
|
44
39
|
end
|
data/lib/beer_me/cli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#CLI Controller
|
2
|
+
require 'pry'
|
2
3
|
|
3
4
|
class BeerMe::CLI
|
4
5
|
|
@@ -10,20 +11,18 @@ class BeerMe::CLI
|
|
10
11
|
puts "******** " + month_title + "*********"
|
11
12
|
puts "*****************************************"
|
12
13
|
puts ""
|
13
|
-
|
14
|
+
BeerMe::Beer.scrape_beers_site
|
14
15
|
list_beers
|
15
16
|
menu
|
16
|
-
beer_info
|
17
17
|
goodbye
|
18
18
|
end
|
19
19
|
|
20
20
|
def list_beers
|
21
|
-
|
21
|
+
BeerMe::Beer.all.each.with_index(1) do |beer,i|
|
22
|
+
puts "#{i}. #{beer.name}"
|
23
|
+
end
|
22
24
|
end
|
23
25
|
|
24
|
-
def beer_info
|
25
|
-
@@info = BeerMe::Beer.scrape_beer_info
|
26
|
-
end
|
27
26
|
|
28
27
|
def menu
|
29
28
|
input = nil
|
@@ -32,16 +31,13 @@ class BeerMe::CLI
|
|
32
31
|
puts "Enter beer number to display Beer Info or type 'list' to see the list again or type 'exit':"
|
33
32
|
input = gets.strip.downcase
|
34
33
|
|
35
|
-
if input.to_i
|
34
|
+
if input.to_i.between?(1, BeerMe::Beer.all.length)
|
36
35
|
#grabs the row based on input number and pulls the info for style, score and review number using nokogiri.
|
37
|
-
|
38
|
-
beer_style = info.css('td')[4].text
|
39
|
-
beer_score = info.css('td')[2].text
|
40
|
-
beer_reviews = info.css('td')[3].text
|
36
|
+
beer = BeerMe::Beer.all[input.to_i - 1]
|
41
37
|
|
42
|
-
puts "Beer Style: #{
|
43
|
-
puts "Beer Score: #{
|
44
|
-
puts "Beer Reviews: #{
|
38
|
+
puts "Beer Style: #{beer.style}"
|
39
|
+
puts "Beer Score: #{beer.score}"
|
40
|
+
puts "Beer Reviews: #{beer.reviews}"
|
45
41
|
|
46
42
|
elsif input == "list"
|
47
43
|
list_beers
|
@@ -49,9 +45,7 @@ class BeerMe::CLI
|
|
49
45
|
elsif input == "exit"
|
50
46
|
|
51
47
|
elsif
|
52
|
-
puts "Please choose a valid number."
|
53
|
-
|
54
|
-
|
48
|
+
puts "Please choose a valid number."
|
55
49
|
end
|
56
50
|
end
|
57
51
|
end
|
data/lib/beer_me/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beer_me
|
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
|
- leog7one
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,7 +80,8 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description:
|
83
|
+
description: BeerMe CLI is a gem that gets the Top New Beers of the Month and provides
|
84
|
+
info on the beers
|
84
85
|
email:
|
85
86
|
- lguzman@me.com
|
86
87
|
executables: []
|
@@ -125,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
126
|
version: '0'
|
126
127
|
requirements: []
|
127
128
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.
|
129
|
+
rubygems_version: 2.5.1
|
129
130
|
signing_key:
|
130
131
|
specification_version: 4
|
131
132
|
summary: BeerMe CLI is a gem that gets the Top New Beers of the Month and provides
|