barcade 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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] }
|