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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bgg-parser.rb +17 -15
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36435910e624dfb3496ef1b67294d5e62a45a508
4
- data.tar.gz: 1c76d30dfbd78e0b45e4e24817c2ade0d9375ee6
3
+ metadata.gz: 6f0275d6c4afb7a4cb71e9aed19360882fb5ff77
4
+ data.tar.gz: bcdae478337be7ae6e1299a6bcf48cf9c257a789
5
5
  SHA512:
6
- metadata.gz: 0c161b244c0e629b8f7e81fbb6836667a2d4040fe4789851bcd85f8688abb30c95d970e4bb5986ca2e3d1b07003836795b6b50151ac46b1f100c7730f0a6079f
7
- data.tar.gz: b76c7e1c7e991833d7696d01845ab8061d0435c695aeb9a5fc31ebbf847ea1c47de679d51b7be71f68290ffbe1f6867307fe7c24c9d6a0f7fecbcb6982ca1e97
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"].each do |row|
20
- if row["type"] == "boardgamecategory"
21
- category = Category.find_or_create_by bgg_id: row["id"], name: row["value"]
22
- gamescategory = GamesCategory.create(game: game, category: category) if category.valid?
23
- elsif row["type"] == "boardgamemechanic"
24
- mechanic = Mechanic.find_or_create_by bgg_id: row["id"], name: row["value"]
25
- gamesmechanic = GamesMechanic.create(game: game, mechanic: mechanic) if mechanic.valid?
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bgg-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Mueller