board_game_geek 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.
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/lib/board_game_geek/version.rb +1 -1
- data/lib/board_game_geek.rb +27 -14
- data/spec/scraper_spec.rb +2 -1
- metadata +38 -19
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
gemspec
|
data/Gemfile.lock
CHANGED
data/lib/board_game_geek.rb
CHANGED
@@ -25,23 +25,36 @@ module BoardGameGeek
|
|
25
25
|
next if idx == 0
|
26
26
|
break if idx > how_many
|
27
27
|
|
28
|
-
|
28
|
+
begin
|
29
|
+
cells = game_row.css("td").map(&:inner_text).map(&:strip)
|
29
30
|
|
30
|
-
|
31
|
+
name_and_date = cells[2].to_s.split("\n")
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
ranking = cells[0]
|
34
|
+
name = name_and_date[0]
|
35
|
+
release_date = name_and_date[2].to_s.strip[1..-2]
|
36
|
+
rating = cells[3]
|
36
37
|
|
37
|
-
|
38
|
-
|
38
|
+
game_path = game_row.css(".collection_thumbnail a").first["href"]
|
39
|
+
game_url = "http://boardgamegeek.com" + game_path
|
39
40
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
image_url = game_row.css(".collection_thumbnail img").first["src"]
|
42
|
+
image_url.sub!("_mt", "_t")
|
43
|
+
|
44
|
+
games << OpenStruct.new(name: name,
|
45
|
+
ranking: ranking,
|
46
|
+
rating: rating,
|
47
|
+
release_date: release_date,
|
48
|
+
url: game_url,
|
49
|
+
image_url: image_url)
|
50
|
+
rescue
|
51
|
+
games << OpenStruct.new(name: defined?(name) && name || "failed parse",
|
52
|
+
ranking: defined?(ranking) && ranking || "failed parse",
|
53
|
+
rating: defined?(rating) && rating || "failed parse",
|
54
|
+
release_date: defined?(release_date) && release_date || "failed parse",
|
55
|
+
url: defined?(game_url) && game_url || "failed parse",
|
56
|
+
image_url: defined?(image_url) && image_url || "failed parse")
|
57
|
+
end
|
45
58
|
end
|
46
59
|
end
|
47
60
|
end
|
@@ -53,4 +66,4 @@ module BoardGameGeek
|
|
53
66
|
end
|
54
67
|
end
|
55
68
|
|
56
|
-
BGG = BoardGameGeek
|
69
|
+
BGG = BoardGameGeek
|
data/spec/scraper_spec.rb
CHANGED
@@ -39,6 +39,7 @@ describe BGG::Scraper do
|
|
39
39
|
|
40
40
|
it "exposes some handy attributes" do
|
41
41
|
first_game.must_respond_to :name
|
42
|
+
first_game.must_respond_to :url
|
42
43
|
first_game.must_respond_to :image_url
|
43
44
|
first_game.must_respond_to :rating
|
44
45
|
first_game.must_respond_to :ranking
|
@@ -59,4 +60,4 @@ describe BGG::Scraper do
|
|
59
60
|
VCR.insert_cassette('board_game_geek_1000')
|
60
61
|
subject.top_games(1000).length.must_be :==, 1000
|
61
62
|
end
|
62
|
-
end
|
63
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: board_game_geek
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: minitest
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: vcr
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :development
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: webmock
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :development
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: rake
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :development
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
description: We love board games. We love coding. Let's code against the data from
|
70
95
|
BoardGameGeek.com!
|
71
96
|
email:
|
@@ -96,21 +121,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
121
|
- - ! '>='
|
97
122
|
- !ruby/object:Gem::Version
|
98
123
|
version: '0'
|
99
|
-
segments:
|
100
|
-
- 0
|
101
|
-
hash: 2103976381804118628
|
102
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
125
|
none: false
|
104
126
|
requirements:
|
105
127
|
- - ! '>='
|
106
128
|
- !ruby/object:Gem::Version
|
107
129
|
version: '0'
|
108
|
-
segments:
|
109
|
-
- 0
|
110
|
-
hash: 2103976381804118628
|
111
130
|
requirements: []
|
112
131
|
rubyforge_project: board_game_geek
|
113
|
-
rubygems_version: 1.8.
|
132
|
+
rubygems_version: 1.8.23
|
114
133
|
signing_key:
|
115
134
|
specification_version: 3
|
116
135
|
summary: BoardGameGeek.com scraper
|