board_game_geek 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
  gemspec
data/Gemfile.lock CHANGED
@@ -5,7 +5,7 @@ PATH
5
5
  nokogiri
6
6
 
7
7
  GEM
8
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
9
9
  specs:
10
10
  addressable (2.2.6)
11
11
  crack (0.3.1)
@@ -1,3 +1,3 @@
1
1
  module BoardGameGeek
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -25,23 +25,36 @@ module BoardGameGeek
25
25
  next if idx == 0
26
26
  break if idx > how_many
27
27
 
28
- cells = game_row.css("td").map(&:inner_text).map(&:strip)
28
+ begin
29
+ cells = game_row.css("td").map(&:inner_text).map(&:strip)
29
30
 
30
- name_and_date = cells[2].to_s.split("\n")
31
+ name_and_date = cells[2].to_s.split("\n")
31
32
 
32
- ranking = cells[0]
33
- name = name_and_date[0]
34
- release_date = name_and_date[2].to_s.strip[1..-2]
35
- rating = cells[3]
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
- image_url = game_row.css(".collection_thumbnail img").first["src"]
38
- image_url.sub!("_mt", "_t")
38
+ game_path = game_row.css(".collection_thumbnail a").first["href"]
39
+ game_url = "http://boardgamegeek.com" + game_path
39
40
 
40
- games << OpenStruct.new(name: name,
41
- ranking: ranking,
42
- rating: rating,
43
- release_date: release_date,
44
- image_url: image_url)
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.1
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: 2011-11-13 00:00:00.000000000 Z
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: &2153892060 !ruby/object:Gem::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: *2153892060
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: &2153891500 !ruby/object:Gem::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: *2153891500
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: &2153891040 !ruby/object:Gem::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: *2153891040
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: &2153890620 !ruby/object:Gem::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: *2153890620
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: &2153890200 !ruby/object:Gem::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: *2153890200
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.10
132
+ rubygems_version: 1.8.23
114
133
  signing_key:
115
134
  specification_version: 3
116
135
  summary: BoardGameGeek.com scraper