barcade 0.0.1 → 0.0.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 +4 -4
- data/lib/barcade/beeradvocate.rb +19 -19
- data/lib/barcade/scraper.rb +19 -19
- data/lib/barcade/version.rb +1 -1
- data/lib/barcade.rb +8 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1284f50eb314bd222f6efc71a03038cfe9608292
|
4
|
+
data.tar.gz: d31e3c5cfe1eec1b7d53c6c24fc2de4119ab7cc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a2cca66d987909adac3aa7a9e127a0dfb625918db14e2c8e1d3ff8d3ca22fb6024009cde1a23ca27d46b4f20e714606e5f406e978697857c171f529f5ed8b35
|
7
|
+
data.tar.gz: c39a51e94f42dac1fff20dadd50da2603713b033007a5be2b5b5822d7bfbe9c4f39b5dfe956520fd7082dd16b596ae7231beb20431bcecf836453229b61aacc2
|
data/lib/barcade/beeradvocate.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
require 'mechanize'
|
2
2
|
|
3
3
|
module BeerAdvocate
|
4
|
-
|
5
|
-
|
4
|
+
class Scraper
|
5
|
+
BASE_URI = 'http://beeradvocate.com/'
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
def find_beer_by_name(name)
|
8
|
+
agent = Mechanize.new
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
agent.get(BASE_URI) do |page|
|
11
|
+
search_results = page.form_with(class: 'formPopup') do |search|
|
12
|
+
search.q = name
|
13
|
+
end.submit
|
14
14
|
|
15
|
-
|
15
|
+
profile_link = search_results.link_with(href: /profile/)
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
if profile_link
|
18
|
+
profile_page = profile_link.click
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
if element = profile_page.search('.BAscore_big').first
|
21
|
+
return { score: element.text }
|
22
|
+
end
|
23
|
+
end
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
return nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
29
|
end
|
data/lib/barcade/scraper.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
require 'mechanize'
|
2
2
|
|
3
3
|
module Barcade
|
4
|
-
|
5
|
-
|
4
|
+
class Scraper
|
5
|
+
BASE_URI = 'http://barcadebrooklyn.com/'
|
6
6
|
|
7
|
-
|
7
|
+
attr_accessor :date_slug
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
def initialize(date)
|
10
|
+
@date_slug = date.strftime('%Y/%m/%d/')
|
11
|
+
end
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
def tap
|
14
|
+
body = blog_post.search('section.entry > p').text
|
15
|
+
body.split(/\n/)
|
16
|
+
end
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
def blog_post
|
19
|
+
agent = Mechanize.new
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
begin
|
22
|
+
post = agent.get("#{BASE_URI}#{self.date_slug}")
|
23
|
+
rescue Mechanize::ResponseCodeError => e
|
24
|
+
puts "Today's tap hasn't been posted yet. Try the --yesterday flag."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
28
|
end
|
data/lib/barcade/version.rb
CHANGED
data/lib/barcade.rb
CHANGED
@@ -6,7 +6,7 @@ require 'terminal-table'
|
|
6
6
|
|
7
7
|
module Barcade
|
8
8
|
class CLI
|
9
|
-
|
9
|
+
def self.start(*args)
|
10
10
|
date = case args[0]
|
11
11
|
when '--yesterday'
|
12
12
|
Date.today.prev_day
|
@@ -14,16 +14,16 @@ module Barcade
|
|
14
14
|
Date.today
|
15
15
|
end
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
barcade_scraper = Barcade::Scraper.new(date)
|
18
|
+
beeradvocate_scraper = BeerAdvocate::Scraper.new
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
beers = barcade_scraper.tap.map do |beer_name|
|
21
|
+
beeradvocate_profile = beeradvocate_scraper.find_beer_by_name(beer_name)
|
22
|
+
[beer_name, beeradvocate_profile[:score]] unless beeradvocate_profile.nil?
|
23
|
+
end.compact
|
24
24
|
|
25
25
|
print_table(beers, date)
|
26
|
-
|
26
|
+
end
|
27
27
|
|
28
28
|
def self.print_table(beers, date)
|
29
29
|
beers.sort! { |a, b| b[1] <=> a[1] }
|