mtg_db 1.0.1 → 1.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f51fbd4706c4651c6b0693475753c4f7484651035ca5d9bdc3baf562f25f67ef
4
- data.tar.gz: 8cbdf27fa93421ef6a78710dd1e23d1360c80907ababee549aee21c103d51be3
3
+ metadata.gz: 9af0d25de61f99984ee45a012fa4fac54d209ba435f9c1193af8a50f055f33e2
4
+ data.tar.gz: 4da2fa65165d73305f82ca20c5ac2f5e1602a566b7c2e3d499aded6f79174070
5
5
  SHA512:
6
- metadata.gz: a86ee46235409de2e335f3d6c5b48fe500f3061a7bc1e3b8f4be38ec680c130511030094fa2dde715eda565b3e6a43c2d4b529ab553f91cd7794fdc8bd038277
7
- data.tar.gz: f95749bff81a7a3b94aad2cecd562c8d68bef2bcff21999b12c01ff93202b530116bfdde7f1b036731949a35e118d5c833296b5ff6fb2225daaadce7ccec4ffb
6
+ metadata.gz: 7ccfcd97dcba46b64c0c021d5db43e22c1a8a659d855a574336fe0726bbd9c819cda854fa303053c101363a53f0babd8754af609597395d6ba64d06057e74ed3
7
+ data.tar.gz: dff5f78de48d6297931fdf6b3efdab2c26378f71bbae6623234a742c83fe5ee22671066312c949fb3ea538e725047dd775e517c0d198a52b60b388d3eaab1c3d
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # MtgDb
1
+ # MtgDb [![Build Status](https://travis-ci.org/Hammit/mtg-database.svg?branch=master)](https://travis-ci.org/Hammit/mtg-database)
2
2
 
3
- A ruby (2.1) program that creates an SQLite3 database containing Magic: The Gathering
3
+ A ruby program that creates an SQLite3 database containing Magic: The Gathering
4
4
  card information collected from [The Gatherer](http://gatherer.wizards.com/ "The Gatherer").
5
5
 
6
6
  ## Installation
@@ -29,7 +29,7 @@ Downloading card information from [The Gatherer](http://gatherer.wizards.com/ "T
29
29
  can take a long time. Be prepared to wait a while when creating the db.
30
30
 
31
31
  ## Misc
32
- * Schema for the Db is in sql/cards.schema.sql
32
+ * Schema for the Db is in sql/db.schema.sql
33
33
  * bundle exec bin/mtg_db help
34
34
 
35
35
  ## Contributing
data/lib/mtg_db.rb CHANGED
@@ -9,11 +9,11 @@ require 'tempfile'
9
9
  # Top level module
10
10
  module MtgDb
11
11
  TMP_DIR = File.join(Dir.tmpdir, 'mtg')
12
- ALL_CARDS_DIR = 'standard'.freeze
13
- DOUBLE_FACED_DIR = 'double-faced'.freeze
14
- SCHEMA_FILENAME = File.join(__dir__, '..', 'sql', 'cards.schema.sql')
12
+ ALL_CARDS_DIR = 'standard'
13
+ DOUBLE_FACED_DIR = 'double-faced'
14
+ SCHEMA_FILENAME = File.join(__dir__, '..', 'sql', 'db.schema.sql')
15
15
  SQLITE3_HEADER_STRING_LENGTH = 15
16
- SQLITE3_HEADER_STRING = "SQLite format 3"
16
+ SQLITE3_HEADER_STRING = 'SQLite format 3'
17
17
 
18
18
  # TODO: Remove the accessor as it's only required for debugging purposes
19
19
  class << self; attr_accessor :standard_files_downloaded end
@@ -107,7 +107,7 @@ module MtgDb
107
107
  db.disconnect
108
108
  end
109
109
 
110
- # Downloading
110
+ # Downloading Double-Faced Cards
111
111
  def self.download_double_faced_cards(db_filename, tmp_dir)
112
112
  tmp_dir ||= TMP_DIR
113
113
  tmp_dir = File.join(tmp_dir, DOUBLE_FACED_DIR)
@@ -125,8 +125,11 @@ module MtgDb
125
125
  puts "#{card.name}, #{multiverse_id}"
126
126
  downloader.start(card.name.parameterize, multiverse_id)
127
127
  end
128
+
129
+ db.disconnect
128
130
  end
129
131
 
132
+ # Adding Downloaded Double-Faced Cards to Db
130
133
  def self.add_double_faced_cards_to_db(db_filename, tmp_dir)
131
134
  tmp_dir ||= TMP_DIR
132
135
  tmp_dir = File.join(tmp_dir, DOUBLE_FACED_DIR)
@@ -173,7 +176,7 @@ module MtgDb
173
176
  SQLITE3_HEADER_STRING_LENGTH.times do
174
177
  header += (Random.rand(26) + 48).chr
175
178
  end
176
-
179
+
177
180
  File.open(db_filename, 'r+b') do |file|
178
181
  file.seek(0, IO::SEEK_SET)
179
182
  file.print(header)
data/lib/mtg_db/cli.rb CHANGED
@@ -33,13 +33,13 @@ module MtgDb
33
33
  MtgDb.add_double_faced_cards_to_db(name, tmp_dir)
34
34
  end
35
35
 
36
- desc "mangle NAME", "mangle the SQLite3 Db file header"
36
+ desc 'mangle NAME', 'mangle the SQLite3 Db file header'
37
37
  def mangle(name)
38
38
  name = File.expand_path(name)
39
39
  if not MtgDb.is_sqlite3?(name)
40
40
  puts "File is either already mangled or not an SQLite3 database: #{name}"
41
41
  else
42
- puts "Mangling the SQLite3 file header"
42
+ puts 'Mangling the SQLite3 file header'
43
43
  MtgDb.mangle(name)
44
44
  end
45
45
  end
@@ -32,8 +32,8 @@ module MtgDb
32
32
  'Phyrexian Red': '(R/P)',
33
33
  'Phyrexian Green': '(G/P)',
34
34
 
35
- 'Variable Colorless': 'X',
36
- }.freeze
35
+ 'Variable Colorless': 'X'
36
+ }
37
37
 
