manasimu 0.0.18 → 0.0.19

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: 8d6ea60d2d69b6ec0c517c241c03f51dedb5fcb6f9830d01c5e43a71ca952fb3
4
- data.tar.gz: d918b9183adf48e7fd623234f05fce40d9b880ffe80719d9c6532e191b65fafe
3
+ metadata.gz: e68620e31c2457a6e73a328d618a708432713016a79118e175f0c77c47c456b9
4
+ data.tar.gz: 9851897aa3c43335cb97327814a51a6bf2621b27efc2d276b48550c10e8136bf
5
5
  SHA512:
6
- metadata.gz: 0747c61c051fc5477ddb4c695d0b6a53d2038ad52861cd989d3a6cdb7ff8a5e21661c6bf3da6a9eca3a0ff87c260f7ac4c7ee5ba512fcad9e012e65b668ef77a
7
- data.tar.gz: b60ead57d04031778ce0d618c9ebf00726e78523deff225aeefc34b4235444546224f7611d1aea215b4a8fdb34bb70a7bf8a935cd575f177a742ef3a6030d840
6
+ metadata.gz: 0ec616b06ad9394bf1554bc9788c0de48d7fc18aa903426b9aff8bf2383facf61f5f5e2c6c0e52ef3c99c10cf38a73925d46554650c23d2efec3ac2173fed2f8
7
+ data.tar.gz: 0e6fe28bef43f07c087eb10819a72e73bc2723f5d9d5d805b7f111ae31e3d56474cae958b347f51224152884a0040ecd2ad67c43b2e84764f94cc3a445ae25b4
data/lib/manasimu/card.rb CHANGED
@@ -404,6 +404,11 @@ class CardTypeAggregate
404
404
  end
405
405
  end
406
406
 
407
+ def map
408
+ @memo.map do |item|
409
+ yield item
410
+ end
411
+ end
407
412
  end
408
413
 
409
414
  class Content
data/lib/manasimu/data.rb CHANGED
@@ -60,16 +60,67 @@ class Deck
60
60
  result
61
61
  end
62
62
 
63
- def self.get_card_details(deck_items)
63
+ def self.card_types
64
64
  path = File.expand_path( '../../../db/card_type_aggregate', __FILE__ )
65
65
  @@card_types ||= Marshal.load(File.open(path, 'r'))
66
+ end
67
+
68
+ def self.find_card_types(lines)
69
+ types = card_types.map do |a| a end
70
+ types.sort! do |a,b| a.name <=> b.name end
71
+
72
+ distinct_types = []
73
+ types.each do |type|
74
+ next if distinct_types[-1] and distinct_types[-1].name == type.name
75
+ type.name.downcase!
76
+ distinct_types << type
77
+ end
78
+
79
+ ret = []
80
+ lines.each do |line|
81
+ line.chomp!.downcase!
82
+ search_type = distinct_types.bsearch do |type|
83
+ name = type.name
84
+ flag = true
85
+ name.chars.each_with_index do |nc,i|
86
+ if line.length > i
87
+ lc = line.chars[i]
88
+ if nc > lc
89
+ flag = true
90
+ break
91
+ elsif nc < lc
92
+ flag = false
93
+ break
94
+ else
95
+ # continue
96
+ end
97
+ else
98
+ flag = true
99
+ break
100
+ end
101
+ end
102
+ flag
103
+ end
104
+ if search_type
105
+ a = search_type.name
106
+ if line =~ /^#{a}.*$/ and a != 'x'
107
+ ret << search_type
108
+ end
109
+ end
110
+ end
111
+
112
+ ret.sort! do |a,b| a.mana_cost <=> b.mana_cost end
113
+ ret.uniq!
114
+ end
115
+
116
+ def self.get_card_details(deck_items)
66
117
  cards = []
67
118
  card_id = 0
68
- card_types = []
119
+ clone_card_types = []
69
120
  deck_items.each do |deck_item|
70
- card_type = @@card_types.find(deck_item[:set], deck_item[:setnum])
121
+ card_type = card_types.find(deck_item[:set], deck_item[:setnum])
71
122
  clone = CardType.create(card_type, deck_item[:name])
72
- card_types << clone
123
+ clone_card_types << clone
73
124
  if clone.is_land?
74
125
  if clone.name =~ /.*Pathway$/
75
126
  card = PathwayCard.new(clone)
@@ -99,6 +150,6 @@ class Deck
99
150
  cards << card_clone
100
151
  end
101
152
  end
102
- [cards, card_types]
153
+ [cards, clone_card_types]
103
154
  end
104
155
  end
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.18
4
+ version: 0.0.19
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-22 00:00:00.000000000 Z
11
+ date: 2022-05-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: mtg arrena mana curve simulator
14
14
  email: so1itaryrove@gmail.com