manasimu 0.0.4 → 0.0.7

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: 66e4795cd04e0cc7c990457ac9c7a55b92e3a2acbe4dff3482f782616bc7cd65
4
- data.tar.gz: 892e558ab2356a5643c1f67d5a25567ea9b0cdc6020329587701fe65aae97d0d
3
+ metadata.gz: aa769c22b5954b3410dec04b773abab6ec9130953b07946ec229528cd38dd7a9
4
+ data.tar.gz: 0c96dcee60c36629f885e3dbcb0c236c4a699c6bab064a323f7b56968041733f
5
5
  SHA512:
6
- metadata.gz: c51d8ad73ea770f689bb9eb59bda84ee70a71afe59a05582334c4109d228745edd7035ac34bf988410de769d03b3a5b1279d915a59b45128cfcf4510a7215fec
7
- data.tar.gz: f98dd700861130e42c69f36e9211d50700857649cf4cd71b9a4acf4156cd6a9eb08a3ae3c8ec65e17a22eacf170c7246c6c7518ede6166de18452c07727109a3
6
+ metadata.gz: 00b241f58208db388327de9e23686f41871a3f446dd99d1100589ddc777debc78c9fd551d0edc9ad220c40060fb7f1620e9986445f461a4df50b4afe32f8f171
7
+ data.tar.gz: e620e1ec3ed3f2b2d5c963aa1a4fd8712c4016ca028e7e0efc13efb1abd4af1de0a88d4300145040a433656cc12e9867b5963fecf54a7008208e88c655f8a25e
Binary file
Binary file
data/lib/manasimu/card.rb CHANGED
@@ -75,7 +75,16 @@ class Card
75
75
  end
76
76
 
77
77
  class CardType
78
- attr_accessor :contents
78
+ attr_accessor :contents, :played, :drawed, :name
79
+
80
+ def self.create(card_type, name)
81
+ ret = card_type.dup
82
+ ret.contents = card_type.contents
83
+ ret.played = nil
84
+ ret.drawed = nil
85
+ ret.name = name
86
+ ret
87
+ end
79
88
 
80
89
  def initialize(contents)
81
90
  return if not contents
@@ -246,22 +255,19 @@ end
246
255
 
247
256
  class CardTypeAggregate
248
257
 
249
- def find(card_type)
258
+ def find(set_code, number)
250
259
  @memo ||= []
251
- return nil if not card_type
252
- singleton = @memo.find do |c|
260
+ @memo.find do |c|
253
261
  a = c.contents[0]
254
- b = card_type.contents[0]
255
- a and b and a.name == b.name
256
- end
257
- if singleton
258
- singleton
259
- else
260
- @memo << card_type
261
- card_type
262
+ a and a.set_code == set_code and a.number == number
262
263
  end
263
264
  end
264
265
 
266
+ def add(card_type)
267
+ @memo ||= []
268
+ @memo << card_type
269
+ end
270
+
265
271
  def each
266
272
  return if not @memo
267
273
  @memo.each do |item|
@@ -293,6 +299,7 @@ class Content
293
299
  def to_s
294
300
  "[#{@name}] [#{@types}] [#{@color_identity}] [#{@mana_cost}]"
295
301
  end
302
+
296
303
  end
297
304
 
298
305
  class FordFulkersonSingleton
data/lib/manasimu/data.rb CHANGED
@@ -61,50 +61,16 @@ class Deck
61
61
  end
62
62
 
63
63
  def self.get_card_details(deck_items)
64
- path = File.expand_path( '../../../db/AllPrintings.sqlite', __FILE__ )
65
- db = SQLite3::Database.new(path)
66
- sql = <<DOC
67
- select distinct
68
- name
69
- ,number
70
- ,colorIdentity
71
- ,side
72
- ,setCode
73
- ,manaCost
74
- ,types
75
- ,text
76
- ,convertedManaCost
77
- from cards
78
- where
79
- number = ? and
80
- setCode = ?
81
- DOC
64
+ path = File.expand_path( '../../../db/card_type_aggregate', __FILE__ )
65
+ @@card_types ||= Marshal.load(File.open(path, 'r'))
82
66
  cards = []
83
67
  card_id = 0
84
- card_types = CardTypeAggregate.new
68
+ card_types = []
85
69
  deck_items.each do |deck_item|
86
- rows = db.execute(sql, deck_item[:setnum], deck_item[:set])
87
- if rows.empty?
88
- puts deck_item[:name]
89
- end
90
-
91
- card_type = card_types.find(
92
- CardType.new(rows.map { |row|
93
- {
94
- name: row[0],
95
- number: row[1],
96
- color_identity: row[2],
97
- side: row[3],
98
- set_code: row[4],
99
- mana_cost: row[5],
100
- types: row[6],
101
- text: row[7],
102
- converted_mana_cost: row[8]
103
- }
104
- })
105
- )
106
- card = Card.new(card_type)
107
-
70
+ card_type = @@card_types.find(deck_item[:set], deck_item[:setnum])
71
+ clone = CardType.create(card_type, deck_item[:name])
72
+ card_types << clone
73
+ card = Card.new(clone)
108
74
  deck_item[:amount].to_i.times do
109
75
  card_clone = card.dup
110
76
  card_clone.id = card_id
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manasimu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - so1itaryrove
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-05-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: mtg arrena mana curve simulator
14
14
  email: so1itaryrove@gmail.com
@@ -16,7 +16,7 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - db/AllPrintings.sqlite
19
+ - db/card_type_aggregate
20
20
  - ext/ford_fulkerson.so
21
21
  - lib/manasimu.rb
22
22
  - lib/manasimu/card.rb
Binary file