bgg-parser 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []