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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5be08849008dcadb86169f661cca5e98e577116
4
- data.tar.gz: 6c7f63058626a8362cf975ac1540ca415bb0058a
3
+ metadata.gz: f9a8e3bff05c9bef9bc2de1dd3ce7bc8adc4db8f
4
+ data.tar.gz: 2ed209f325e0cb6942693b9528480414681c2fa2
5
5
  SHA512:
6
- metadata.gz: 1aad4df4e82c09fe04c3d15997e6b87b03e80b9fc2275f3973d0208fa8dd0067c8d8df7765c07f7200694c3d89e1167a8be76af7ddf911ce0909d61d433d6d29
7
- data.tar.gz: 7fef12c639e42d3809288fb32d2c99cd89f2d4335bab732a919ebd9a84293ff8f63ddbd10aa7f48fabb305e3a1c93854339d6e441d02b354d92487429088e5e9
6
+ metadata.gz: 0ddc650e8b44dbef6efc4ce33dd5f66e24170aee90802777e80552a6a2010ff5f1fe3ced4bfaa6f2814d170ba2f986ffe636791c3944946173395bb4e6585d3f
7
+ data.tar.gz: abb2dac40ee45dc3edd54e64a663888ce8c9ba69fd87e29deb93c9906b32d6e19d9e6cd7bf3f489282379c8b93562c3f98da8cb1e8f9d21b64c6cb796a3c813f
@@ -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{Write a longer description or delete this line.}
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
 
@@ -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
- require "beer_me"
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
@@ -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 initailize
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
- #obtaions the page from ratebeer as nokogiri elements
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 th rows that contains the info for each beer
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
- index = 0
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
- #the index of 0 we will skip it using 'next' and then put the rest as those are the beers.
31
- if i == 0
32
- next
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
- def self.scrape_beer_info
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
@@ -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
- @@beers = BeerMe::Beer.scrape_beers_site
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 > 0 && input.to_i < beer_info.length
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
- info = beer_info[input.to_i]
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: #{beer_style}"
43
- puts "Beer Score: #{beer_score}"
44
- puts "Beer Reviews: #{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
@@ -1,3 +1,3 @@
1
1
  module BeerMe
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
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.0
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-06-28 00:00:00.000000000 Z
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: Write a longer description or delete this line.
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.6.11
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