reinforce 0.2.4 → 0.3.0

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: 28a29c842c8aeb4abbaef8e61dc98ebb806d9f5d750b1e5d63f27183ec2b207b
4
- data.tar.gz: d80fc85f0d2b5e2a7f5b8cd6091852bbb398d4f3d8c31c5a822cbbf00d295aee
3
+ metadata.gz: 504fd1c7eb2e8e77f8b106c82f5633e2737676275d9b27309942422e339d1b83
4
+ data.tar.gz: 458e1b29b3007922c31c9ebd03368085f289bfacaf0c7a5d61dc2b7590c04ec5
5
5
  SHA512:
6
- metadata.gz: d1fda82069bdd02f0422c5cb1afc32a1f6e5a2cffe7adea3c8a9dc29402e6eed17338a00740ed8105f7d8969d1cb356a8de0e1bb305a296fd6dbbdb2ff395bca
7
- data.tar.gz: d4edac2bd51ee54e8eb4ff19c3eb28ff284bcdda52ca5fbc63f26f81141b7f1eb3818a165d0424325a73eaf6ca4f89d79383cc0e5c5477993dda395a1ad91c61
6
+ metadata.gz: 2ef1395bc7afeb85bf5bab9f5287707bcf2267638fe95f126f3b5eacf115ba0cf104d5db4675a4a66525b60b4aece8bfd52e2bc9d52b4d9359752fd44eb283ed
7
+ data.tar.gz: aea7fccc14a0dabdac89531adebcd865964ac03f20496db6bf6c9bd8a5cef4f0858f8a535bf1e7daca6bec4fd0235fa0bfb50164adab71cec1ff4f82dd4059ba
@@ -11,7 +11,7 @@ module Reinforce
11
11
  @pbgid = command_hash.values.first[:pbgid]
12
12
  @source = command_hash.values.first[:source_identifier]
13
13
  @index = command_hash.values.first[:queue_index]
14
- @details = Attributes::Collection.instance.get_by_pbgid(@pbgid, build: build_number)
14
+ @details = Reinforce.dictionary.get_by_pbgid(@pbgid, build: build_number)
15
15
  @cancelled = false
16
16
  @suspect_from_tick = nil
17
17
  end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+ require 'singleton'
5
+
6
+ module Reinforce
7
+ class Dictionary
8
+ include Singleton
9
+ extend Forwardable
10
+
11
+ def_delegators :@collection, :get_by_pbgid, :get_by_path
12
+
13
+ def initialize
14
+ @collection = Attributes::Collection.new
15
+
16
+ [Attributes::Ability, Attributes::Entity, Attributes::Squad, Attributes::Upgrade].each do |klass|
17
+ generated_path = File.join(Reinforce.root, 'generated', klass::FILENAME)
18
+ File.open(generated_path) do |file|
19
+ data = JSON.parse(file.read)
20
+ data.each do |build, attributes|
21
+ @collection.populate(build, attributes.map { |a| klass.new(**a.transform_keys(&:to_sym)) }, rehash: false)
22
+ end
23
+ end
24
+ end
25
+
26
+ @collection.rehash_all
27
+ end
28
+ end
29
+ end
@@ -100,7 +100,7 @@ module Reinforce
100
100
  commands.each_with_index do |command, idx|
101
101
  next unless command.suspect?
102
102
 
103
- building_details = Attributes::Collection.instance.get_by_path(command.details&.builds, build: @build_number)
103
+ building_details = Reinforce.dictionary.get_by_path(command.details&.builds, build: @build_number)
104
104
  remaining = commands[(idx + 1)..]
105
105
  relevant = remaining.take_while { |c| c.pbgid != command.pbgid }
106
106
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reinforce
4
- VERSION = '0.2.4'
4
+ VERSION = '0.3.0'
5
5
  end
data/lib/reinforce.rb CHANGED
@@ -12,6 +12,7 @@ require_relative 'reinforce/attributes/upgrade'
12
12
  require_relative 'reinforce/attributes/collection'
13
13
 
14
14
  require_relative 'reinforce/command'
15
+ require_relative 'reinforce/dictionary'
15
16
  require_relative 'reinforce/factory'
16
17
 
17
18
  require_relative 'reinforce/version'
@@ -32,6 +33,10 @@ module Reinforce
32
33
  Factory.new(player, build_number).build(with_cancellations:)
33
34
  end
34
35
 
36
+ def self.dictionary
37
+ Dictionary.instance
38
+ end
39
+
35
40
  # Parses data into structures for build order generation
36
41
  def self.generate(pretty: false)
37
42
  [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reinforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryantaylor
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-13 00:00:00.000000000 Z
11
+ date: 2024-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vault_coh
@@ -51,6 +51,7 @@ files:
51
51
  - lib/reinforce/attributes/squad.rb
52
52
  - lib/reinforce/attributes/upgrade.rb
53
53
  - lib/reinforce/command.rb
54
+ - lib/reinforce/dictionary.rb
54
55
  - lib/reinforce/factory.rb
55
56
  - lib/reinforce/version.rb
56
57
  homepage: https://github.com/ryantaylor/reinforce