vault_coh 1.0.0 → 2.0.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: 95461c3147428ac051ee0003a88304da0fe3bd82a3d62fb333b82efadfc54a69
4
- data.tar.gz: ba0b1420bdadb6b0143f19d2b071060d600113fb5b8ecc44862e3bb9459b45f1
3
+ metadata.gz: bdbd7e919eda17b55ac97b058087b32094c56066a612ddff20d78ade238b2797
4
+ data.tar.gz: 2cdc54cbc219eace927ec8e58d586c012c1a97933636e1ad1207adcf7acd0343
5
5
  SHA512:
6
- metadata.gz: 3c73ae3273b3a66ec94dec001ec9a971888a33f53c1e6a3389cf9bec5f9e716f19a049ac0a25ea9c6a0900edb3958b4c0d25b4f083a9e3db299d0ea381de8d12
7
- data.tar.gz: 18ef4b4dd7ba45c938b092dda340e0406bc396676d7d022126b7298a2d70bb52e9f3f094bf73a86ffab69cee0f88fa5c4b02dc79d87a2fb93b5f02987e2ec2d0
6
+ metadata.gz: e989e5dc6f37f6730a6e406e29d35acb7eb6b779e48b8e36d156df2abfd825bb2fd5909c1f7875c155a167d5d7eb7cebf690014eb853e9389c917069ba5a41ce
7
+ data.tar.gz: 9aaa7fee672a3a617b03151b2967c122503ab67d3fe197b7df615b151bc79b6ca9889203bad6b82c4d5689548c102921922fbcb28e5c5633093d60370a4d9fb2
data/Cargo.lock CHANGED
@@ -4,18 +4,18 @@ version = 3
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
7
- version = "1.0.1"
7
+ version = "1.1.2"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
9
+ checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
10
10
  dependencies = [
11
11
  "memchr",
12
12
  ]
13
13
 
14
14
  [[package]]
15
15
  name = "bindgen"
16
- version = "0.60.1"
16
+ version = "0.66.1"
17
17
  source = "registry+https://github.com/rust-lang/crates.io-index"
