bgg-parser 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bgg-parser.rb +17 -15
- 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: 6f0275d6c4afb7a4cb71e9aed19360882fb5ff77
|
4
|
+
data.tar.gz: bcdae478337be7ae6e1299a6bcf48cf9c257a789
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19cc593ee0c490b600daf00de9d79135dda2812cda45ef930cf3d7dd1c4cc5511967c8f646fb0fb71a61199d19916c3b0723a579ddec5374e750b551bc1f1a47
|
7
|
+
data.tar.gz: 9e2edd58716abc28cb4aeaa8cb0dc461c33cef76f75e15aad7593740cba0ecc679905e1e03bf129662a628b52efba794a6b5d40b6b0da36a0c8fd06bec961546
|
data/lib/bgg-parser.rb
CHANGED
@@ -2,27 +2,29 @@ class BggParser
|
|
2
2
|
def self.games_parse(raw_json, library_id)
|
3
3
|
raw_json["item"].each do |game_json|
|
4
4
|
game = Game.find_or_initialize_by(bgg_id: game_json["id"])
|
5
|
-
game.name = game_json["name"][0]["value"]
|
5
|
+
game.name = game_json["name"][0]["value"] if game_json["name"]
|
6
6
|
game.description = game_json["description"]
|
7
|
-
game.minplayers = game_json["minplayers"][0]["value"].to_i
|
8
|
-
game.maxplayers = game_json["maxplayers"][0]["value"].to_i
|
9
|
-
game.minplaytime = game_json["minplaytime"][0]["value"].to_i
|
10
|
-
game.maxplaytime = game_json["maxplaytime"][0]["value"].to_i
|
11
|
-
game.poll = game_json["poll"][0] if game_json["poll"][0]["name"] == "suggested_numplayers"
|
12
|
-
game.image_url = game_json["image"][0]
|
13
|
-
game.thumbnail_url = game_json["thumbnail"][0]
|
7
|
+
game.minplayers = game_json["minplayers"][0]["value"].to_i if game_json["minplayers"]
|
8
|
+
game.maxplayers = game_json["maxplayers"][0]["value"].to_i if game_json["maxplayers"]
|
9
|
+
game.minplaytime = game_json["minplaytime"][0]["value"].to_i if game_json["minplaytime"]
|
10
|
+
game.maxplaytime = game_json["maxplaytime"][0]["value"].to_i if game_json["maxplaytime"]
|
11
|
+
game.poll = game_json["poll"][0] if game_json["poll"] && game_json["poll"][0]["name"] == "suggested_numplayers"
|
12
|
+
game.image_url = game_json["image"][0] if game_json["image"]
|
13
|
+
game.thumbnail_url = game_json["thumbnail"][0] if game_json["thumbnail"]
|
14
14
|
|
15
15
|
if game.save
|
16
16
|
|
17
17
|
GamesLibrary.create game: game, library_id: library_id
|
18
18
|
|
19
|
-
game_json["link"]
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
if game_json["link"]
|
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
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|