bgg-parser 0.0.1

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 +7 -0
  2. data/lib/bgg-parser.rb +31 -0
  3. 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: []