18
- checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
18
+ checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
19
19
  dependencies = [
20
20
  "bitflags",
21
21
  "cexpr",
@@ -28,25 +28,26 @@ dependencies = [
28
28
  "regex",
29
29
  "rustc-hash",
30
30
  "shlex",
31
+ "syn 2.0.38",
31
32
  ]
32
33
 
33
34
  [[package]]
34
35
  name = "bitflags"
35
- version = "1.3.2"
36
+ version = "2.4.1"
36
37
  source = "registry+https://github.com/rust-lang/crates.io-index"
37
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
38
+ checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
38
39
 
39
40
  [[package]]
40
41
  name = "bytecount"
41
- version = "0.6.3"
42
+ version = "0.6.7"
42
43
  source = "registry+https://github.com/rust-lang/crates.io-index"
43
- checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
44
+ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
44
45
 
45
46
  [[package]]
46
47
  name = "byteorder"
47
- version = "1.4.3"
48
+ version = "1.5.0"
48
49
  source = "registry+https://github.com/rust-lang/crates.io-index"
49
- checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
50
+ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
50
51
 
51
52
  [[package]]
52
53
  name = "cexpr"
@@ -94,9 +95,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
94
95
 
95
96
  [[package]]
96
97
  name = "libc"
97
- version = "0.2.143"
98
+ version = "0.2.149"
98
99
  source = "registry+https://github.com/rust-lang/crates.io-index"
99
- checksum = "edc207893e85c5d6be840e969b496b53d94cec8be2d501b214f50daa97fa8024"
100
+ checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
100
101
 
101
102
  [[package]]
102
103
  name = "libloading"
@@ -110,31 +111,32 @@ dependencies = [
110
111
 
111
112
  [[package]]
112
113
  name = "magnus"
113
- version = "0.5.3"
114
+ version = "0.6.2"
114
115
  source = "registry+https://github.com/rust-lang/crates.io-index"
115
- checksum = "c8dc14463c2552e753ef562961f486ca76f17a857c121db40e9f3ade3f35ab81"
116
+ checksum = "4778544796676e8428e9c622460ebf284bea52d8b10db3aeb449d8b5e61b3a13"
116
117
  dependencies = [
117
118
  "magnus-macros",
118
119
  "rb-sys",
119
120
  "rb-sys-env",
121
+ "seq-macro",
120
122
  ]
121
123
 
122
124
  [[package]]
123
125
  name = "magnus-macros"
124
- version = "0.4.1"
126
+ version = "0.6.0"
125
127
  source = "registry+https://github.com/rust-lang/crates.io-index"
126
- checksum = "6cc17af1d45442c011aa579d727ec6cff8a69aea8a6bbad26736e7112d749bfb"
128
+ checksum = "5968c820e2960565f647819f5928a42d6e874551cab9d88d75e3e0660d7f71e3"
127
129
  dependencies = [
128
130
  "proc-macro2",
129
131
  "quote",
130
- "syn",
132
+ "syn 2.0.38",
131
133
  ]
132
134
 
133
135
  [[package]]
134
136
  name = "memchr"
135
- version = "2.5.0"
137
+ version = "2.6.4"
136
138
  source = "registry+https://github.com/rust-lang/crates.io-index"
137
- checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
139
+ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
138
140
 
139
141
  [[package]]
140
142
  name = "minimal-lexical"
@@ -170,14 +172,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
170
172
  checksum = "a7ac681ea0c3d468b003bdebe3a65d1632e340302452f95c3ffadf515704c48d"
171
173
  dependencies = [
172
174
  "quote",
173
- "syn",
175
+ "syn 1.0.109",
174
176
  ]
175
177
 
176
178
  [[package]]
177
179
  name = "nom_locate"
178
- version = "4.1.0"
180
+ version = "4.2.0"
179
181
  source = "registry+https://github.com/rust-lang/crates.io-index"
180
- checksum = "b1e299bf5ea7b212e811e71174c5d1a5d065c4c0ad0c8691ecb1f97e3e66025e"
182
+ checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3"
181
183
  dependencies = [
182
184
  "bytecount",
183
185
  "memchr",
@@ -192,36 +194,36 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
192
194
 
193
195
  [[package]]
194
196
  name = "proc-macro2"
195
- version = "1.0.56"
197
+ version = "1.0.69"
196
198
  source = "registry+https://github.com/rust-lang/crates.io-index"
197
- checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
199
+ checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
198
200
  dependencies = [
199
201
  "unicode-ident",
200
202
  ]
201
203
 
202
204
  [[package]]
203
205
  name = "quote"
204
- version = "1.0.26"
206
+ version = "1.0.33"
205
207
  source = "registry+https://github.com/rust-lang/crates.io-index"
206
- checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
208
+ checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
207
209
  dependencies = [
208
210
  "proc-macro2",
209
211
  ]
210
212
 
211
213
  [[package]]
212
214
  name = "rb-sys"
213
- version = "0.9.75"
215
+ version = "0.9.81"
214
216
  source = "registry+https://github.com/rust-lang/crates.io-index"
215
- checksum = "32ffbc5146796cb118f5a68196fabf1bccfff94c4830dea18aac0690cb29bb87"
217
+ checksum = "a57240b308b155b09dce81e32829966a99f52d1088b45957e4283e526c5317a1"
216
218
  dependencies = [
217
219
  "rb-sys-build",
218
220
  ]
219
221
 
220
222
  [[package]]
221
223
  name = "rb-sys-build"
222
- version = "0.9.75"
224
+ version = "0.9.81"
223
225
  source = "registry+https://github.com/rust-lang/crates.io-index"
224
- checksum = "55edd49608668f9d45b7b1d619e6dab24ce8e591bcb912975936314aad94be40"
226
+ checksum = "f24ce877a4c5d07f06f6aa6fec3ac95e4b357b9f73b0f5445d8cbb7266d410e8"
225
227
  dependencies = [
226
228
  "bindgen",
227
229
  "lazy_static",
@@ -229,7 +231,7 @@ dependencies = [
229
231
  "quote",
230
232
  "regex",
231
233
  "shell-words",
232
- "syn",
234
+ "syn 2.0.38",
233
235
  ]
234
236
 
235
237
  [[package]]
@@ -240,9 +242,21 @@ checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
240
242
 
241
243
  [[package]]
242
244
  name = "regex"
243
- version = "1.8.1"
245
+ version = "1.10.2"
246
+ source = "registry+https://github.com/rust-lang/crates.io-index"
247
+ checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
248
+ dependencies = [
249
+ "aho-corasick",
250
+ "memchr",
251
+ "regex-automata",
252
+ "regex-syntax",
253
+ ]
254
+
255
+ [[package]]
256
+ name = "regex-automata"
257
+ version = "0.4.3"
244
258
  source = "registry+https://github.com/rust-lang/crates.io-index"
245
- checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
259
+ checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
246
260
  dependencies = [
247
261
  "aho-corasick",
248
262
  "memchr",
@@ -251,9 +265,9 @@ dependencies = [
251
265
 
252
266
  [[package]]
253
267
  name = "regex-syntax"
254
- version = "0.7.1"
268
+ version = "0.8.2"
255
269
  source = "registry+https://github.com/rust-lang/crates.io-index"
256
- checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
270
+ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
257
271
 
258
272
  [[package]]
259
273
  name = "rustc-hash"
@@ -261,6 +275,45 @@ version = "1.1.0"
261
275
  source = "registry+https://github.com/rust-lang/crates.io-index"
262
276
  checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
263
277
 
278
+ [[package]]
279
+ name = "seq-macro"
280
+ version = "0.3.5"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
283
+
284
+ [[package]]
285
+ name = "serde"
286
+ version = "1.0.156"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "314b5b092c0ade17c00142951e50ced110ec27cea304b1037c6969246c2469a4"
289
+ dependencies = [
290
+ "serde_derive",
291
+ ]
292
+
293
+ [[package]]
294
+ name = "serde_derive"
295
+ version = "1.0.156"
296
+ source = "registry+https://github.com/rust-lang/crates.io-index"
297
+ checksum = "d7e29c4601e36bcec74a223228dce795f4cd3616341a4af93520ca1a837c087d"
298
+ dependencies = [
299
+ "proc-macro2",
300
+ "quote",
301
+ "syn 1.0.109",
302
+ ]
303
+
304
+ [[package]]
305
+ name = "serde_magnus"
306
+ version = "0.8.0"
307
+ source = "registry+https://github.com/rust-lang/crates.io-index"
308
+ checksum = "4a9a56602c902d792aac8f369117c4490616b6772aaa85fad88cc8cc35edd192"
309
+ dependencies = [
310
+ "magnus",
311
+ "rb-sys",
312
+ "rb-sys-build",
313
+ "serde",
314
+ "tap",
315
+ ]
316
+
264
317
  [[package]]
265
318
  name = "shell-words"
266
319
  version = "1.1.0"
@@ -269,9 +322,9 @@ checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
269
322
 
270
323
  [[package]]
271
324
  name = "shlex"
272
- version = "1.1.0"
325
+ version = "1.2.0"
273
326
  source = "registry+https://github.com/rust-lang/crates.io-index"
274
- checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
327
+ checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
275
328
 
276
329
  [[package]]
277
330
  name = "syn"
@@ -284,23 +337,41 @@ dependencies = [
284
337
  "unicode-ident",
285
338
  ]
286
339
 
340
+ [[package]]
341
+ name = "syn"
342
+ version = "2.0.38"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
345
+ dependencies = [
346
+ "proc-macro2",
347
+ "quote",
348
+ "unicode-ident",
349
+ ]
350
+
351
+ [[package]]
352
+ name = "tap"
353
+ version = "1.0.1"
354
+ source = "registry+https://github.com/rust-lang/crates.io-index"
355
+ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
356
+
287
357
  [[package]]
288
358
  name = "unicode-ident"
289
- version = "1.0.8"
359
+ version = "1.0.12"
290
360
  source = "registry+https://github.com/rust-lang/crates.io-index"
291
- checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
361
+ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
292
362
 
293
363
  [[package]]
294
364
  name = "vault"
295
- version = "4.0.0"
365
+ version = "5.0.0"
296
366
  source = "registry+https://github.com/rust-lang/crates.io-index"
297
- checksum = "fbc584e1c893f783e5eb795b849c5a512992b3d0f39c0b2c124e8d17584f9b82"
367
+ checksum = "c67502a964c8ac4301dcd55e042f7b581fb4bce681dc4236b3c75f5971a219ce"
298
368
  dependencies = [
299
369
  "byteorder",
300
370
  "magnus",
301
371
  "nom",
302
372
  "nom-tracable",
303
373
  "nom_locate",
374
+ "serde",
304
375
  ]
305
376
 
306
377
  [[package]]
@@ -308,6 +379,7 @@ name = "vault_coh"
308
379
  version = "1.0.0"
309
380
  dependencies = [
310
381
  "magnus",
382
+ "serde_magnus",
311
383
  "vault",
312
384
  ]
313
385
 
data/Gemfile CHANGED
@@ -12,4 +12,4 @@ gem 'rb_sys'
12
12
 
13
13
  gem 'rspec', '~> 3.0'
14
14
 
15
- gem 'rubocop', '~> 1.55'
15
+ gem 'rubocop', '~> 1.57'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vault_coh (1.0.0)
4
+ vault_coh (2.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -11,16 +11,16 @@ GEM
11
11
  json (2.6.3)
12
12
  language_server-protocol (3.17.0.3)
13
13
  parallel (1.23.0)
14
- parser (3.2.2.3)
14
+ parser (3.2.2.4)
15
15
  ast (~> 2.4.1)
16
16
  racc
17
- racc (1.7.1)
17
+ racc (1.7.2)
18
18
  rainbow (3.1.1)
19
- rake (13.0.6)
19
+ rake (13.1.0)
20
20
  rake-compiler (1.2.5)
21
21
  rake
22
- rb_sys (0.9.81)
23
- regexp_parser (2.8.1)
22
+ rb_sys (0.9.82)
23
+ regexp_parser (2.8.2)
24
24
  rexml (3.2.6)
25
25
  rspec (3.12.0)
26
26
  rspec-core (~> 3.12.0)
@@ -35,21 +35,21 @@ GEM
35
35
  diff-lcs (>= 1.2.0, < 2.0)
36
36
  rspec-support (~> 3.12.0)
37
37
  rspec-support (3.12.1)
38
- rubocop (1.55.1)
38
+ rubocop (1.57.2)
39
39
  json (~> 2.3)
40
40
  language_server-protocol (>= 3.17.0)
41
41
  parallel (~> 1.10)
42
- parser (>= 3.2.2.3)
42
+ parser (>= 3.2.2.4)
43
43
  rainbow (>= 2.2.2, < 4.0)
44
44
  regexp_parser (>= 1.8, < 3.0)
45
45
  rexml (>= 3.2.5, < 4.0)
46
46
  rubocop-ast (>= 1.28.1, < 2.0)
47
47
  ruby-progressbar (~> 1.7)
48
48
  unicode-display_width (>= 2.4.0, < 3.0)
49
- rubocop-ast (1.29.0)
49
+ rubocop-ast (1.30.0)
50
50
  parser (>= 3.2.1.0)
51
51
  ruby-progressbar (1.13.0)
52
- unicode-display_width (2.4.2)
52
+ unicode-display_width (2.5.0)
53
53
 
54
54
  PLATFORMS
55
55
  arm64-darwin-21
@@ -60,7 +60,7 @@ DEPENDENCIES
60
60
  rake-compiler
61
61
  rb_sys
62
62
  rspec (~> 3.0)
63
- rubocop (~> 1.55)
63
+ rubocop (~> 1.57)
64
64
  vault_coh!
65
65
 
66
66
  BUNDLED WITH
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Vault
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/vault_coh.svg)](https://badge.fury.io/rb/vault_coh) [![Documentation](https://img.shields.io/badge/View-Documentation-blue.svg)](https://rubydoc.info/github/ryantaylor/vault-rb/v1.0.0)
3
+ [![Gem Version](https://badge.fury.io/rb/vault_coh.svg)](https://badge.fury.io/rb/vault_coh) [![Documentation](https://img.shields.io/badge/View-Documentation-blue.svg)](https://rubydoc.info/github/ryantaylor/vault-rb/v2.0.0)
4
4
 
5
5
  A native Ruby client wrapper for the [vault](https://github.com/ryantaylor/vault) Company of Heroes replay parser, integrated via a Rust native extension.
6
6
 
7
7
  ## Installation
8
8
 
9
- First, make sure you have a relatively recent version of the Rust toolchain installed (minimum supported Rust version for `vault` is 1.61.0). You can install Rust easily using [rustup](https://rustup.rs/).
9
+ First, make sure you have a relatively recent version of the Rust toolchain installed (minimum supported Rust version for `vault` is 1.65.0). You can install Rust easily using [rustup](https://rustup.rs/).
10
10
 
11
11
  Then you can add to Gemfile:
12
12
  ```
@@ -24,7 +24,7 @@ bytes = File.read('/path/to/replay.rec').unpack('C*')
24
24
  replay = VaultCoh::Replay.from_bytes(bytes)
25
25
  puts replay.version
26
26
  ```
27
- All information available from parsing can be found in the [documentation](https://rubydoc.info/github/ryantaylor/vault-rb/v1.0.0).
27
+ All information available from parsing can be found in the [documentation](https://rubydoc.info/github/ryantaylor/vault-rb/v2.0.0).
28
28
 
29
29
  ## Contributing
30
30
 
@@ -10,5 +10,6 @@ publish = false
10
10
  crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
- magnus = { version = "0.5" }
14
- vault = { version = "4", features = ["magnus"] }
13
+ magnus = { version = "0.6" }
14
+ serde_magnus = { version = "0.8" }
15
+ vault = { version = "5", features = ["magnus", "serde"] }
@@ -0,0 +1,49 @@
1
+ use magnus::Value;
2
+ use vault::commands::{BuildSquad, SelectBattlegroup, Unknown};
3
+ use vault::{Map, Message, Player, Replay};
4
+
5
+ pub trait HashExt {
6
+ fn to_h(&self) -> Value;
7
+ }
8
+
9
+ impl HashExt for Replay {
10
+ fn to_h(&self) -> Value {
11
+ serde_magnus::serialize(self).unwrap()
12
+ }
13
+ }
14
+
15
+ impl HashExt for Map {
16
+ fn to_h(&self) -> Value {
17
+ serde_magnus::serialize(self).unwrap()
18
+ }
19
+ }
20
+
21
+ impl HashExt for Player {
22
+ fn to_h(&self) -> Value {
23
+ serde_magnus::serialize(self).unwrap()
24
+ }
25
+ }
26
+
27
+ impl HashExt for Message {
28
+ fn to_h(&self) -> Value {
29
+ serde_magnus::serialize(self).unwrap()
30
+ }
31
+ }
32
+
33
+ impl HashExt for BuildSquad {
34
+ fn to_h(&self) -> Value {
35
+ serde_magnus::serialize(self).unwrap()
36
+ }
37
+ }
38
+
39
+ impl HashExt for SelectBattlegroup {
40
+ fn to_h(&self) -> Value {
41
+ serde_magnus::serialize(self).unwrap()
42
+ }
43
+ }
44
+
45
+ impl HashExt for Unknown {
46
+ fn to_h(&self) -> Value {
47
+ serde_magnus::serialize(self).unwrap()
48
+ }
49
+ }
@@ -1,3 +1,6 @@
1
+ mod hash;
2
+
3
+ use crate::hash::HashExt;
1
4
  use magnus::{class, define_module, exception, function, method, prelude::*, Error};
2
5
  use vault::commands::{BuildSquad, SelectBattlegroup, Unknown};
3
6
  use vault::{Command, Faction, Map, Message, Player, Replay, Team};
@@ -23,6 +26,7 @@ fn init() -> Result<(), Error> {
23
26
  )?;
24
27
  replay.define_method("players", method!(Replay::players, 0))?;
25
28
  replay.define_method("length", method!(Replay::length, 0))?;
29
+ replay.define_method("to_h", method!(Replay::to_h, 0))?;
26
30
 
27
31
  let map = module.define_class("Map", class::object())?;
28
32
  map.define_method("filename", method!(Map::filename, 0))?;
@@ -31,6 +35,7 @@ fn init() -> Result<(), Error> {
31
35
  "localized_description_id",
32
36
  method!(Map::localized_description_id, 0),
33
37
  )?;
38
+ map.define_method("to_h", method!(Map::to_h, 0))?;
34
39
 
35
40
  let player = module.define_class("Player", class::object())?;
36
41
  player.define_method("name", method!(Player::name, 0))?;
@@ -42,10 +47,12 @@ fn init() -> Result<(), Error> {
42
47
  player.define_method("messages", method!(Player::messages, 0))?;
43
48
  player.define_method("commands", method!(Player::commands, 0))?;
44
49
  player.define_method("build_commands", method!(Player::build_commands, 0))?;
50
+ player.define_method("to_h", method!(Player::to_h, 0))?;
45
51
 
46
52
  let message = module.define_class("Message", class::object())?;
47
53
  message.define_method("tick", method!(Message::tick, 0))?;
48
54
  message.define_method("message", method!(Message::message, 0))?;
55
+ message.define_method("to_h", method!(Message::to_h, 0))?;
49
56
 
50
57
  let faction = module.define_class("Faction", class::object())?;
51
58
  faction.define_method("value", method!(Faction::to_string, 0))?;
@@ -63,6 +70,7 @@ fn init() -> Result<(), Error> {
63
70
  let build_squad = commands_module.define_class("BuildSquad", class::object())?;
64
71
  build_squad.define_method("tick", method!(BuildSquad::tick, 0))?;
65
72
  build_squad.define_method("pbgid", method!(BuildSquad::pbgid, 0))?;
73
+ build_squad.define_method("to_h", method!(BuildSquad::to_h, 0))?;
66
74
 
67
75
  let select_battlegroup_command =
68
76
  commands_module.define_class("SelectBattlegroupCommand", command)?;
@@ -72,6 +80,7 @@ fn init() -> Result<(), Error> {
72
80
  let select_battlegroup = commands_module.define_class("SelectBattlegroup", class::object())?;
73
81
  select_battlegroup.define_method("tick", method!(SelectBattlegroup::tick, 0))?;
74
82
  select_battlegroup.define_method("pbgid", method!(SelectBattlegroup::pbgid, 0))?;
83
+ select_battlegroup.define_method("to_h", method!(SelectBattlegroup::to_h, 0))?;
75
84
 
76
85
  let unknown_command = commands_module.define_class("UnknownCommand", command)?;
77
86
  unknown_command.define_method("value", method!(Command::extract_unknown, 0))?;
@@ -79,6 +88,7 @@ fn init() -> Result<(), Error> {
79
88
  let unknown = commands_module.define_class("Unknown", class::object())?;
80
89
  unknown.define_method("tick", method!(Unknown::tick, 0))?;
81
90
  unknown.define_method("action_type", method!(Unknown::action_type, 0))?;
91
+ unknown.define_method("to_h", method!(Unknown::to_h, 0))?;
82
92
 
83
93
  Ok(())
84
94
  }
@@ -24,6 +24,11 @@ module VaultCoh
24
24
  #
25
25
  # @return [Integer] unsigned, 32 bits
26
26
  def pbgid; end
27
+
28
+ # Returns a hash representation of the object.
29
+ #
30
+ # @return [Hash]
31
+ def to_h; end
27
32
  end
28
33
  end
29
34
  end
@@ -25,6 +25,11 @@ module VaultCoh
25
25
  #
26
26
  # @return [Integer] unsigned, 32 bits
27
27
  def pbgid; end
28
+
29
+ # Returns a hash representation of the object.
30
+ #
31
+ # @return [Hash]
32
+ def to_h; end
28
33
  end
29
34
  end
30
35
  end
@@ -22,6 +22,11 @@ module VaultCoh
22
22
  #
23
23
  # @return [Integer] unsigned, 8 bits
24
24
  def action_type; end
25
+
26
+ # Returns a hash representation of the object.
27
+ #
28
+ # @return [Hash]
29
+ def to_h; end
25
30
  end
26
31
  end
27
32
  end
data/lib/vault_coh/map.rb CHANGED
@@ -28,5 +28,10 @@ module VaultCoh
28
28
  #
29
29
  # @return [String]
30
30
  def localized_description_id; end
31
+
32
+ # Returns a hash representation of the object.
33
+ #
34
+ # @return [Hash]
35
+ def to_h; end
31
36
  end
32
37
  end
@@ -20,5 +20,10 @@ module VaultCoh
20
20
  #
21
21
  # @return [String]
22
22
  def message; end
23
+
24
+ # Returns a hash representation of the object.
25
+ #
26
+ # @return [Hash]
27
+ def to_h; end
23
28
  end
24
29
  end
@@ -64,5 +64,10 @@ module VaultCoh
64
64
  #
65
65
  # @return [Array<Commands::BuildSquad>]
66
66
  def build_commands; end
67
+
68
+ # Returns a hash representation of the object.
69
+ #
70
+ # @return [Hash]
71
+ def to_h; end
67
72
  end
68
73
  end
@@ -82,5 +82,10 @@ module VaultCoh
82
82
  #
83
83
  # @return [Integer]
84
84
  def length; end
85
+
86
+ # Returns a hash representation of the object.
87
+ #
88
+ # @return [Hash]
89
+ def to_h; end
85
90
  end
86
91
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VaultCoh
4
- VERSION = '1.0.0'
4
+ VERSION = '2.0.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vault_coh
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryantaylor
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-13 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Company of Heroes replay parsing in Ruby using the vault parsing library
14
14
  via a Rust native extension.
@@ -31,6 +31,7 @@ files:
31
31
  - Rakefile
32
32
  - ext/vault_coh/Cargo.toml
33
33
  - ext/vault_coh/extconf.rb
34
+ - ext/vault_coh/src/hash.rs
34
35
  - ext/vault_coh/src/lib.rs
35
36
  - lib/vault_coh.rb
36
37
  - lib/vault_coh/command.rb