beer_me 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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