vault_coh 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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