bgg-parser 0.0.4 → 0.0.5

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 +23 -21
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f0275d6c4afb7a4cb71e9aed19360882fb5ff77
4
- data.tar.gz: bcdae478337be7ae6e1299a6bcf48cf9c257a789
3
+ metadata.gz: c0e42e7a1ed0a1e3e0f47be8629a98f99c351d0c
4
+ data.tar.gz: 6651ab08e5899f541d1a490a2a0ac7bb7ba86fc4
5
5
  SHA512:
6
- metadata.gz: 19cc593ee0c490b600daf00de9d79135dda2812cda45ef930cf3d7dd1c4cc5511967c8f646fb0fb71a61199d19916c3b0723a579ddec5374e750b551bc1f1a47
7
- data.tar.gz: 9e2edd58716abc28cb4aeaa8cb0dc461c33cef76f75e15aad7593740cba0ecc679905e1e03bf129662a628b52efba794a6b5d40b6b0da36a0c8fd06bec961546
6
+ metadata.gz: dded6e31052e3f0c074dba943158a63224320703737d9f913d010a3645991a77255befdf9e274c31d73d52270fc594780f86a79efbc080be4ba8b72efd47c5de
7
+ data.tar.gz: 338b3ffb27d60714f5b07301b40b1505b68bf614e28d7175d251ab44462492229f971e0704efb16043f6d028fe84f2fb8f8ac053607f09d8adf250205fa8cb53
data/lib/bgg-parser.rb CHANGED
@@ -1,29 +1,31 @@
1
1
  class BggParser
2
2
  def self.games_parse(raw_json, library_id)
3
3
  raw_json["item"].each do |game_json|
4
- game = Game.find_or_initialize_by(bgg_id: game_json["id"])
5
- game.name = game_json["name"][0]["value"] if game_json["name"]
6
- game.description = game_json["description"]
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"]
4
+ if game_json["type"] == "boardgame"
5
+ game = Game.find_or_initialize_by(bgg_id: game_json["id"])
6
+ game.name = game_json["name"][0]["value"] if game_json["name"]
7
+ game.description = ActionView::Base.full_sanitizer.sanitize(game_json["description"][0]).gsub(/\n/, "").gsub(/\s+/, " ")
8
+ game.minplayers = game_json["minplayers"][0]["value"].to_i if game_json["minplayers"]
9
+ game.maxplayers = game_json["maxplayers"][0]["value"].to_i if game_json["maxplayers"]
10
+ game.minplaytime = game_json["minplaytime"][0]["value"].to_i if game_json["minplaytime"]
11
+ game.maxplaytime = game_json["maxplaytime"][0]["value"].to_i if game_json["maxplaytime"]
12
+ game.poll = game_json["poll"][0] if game_json["poll"] && game_json["poll"][0]["name"] == "suggested_numplayers"
13
+ game.image_url = game_json["image"][0] if game_json["image"]
14
+ game.thumbnail_url = game_json["thumbnail"][0] if game_json["thumbnail"]
14
15
 
15
- if game.save
16
+ if game.save
16
17
 
17
- GamesLibrary.create game: game, library_id: library_id
18
+ GamesLibrary.create game: game, library_id: library_id
18
19
 
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?
20
+ if game_json["link"]
21
+ game_json["link"].each do |row|
22
+ if row["type"] == "boardgamecategory"
23
+ category = Category.find_or_create_by bgg_id: row["id"], name: row["value"]
24
+ gamescategory = GamesCategory.create(game: game, category: category) if category.valid?
25
+ elsif row["type"] == "boardgamemechanic"
26
+ mechanic = Mechanic.find_or_create_by bgg_id: row["id"], name: row["value"]
27
+ gamesmechanic = GamesMechanic.create(game: game, mechanic: mechanic) if mechanic.valid?
28
+ end
27
29
  end
28
30
  end
29
31
  end
@@ -32,6 +34,6 @@ class BggParser
32
34
  end
33
35
 
34
36
  def self.user_parse(raw_json, user_id)
35
-
37
+
36
38
  end
37
39
  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.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Mueller