38
38
  # TODO: See if we can (?DEFINE) subroutines in the regex as per Perl/PCRE
39
39
  # http://www.regular-expressions.info/subroutine.html
@@ -3,8 +3,9 @@ require 'mechanize'
3
3
 
4
4
  module MtgDb
5
5
  module Downloaders
6
+ # Base class for all downloaders
6
7
  class DownloaderBase
7
- DEFAULT_OUTPUT_DIR = 'output'.freeze
8
+ DEFAULT_OUTPUT_DIR = 'output'
8
9
  attr_reader :agent
9
10
  attr_accessor :output_dir
10
11
 
@@ -65,7 +66,7 @@ module MtgDb
65
66
  # Useful for double-faced cards, where we can associate the face-up and face-down cards, both on this page
66
67
  class CardDetailsDownloader < DownloaderBase
67
68
  DEBUG = true
68
- CARD_DETAILS_URL = 'http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=<PARAM_0>'.freeze
69
+ CARD_DETAILS_URL = 'http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=<PARAM_0>'
69
70
 
70
71
  def start(card_name, card_multiverse_id)
71
72
  url = CARD_DETAILS_URL
@@ -1,4 +1,3 @@
1
- # require 'pry'
2
1
  require_relative 'constants'
3
2
  require 'mechanize'
4
3
  require 'uri'
@@ -14,10 +13,10 @@ module MtgDb
14
13
  def initialize(uri = nil, response = nil, body = nil, code = nil)
15
14
  super(uri, response, body, code)
16
15
  @cards = parse_cards
17
- # p @cards
18
16
  end
19
17
 
20
- private
18
+ private
19
+
21
20
  # Each page in standard format has a bunch of cards
22
21
  def parse_cards
23
22
  cards = []
@@ -161,7 +160,7 @@ module MtgDb
161
160
  set = match['SET']
162
161
  rarity = match['RARITY']
163
162
 
164
- { :multiverse_id => multiverse_id, :set => set, :rarity => rarity, :set_abbreviation => set_abbreviation }
163
+ { multiverse_id: multiverse_id, set: set, rarity: rarity, set_abbreviation: set_abbreviation }
165
164
  end
166
165
  end
167
166
  end
@@ -177,7 +176,6 @@ module MtgDb
177
176
  @cards = parse_cards
178
177
  @faceup_card_name = @cards.first
179
178
  @facedown_card_name = @cards.last
180
- #p @cards
181
179
  end
182
180
 
183
181
  private
@@ -185,7 +183,6 @@ module MtgDb
185
183
  def parse_cards
186
184
  cards = []
187
185
  card_nodes = search('.cardDetails')
188
- # binding.pry
189
186
  # Each page has 2 cards if it's transformable
190
187
  if card_nodes.size == 2
191
188
  face_up_name = name(card_nodes.first)
@@ -196,7 +193,6 @@ module MtgDb
196
193
  # face_down_card = Card.where(:name => face_down_name).first
197
194
  cards << face_down_name
198
195
  end
199
- # p cards if DEBUG
200
196
 
201
197
  cards
202
198
  end
@@ -254,6 +250,5 @@ module MtgDb
254
250
  subtype
255
251
  end
256
252
  end
257
-
258
253
  end
259
254
  end
@@ -1,3 +1,3 @@
1
1
  module MtgDb
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtg_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Byron Hammond
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-27 00:00:00.000000000 Z
11
+ date: 2019-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -189,7 +189,7 @@ files:
189
189
  - lib/mtg_db/parsers.rb
190
190
  - lib/mtg_db/version.rb
191
191
  - mtg_db.gemspec
192
- - sql/cards.schema.sql
192
+ - sql/db.schema.sql
193
193
  - test/files/double-faced/aberrant-researcher.html
194
194
  - test/files/double-faced/abolisher-of-bloodlines.html
195
195
  - test/files/double-faced/accursed-witch.html