bgg-parser 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/bgg-parser.rb +31 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 10007f44cf16eecc29352cf267780de2eabd8a7d
|
4
|
+
data.tar.gz: ab1ecdfc2424ccff201751ff0337b4adac974067
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 63300dee6e3210c03bd3fd7a27ad01e045a2e6679192ea119fceeb37d15de9347835df9a000e2c91cc54d1ece19785e56a47ab193d95f0dfe85b1f6ad5a4fa93
|
7
|
+
data.tar.gz: 66c986c036a7874e372ef5a0ead040563f8a68f8b4cd910ae8fe05f0846a486e4cb82d92038d59c2a90ce177bd4d882ff6906c1027142facce3c7601561cec4b
|
data/lib/bgg-parser.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
class BggParser
|
2
|
+
def self.parse(raw_json, library)
|
3
|
+
raw_json["item"].each do |game_json|
|
4
|
+
game = Game.new
|
5
|
+
game.bgg_id = game_json["id"]
|
6
|
+
game.name = game_json["name"][0]["value"]
|
7
|
+
game.description = game_json["description"]
|
8
|
+
game.minplayers = game_json["minplayers"][0]["value"].to_i
|
9
|
+
game.maxplayers = game_json["maxplayers"][0]["value"].to_i
|
10
|
+
game.minplaytime = game_json["minplaytime"][0]["value"].to_i
|
11
|
+
game.maxplaytime = game_json["maxplaytime"][0]["value"].to_i
|
12
|
+
game.poll = game_json["poll"][0] if game_json["poll"][0]["name"] == "suggested_numplayers"
|
13
|
+
game.image_url = game_json["image"][0]
|
14
|
+
game.thumbnail_url = game_json["thumbnail"][0]
|
15
|
+
|
16
|
+
game.save
|
17
|
+
|
18
|
+
GamesLibrary.create game: game, library: library
|
19
|
+
|
20
|
+
game_json["link"].each do |row|
|
21
|
+
if row["type"] == "boardgamecategory"
|
22
|
+
category = Category.find_or_create_by bgg_id: row["id"], name: row["value"]
|
23
|
+
gamescategory = GamesCategory.create(game: game, category: category) if category.valid?
|
24
|
+
elsif row["type"] == "boardgamemechanic"
|
25
|
+
mechanic = Mechanic.find_or_create_by bgg_id: row["id"], name: row["value"]
|
26
|
+
gamesmechanic = GamesMechanic.create(game: game, mechanic: mechanic) if mechanic.valid?
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bgg-parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Peter Mueller
|
8
|
+
- Elizabeth Blackburn
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2015-04-16 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: No fucks given
|
15
|
+
email: ''
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/bgg-parser.rb
|
21
|
+
homepage: ''
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.2.2
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Parses BoardGameGeek
|
45
|
+
test_files: []
|