bindata 2.4.14 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog.rdoc +20 -0
- data/LICENSE +25 -0
- data/NEWS.rdoc +5 -0
- data/README.md +6 -9
- data/bindata.gemspec +9 -4
- data/examples/NBT.txt +1 -1
- data/examples/list.rb +1 -1
- data/lib/bindata/alignment.rb +15 -7
- data/lib/bindata/array.rb +54 -54
- data/lib/bindata/base.rb +14 -25
- data/lib/bindata/base_primitive.rb +24 -20
- data/lib/bindata/bits.rb +5 -5
- data/lib/bindata/buffer.rb +89 -11
- data/lib/bindata/choice.rb +9 -6
- data/lib/bindata/count_bytes_remaining.rb +1 -1
- data/lib/bindata/delayed_io.rb +12 -11
- data/lib/bindata/dsl.rb +34 -32
- data/lib/bindata/float.rb +3 -3
- data/lib/bindata/framework.rb +8 -10
- data/lib/bindata/int.rb +9 -9
- data/lib/bindata/io.rb +276 -253
- data/lib/bindata/name.rb +1 -1
- data/lib/bindata/params.rb +9 -7
- data/lib/bindata/primitive.rb +3 -3
- data/lib/bindata/registry.rb +18 -18
- data/lib/bindata/rest.rb +1 -1
- data/lib/bindata/sanitize.rb +9 -16
- data/lib/bindata/section.rb +97 -0
- data/lib/bindata/skip.rb +140 -51
- data/lib/bindata/string.rb +9 -9
- data/lib/bindata/stringz.rb +12 -10
- data/lib/bindata/struct.rb +83 -66
- data/lib/bindata/trace.rb +35 -42
- data/lib/bindata/transform/brotli.rb +35 -0
- data/lib/bindata/transform/lz4.rb +35 -0
- data/lib/bindata/transform/lzma.rb +35 -0
- data/lib/bindata/transform/xor.rb +19 -0
- data/lib/bindata/transform/xz.rb +35 -0
- data/lib/bindata/transform/zlib.rb +33 -0
- data/lib/bindata/transform/zstd.rb +35 -0
- data/lib/bindata/uint8_array.rb +2 -2
- data/lib/bindata/version.rb +1 -1
- data/lib/bindata/virtual.rb +4 -7
- data/lib/bindata/warnings.rb +1 -1
- data/lib/bindata.rb +1 -0
- data/test/array_test.rb +10 -8
- data/test/buffer_test.rb +9 -0
- data/test/choice_test.rb +1 -1
- data/test/delayed_io_test.rb +16 -0
- data/test/io_test.rb +54 -246
- data/test/registry_test.rb +1 -1
- data/test/section_test.rb +111 -0
- data/test/skip_test.rb +55 -10
- data/test/string_test.rb +4 -4
- data/test/stringz_test.rb +8 -0
- data/test/struct_test.rb +87 -12
- data/test/system_test.rb +119 -1
- data/test/test_helper.rb +24 -13
- data/test/warnings_test.rb +12 -0
- metadata +19 -22
- data/.gitignore +0 -2
- data/.travis.yml +0 -15
- data/BSDL +0 -22
- data/COPYING +0 -52
- data/INSTALL +0 -12
- data/lib/bindata/offset.rb +0 -94
- data/test/offset_test.rb +0 -100
data/test/string_test.rb
CHANGED
@@ -298,15 +298,15 @@ end
|
|
298
298
|
describe BinData::String, "warnings" do
|
299
299
|
it "warns if has :asserted_value but no :length" do
|
300
300
|
obj = BinData::String.new(asserted_value: "ABC")
|
301
|
-
|
301
|
+
_ {
|
302
302
|
_ { obj.read("abcde") }.must_raise BinData::ValidityError
|
303
|
-
|
303
|
+
}.must_warn "obj does not have a :read_length parameter - returning empty string"
|
304
304
|
end
|
305
305
|
|
306
306
|
it "warns if has :value but no :read_length" do
|
307
307
|
obj = BinData::String.new(value: "ABC")
|
308
|
-
|
308
|
+
_ {
|
309
309
|
obj.read("abcde")
|
310
|
-
|
310
|
+
}.must_warn "obj does not have a :read_length parameter - returning empty string"
|
311
311
|
end
|
312
312
|
end
|
data/test/stringz_test.rb
CHANGED
@@ -76,6 +76,14 @@ end
|
|
76
76
|
describe BinData::Stringz, "with max_length" do
|
77
77
|
let(:obj) { BinData::Stringz.new(max_length: 5) }
|
78
78
|
|
79
|
+
it "fails if max_length is less that 1" do
|
80
|
+
obj = BinData::Stringz.new(max_length: 0)
|
81
|
+
|
82
|
+
_{ obj.read "abc\0" }.must_raise ArgumentError
|
83
|
+
_{ obj.to_binary_s }.must_raise ArgumentError
|
84
|
+
_{ obj.num_bytes }.must_raise ArgumentError
|
85
|
+
end
|
86
|
+
|
79
87
|
it "reads less than max_length" do
|
80
88
|
io = StringIO.new("abc\0xyz")
|
81
89
|
obj.read(io)
|
data/test/struct_test.rb
CHANGED
@@ -45,24 +45,65 @@ describe BinData::Struct, "with anonymous fields" do
|
|
45
45
|
params = { fields: [
|
46
46
|
[:int8, :a, {initial_value: 5}],
|
47
47
|
[:int8, nil],
|
48
|
-
[:int8, '', {value: :a}]
|
48
|
+
[:int8, '', {value: :a}],
|
49
|
+
[:int8, :b]
|
49
50
|
] }
|
50
51
|
BinData::Struct.new(params)
|
51
52
|
}
|
52
53
|
|
53
54
|
it "only shows non anonymous fields" do
|
54
|
-
_(obj.field_names).must_equal [:a]
|
55
|
+
_(obj.field_names).must_equal [:a, :b]
|
55
56
|
end
|
56
57
|
|
57
58
|
it "does not include anonymous fields in snapshot" do
|
58
|
-
obj.a =
|
59
|
-
_(obj.snapshot).must_equal({a:
|
59
|
+
obj.a = 6
|
60
|
+
_(obj.snapshot).must_equal({a: 6, b: 0})
|
60
61
|
end
|
61
62
|
|
62
63
|
it "writes anonymous fields" do
|
63
|
-
obj.read("\001\002\003")
|
64
|
+
obj.read("\001\002\003\004")
|
64
65
|
obj.a.clear
|
65
|
-
_(obj.to_binary_s).must_equal_binary "\005\002\005"
|
66
|
+
_(obj.to_binary_s).must_equal_binary "\005\002\005\004"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "does not include anonymous fields in each_pair" do
|
70
|
+
_(obj.each_pair.count).must_equal 2
|
71
|
+
end
|
72
|
+
|
73
|
+
it "includes anonymous fields in each_pair when specified" do
|
74
|
+
_(obj.each_pair(true).count).must_equal 4
|
75
|
+
end
|
76
|
+
|
77
|
+
it "clears" do
|
78
|
+
obj.b = 3
|
79
|
+
refute obj.clear?
|
80
|
+
|
81
|
+
obj.clear
|
82
|
+
assert obj.clear?
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe BinData::Struct, "with onlyif fields" do
|
87
|
+
let(:obj) {
|
88
|
+
params = { fields: [
|
89
|
+
[:int8, :a, {initial_value: 2}],
|
90
|
+
[:int8, :b, {onlyif: -> { a.odd? }}]
|
91
|
+
] }
|
92
|
+
BinData::Struct.new(params)
|
93
|
+
}
|
94
|
+
|
95
|
+
it "#fieldnames includes all fields" do
|
96
|
+
_(obj.field_names).must_equal [:a, :b]
|
97
|
+
end
|
98
|
+
|
99
|
+
it "#snapshot checks for onlyif" do
|
100
|
+
_(obj.snapshot.keys).must_equal [:a]
|
101
|
+
end
|
102
|
+
|
103
|
+
it "includes fields when required" do
|
104
|
+
refute obj.b?
|
105
|
+
obj.a = 3
|
106
|
+
assert obj.b?
|
66
107
|
end
|
67
108
|
end
|
68
109
|
|
@@ -140,10 +181,16 @@ describe BinData::Struct, "with multiple fields" do
|
|
140
181
|
_(obj[:a]).must_equal 1
|
141
182
|
end
|
142
183
|
|
143
|
-
it "handles
|
184
|
+
it "handles nonexistent elements" do
|
144
185
|
_(obj[:does_not_exist]).must_be_nil
|
145
186
|
end
|
146
187
|
|
188
|
+
it "ignores setting nonexistent elements" do
|
189
|
+
snap = obj.snapshot
|
190
|
+
obj[:does_not_exist] = 3
|
191
|
+
_(obj.snapshot).must_equal snap
|
192
|
+
end
|
193
|
+
|
147
194
|
it "writes elements dynamically" do
|
148
195
|
obj[:a] = 2
|
149
196
|
_(obj.a).must_equal 2
|
@@ -225,6 +272,20 @@ describe BinData::Struct, "with multiple fields" do
|
|
225
272
|
obj.snapshot.each_pair { |k, v| keys << k }
|
226
273
|
_(keys).must_equal [:a, :b]
|
227
274
|
end
|
275
|
+
|
276
|
+
it "accesses field" do
|
277
|
+
_(obj.snapshot[:a]).must_equal 1
|
278
|
+
end
|
279
|
+
|
280
|
+
it "fails on unknown method call" do
|
281
|
+
_ { obj.snapshot.does_not_exist }.must_raise NoMethodError
|
282
|
+
end
|
283
|
+
|
284
|
+
it "will not set attribute with nil value" do
|
285
|
+
refute obj.snapshot.key?(:foo)
|
286
|
+
obj.snapshot[:foo] = nil
|
287
|
+
refute obj.snapshot.key?(:foo)
|
288
|
+
end
|
228
289
|
end
|
229
290
|
end
|
230
291
|
|
@@ -402,30 +463,44 @@ describe BinData::Struct, "with byte_align" do
|
|
402
463
|
let(:obj) {
|
403
464
|
params = { fields: [[:int8, :a],
|
404
465
|
[:int8, :b, byte_align: 5],
|
405
|
-
[:bit2, :c],
|
466
|
+
[:bit2, :c, onlyif: -> { a == 1}],
|
406
467
|
[:int8, :d, byte_align: 3]] }
|
407
468
|
BinData::Struct.new(params)
|
408
469
|
}
|
409
470
|
|
410
471
|
it "has #num_bytes" do
|
472
|
+
_(obj.num_bytes).must_equal 7
|
473
|
+
end
|
474
|
+
|
475
|
+
it "has #num_bytes with onlyif" do
|
476
|
+
obj.a = 1
|
411
477
|
_(obj.num_bytes).must_equal 10
|
412
478
|
end
|
413
479
|
|
414
|
-
it "reads" do
|
480
|
+
it "reads with onlyif" do
|
415
481
|
obj.read("\x01\x00\x00\x00\x00\x02\xc0\x00\x00\x04")
|
416
482
|
_(obj.snapshot).must_equal({ a: 1, b: 2, c: 3, d: 4 })
|
417
483
|
end
|
418
484
|
|
419
|
-
it "
|
485
|
+
it "reads without onlyif" do
|
486
|
+
obj.read("\x00\x00\x00\x00\x00\x02\x04")
|
487
|
+
_(obj.snapshot).must_equal({ a: 0, b: 2, d: 4 })
|
488
|
+
end
|
489
|
+
|
490
|
+
it "writes with onlyif" do
|
420
491
|
obj.assign(a: 1, b: 2, c: 3, d: 4)
|
421
492
|
_(obj.to_binary_s).must_equal_binary "\x01\x00\x00\x00\x00\x02\xc0\x00\x00\x04"
|
422
493
|
end
|
423
494
|
|
495
|
+
it "writes without onlyif" do
|
496
|
+
obj.assign(a: 0, b: 2, c: 3, d: 4)
|
497
|
+
_(obj.to_binary_s).must_equal_binary "\x00\x00\x00\x00\x00\x02\x04"
|
498
|
+
end
|
499
|
+
|
424
500
|
it "has correct offsets" do
|
425
501
|
_(obj.a.rel_offset).must_equal 0
|
426
502
|
_(obj.b.rel_offset).must_equal 5
|
427
|
-
_(obj.
|
428
|
-
_(obj.d.rel_offset).must_equal 9
|
503
|
+
_(obj.d.rel_offset).must_equal 6
|
429
504
|
end
|
430
505
|
end
|
431
506
|
|
data/test/system_test.rb
CHANGED
@@ -229,6 +229,19 @@ describe "Tracing" do
|
|
229
229
|
|
230
230
|
_(io.value).must_equal "obj => \"000000000011111111112222222222...\n"
|
231
231
|
end
|
232
|
+
|
233
|
+
it "can be nested" do
|
234
|
+
obj = BinData::String.new(read_length: 5)
|
235
|
+
|
236
|
+
io = StringIO.new
|
237
|
+
BinData::trace_reading(io) {
|
238
|
+
BinData::trace_reading(io) {
|
239
|
+
obj.read("12345")
|
240
|
+
}
|
241
|
+
}
|
242
|
+
|
243
|
+
_(io.value).must_equal "obj => \"12345\"\n"
|
244
|
+
end
|
232
245
|
end
|
233
246
|
|
234
247
|
describe "Forward referencing with Primitive" do
|
@@ -381,7 +394,7 @@ describe BinData::Record, "encoding" do
|
|
381
394
|
end
|
382
395
|
|
383
396
|
it "returns binary encoded data despite Encoding.default_internal" do
|
384
|
-
w, $-w = $-w,
|
397
|
+
w, $-w = $-w, nil
|
385
398
|
before_enc = Encoding.default_internal
|
386
399
|
|
387
400
|
begin
|
@@ -394,3 +407,108 @@ describe BinData::Record, "encoding" do
|
|
394
407
|
end
|
395
408
|
end
|
396
409
|
end
|
410
|
+
|
411
|
+
describe BinData::Record, "buffer num_bytes" do
|
412
|
+
class BufferNumBytesRecord < BinData::Record
|
413
|
+
buffer :b, length: 10 do
|
414
|
+
int8 :a
|
415
|
+
count_bytes_remaining :nbytes
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
it "counts bytes remaining in the buffer" do
|
420
|
+
obj = BufferNumBytesRecord.read "12345678901234567890"
|
421
|
+
_(obj.b.nbytes).must_equal 9
|
422
|
+
end
|
423
|
+
|
424
|
+
it "counts bytes remaining in the buffer with short streams" do
|
425
|
+
obj = BufferNumBytesRecord.read "12345"
|
426
|
+
_(obj.b.nbytes).must_equal 4
|
427
|
+
end
|
428
|
+
|
429
|
+
it "assumes buffer is full with non-seekable short streams" do
|
430
|
+
rd, wr = IO::pipe
|
431
|
+
io = BinData::IO::Read.new(rd)
|
432
|
+
wr.write "12345"
|
433
|
+
wr.close
|
434
|
+
|
435
|
+
obj = BufferNumBytesRecord.read(io)
|
436
|
+
_(obj.b.nbytes).must_equal 9
|
437
|
+
rd.close
|
438
|
+
end
|
439
|
+
end
|
440
|
+
|
441
|
+
describe BinData::Buffer, "with seek_abs" do
|
442
|
+
class BufferSkipRecord < BinData::Record
|
443
|
+
endian :little
|
444
|
+
mandatory_parameter :seek_offset
|
445
|
+
|
446
|
+
uint8
|
447
|
+
buffer :buf, length: 5 do
|
448
|
+
uint8
|
449
|
+
uint8
|
450
|
+
skip to_abs_offset: :seek_offset
|
451
|
+
uint8 :a
|
452
|
+
end
|
453
|
+
uint8
|
454
|
+
end
|
455
|
+
|
456
|
+
let(:str) { "\001\002\003\004\005\006\007" }
|
457
|
+
|
458
|
+
## TODO: enable this if we decide to allow backwards seeking
|
459
|
+
#backwards_seeking = false
|
460
|
+
#
|
461
|
+
#it "won't seek backwards before buffer" do
|
462
|
+
# skip unless backwards_seeking
|
463
|
+
# _ { BufferSkipRecord.new(seek_offset: 0).read(str) }.must_raise(IOError)
|
464
|
+
#end
|
465
|
+
#
|
466
|
+
#it "seeks backwards to start of buffer" do
|
467
|
+
# skip unless backwards_seeking
|
468
|
+
# obj = BufferSkipRecord.new(seek_offset: 1).read(str)
|
469
|
+
# _(obj.buf.a).must_equal 2
|
470
|
+
#end
|
471
|
+
#
|
472
|
+
#it "seeks backwards inside buffer" do
|
473
|
+
# skip unless backwards_seeking
|
474
|
+
# obj = BufferSkipRecord.new(seek_offset: 2).read(str)
|
475
|
+
# _(obj.buf.a).must_equal 3
|
476
|
+
#end
|
477
|
+
|
478
|
+
it "seeks forwards inside buffer" do
|
479
|
+
obj = BufferSkipRecord.new(seek_offset: 4).read(str)
|
480
|
+
_(obj.buf.a).must_equal 5
|
481
|
+
end
|
482
|
+
|
483
|
+
it "seeks to end of buffer" do
|
484
|
+
obj = BufferSkipRecord.new(seek_offset: 5).read(str)
|
485
|
+
_(obj.buf.a).must_equal 6
|
486
|
+
end
|
487
|
+
|
488
|
+
it "won't seek after buffer" do
|
489
|
+
_ { BufferSkipRecord.new(seek_offset: 6).read(str) }.must_raise(IOError)
|
490
|
+
end
|
491
|
+
end
|
492
|
+
|
493
|
+
|
494
|
+
describe BinData::Record, "buffered readahead" do
|
495
|
+
class BufferedReadaheadRecord < BinData::Record
|
496
|
+
buffer :a, length: 5 do
|
497
|
+
skip do
|
498
|
+
string read_length: 1, assert: "X"
|
499
|
+
end
|
500
|
+
string :b, read_length: 1
|
501
|
+
end
|
502
|
+
string :c, read_length: 1
|
503
|
+
end
|
504
|
+
|
505
|
+
it "reads ahead inside the buffer" do
|
506
|
+
obj = BufferedReadaheadRecord.read "12X4567890"
|
507
|
+
_(obj.a.b).must_equal "X"
|
508
|
+
_(obj.c).must_equal "6"
|
509
|
+
end
|
510
|
+
|
511
|
+
it "doesn't readahead outside the buffer" do
|
512
|
+
_ { BufferedReadaheadRecord.read "123456X890" }.must_raise IOError
|
513
|
+
end
|
514
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
|
3
|
-
require '
|
4
|
-
|
3
|
+
require 'simplecov'
|
4
|
+
SimpleCov.start do
|
5
|
+
enable_coverage :branch
|
6
|
+
end
|
5
7
|
|
6
8
|
require 'minitest/autorun'
|
7
9
|
require 'stringio'
|
@@ -30,32 +32,41 @@ module Kernel
|
|
30
32
|
def value_read_from_written
|
31
33
|
self.class.read(self.to_binary_s)
|
32
34
|
end
|
35
|
+
end
|
33
36
|
|
34
|
-
|
35
|
-
|
37
|
+
module Minitest::Assertions
|
38
|
+
def assert_equals_binary(expected, actual)
|
39
|
+
assert_equal expected.dup.force_encoding(Encoding::BINARY), actual
|
36
40
|
end
|
37
41
|
|
38
|
-
def
|
39
|
-
ex =
|
40
|
-
(ex.message)
|
42
|
+
def assert_raises_on_line(exp, line, msg = nil, &block)
|
43
|
+
ex = assert_raises(exp, &block)
|
44
|
+
assert_equal(msg, ex.message) if msg
|
41
45
|
|
42
|
-
idx = ex.backtrace.find_index { |bt| /:in `
|
46
|
+
idx = ex.backtrace.find_index { |bt| /:in `assert_raises_on_line'$/ =~ bt }
|
43
47
|
|
44
48
|
line_num_regex = /.*:(\d+)(:.*|$)/
|
45
49
|
err_line = line_num_regex.match(ex.backtrace[0])[1].to_i
|
46
|
-
ref_line = line_num_regex.match(ex.backtrace[idx +
|
50
|
+
ref_line = line_num_regex.match(ex.backtrace[idx + 2])[1].to_i
|
47
51
|
|
48
|
-
(err_line - ref_line)
|
52
|
+
assert_equal((err_line - ref_line), line)
|
49
53
|
end
|
50
54
|
|
51
|
-
def
|
55
|
+
def assert_warns(msg, &block)
|
52
56
|
result = ""
|
53
57
|
callable = proc { |str|
|
54
58
|
result = str
|
55
59
|
}
|
56
|
-
|
60
|
+
Kernel.stub(:warn, callable) do
|
57
61
|
block.call
|
58
62
|
end
|
59
|
-
|
63
|
+
|
64
|
+
assert_equal msg, result
|
60
65
|
end
|
61
66
|
end
|
67
|
+
|
68
|
+
module Minitest::Expectations
|
69
|
+
infect_an_assertion :assert_equals_binary, :must_equal_binary
|
70
|
+
infect_an_assertion :assert_raises_on_line, :must_raise_on_line, :block
|
71
|
+
infect_an_assertion :assert_warns, :must_warn, :block
|
72
|
+
end
|
data/test/warnings_test.rb
CHANGED
@@ -15,6 +15,18 @@ describe BinData::Base, "when defining" do
|
|
15
15
|
}.must_raise RuntimeError
|
16
16
|
end
|
17
17
|
|
18
|
+
it "fails if #initialize is overridden on BasePrimitive" do
|
19
|
+
class BasePrimitiveWithInitialize < BinData::String
|
20
|
+
def initialize(params = {}, parent = nil)
|
21
|
+
super
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
_ {
|
26
|
+
BasePrimitiveWithInitialize.new
|
27
|
+
}.must_raise RuntimeError
|
28
|
+
end
|
29
|
+
|
18
30
|
it "handles if #initialize is naively renamed to #initialize_instance" do
|
19
31
|
class BaseWithInitializeInstance < BinData::Base
|
20
32
|
def initialize_instance(params = {}, parent = nil)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bindata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dion Mendel
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 1980-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -31,9 +31,6 @@ dependencies:
|
|
31
31
|
- - ">"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 5.0.0
|
34
|
-
- - "<"
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 5.12.0
|
37
34
|
type: :development
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -41,11 +38,8 @@ dependencies:
|
|
41
38
|
- - ">"
|
42
39
|
- !ruby/object:Gem::Version
|
43
40
|
version: 5.0.0
|
44
|
-
- - "<"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 5.12.0
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
42
|
+
name: simplecov
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - ">="
|
@@ -71,13 +65,9 @@ extensions: []
|
|
71
65
|
extra_rdoc_files:
|
72
66
|
- NEWS.rdoc
|
73
67
|
files:
|
74
|
-
- ".gitignore"
|
75
|
-
- ".travis.yml"
|
76
|
-
- BSDL
|
77
|
-
- COPYING
|
78
68
|
- ChangeLog.rdoc
|
79
69
|
- Gemfile
|
80
|
-
-
|
70
|
+
- LICENSE
|
81
71
|
- NEWS.rdoc
|
82
72
|
- README.md
|
83
73
|
- Rakefile
|
@@ -105,18 +95,25 @@ files:
|
|
105
95
|
- lib/bindata/io.rb
|
106
96
|
- lib/bindata/lazy.rb
|
107
97
|
- lib/bindata/name.rb
|
108
|
-
- lib/bindata/offset.rb
|
109
98
|
- lib/bindata/params.rb
|
110
99
|
- lib/bindata/primitive.rb
|
111
100
|
- lib/bindata/record.rb
|
112
101
|
- lib/bindata/registry.rb
|
113
102
|
- lib/bindata/rest.rb
|
114
103
|
- lib/bindata/sanitize.rb
|
104
|
+
- lib/bindata/section.rb
|
115
105
|
- lib/bindata/skip.rb
|
116
106
|
- lib/bindata/string.rb
|
117
107
|
- lib/bindata/stringz.rb
|
118
108
|
- lib/bindata/struct.rb
|
119
109
|
- lib/bindata/trace.rb
|
110
|
+
- lib/bindata/transform/brotli.rb
|
111
|
+
- lib/bindata/transform/lz4.rb
|
112
|
+
- lib/bindata/transform/lzma.rb
|
113
|
+
- lib/bindata/transform/xor.rb
|
114
|
+
- lib/bindata/transform/xz.rb
|
115
|
+
- lib/bindata/transform/zlib.rb
|
116
|
+
- lib/bindata/transform/zstd.rb
|
120
117
|
- lib/bindata/uint8_array.rb
|
121
118
|
- lib/bindata/version.rb
|
122
119
|
- lib/bindata/virtual.rb
|
@@ -134,12 +131,12 @@ files:
|
|
134
131
|
- test/int_test.rb
|
135
132
|
- test/io_test.rb
|
136
133
|
- test/lazy_test.rb
|
137
|
-
- test/offset_test.rb
|
138
134
|
- test/params_test.rb
|
139
135
|
- test/primitive_test.rb
|
140
136
|
- test/record_test.rb
|
141
137
|
- test/registry_test.rb
|
142
138
|
- test/rest_test.rb
|
139
|
+
- test/section_test.rb
|
143
140
|
- test/skip_test.rb
|
144
141
|
- test/string_test.rb
|
145
142
|
- test/stringz_test.rb
|
@@ -151,9 +148,9 @@ files:
|
|
151
148
|
- test/warnings_test.rb
|
152
149
|
homepage: https://github.com/dmendel/bindata
|
153
150
|
licenses:
|
154
|
-
-
|
151
|
+
- BSD-2-Clause
|
155
152
|
metadata: {}
|
156
|
-
post_install_message:
|
153
|
+
post_install_message:
|
157
154
|
rdoc_options:
|
158
155
|
- "--main"
|
159
156
|
- NEWS.rdoc
|
@@ -163,15 +160,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
160
|
requirements:
|
164
161
|
- - ">="
|
165
162
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
163
|
+
version: 2.5.0
|
167
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
165
|
requirements:
|
169
166
|
- - ">="
|
170
167
|
- !ruby/object:Gem::Version
|
171
168
|
version: '0'
|
172
169
|
requirements: []
|
173
|
-
rubygems_version: 3.
|
174
|
-
signing_key:
|
170
|
+
rubygems_version: 3.4.22
|
171
|
+
signing_key:
|
175
172
|
specification_version: 4
|
176
173
|
summary: A declarative way to read and write binary file formats
|
177
174
|
test_files: []
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/BSDL
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
Copyright (C) 2007-2012 Dion Mendel. All rights reserved.
|
2
|
-
|
3
|
-
Redistribution and use in source and binary forms, with or without
|
4
|
-
modification, are permitted provided that the following conditions
|
5
|
-
are met:
|
6
|
-
1. Redistributions of source code must retain the above copyright
|
7
|
-
notice, this list of conditions and the following disclaimer.
|
8
|
-
2. Redistributions in binary form must reproduce the above copyright
|
9
|
-
notice, this list of conditions and the following disclaimer in the
|
10
|
-
documentation and/or other materials provided with the distribution.
|
11
|
-
|
12
|
-
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
13
|
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
14
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
15
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
16
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
17
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
18
|
-
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
19
|
-
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
20
|
-
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
21
|
-
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
22
|
-
SUCH DAMAGE.
|
data/COPYING
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
BinData is copyrighted free software by Dion Mendel <bindata@dm9.info>.
|
2
|
-
You can redistribute it and/or modify it under either the terms of the
|
3
|
-
2-clause BSDL (see the file BSDL), or the conditions below:
|
4
|
-
|
5
|
-
1. You may make and give away verbatim copies of the source form of the
|
6
|
-
software without restriction, provided that you duplicate all of the
|
7
|
-
original copyright notices and associated disclaimers.
|
8
|
-
|
9
|
-
2. You may modify your copy of the software in any way, provided that
|
10
|
-
you do at least ONE of the following:
|
11
|
-
|
12
|
-
a) place your modifications in the Public Domain or otherwise
|
13
|
-
make them Freely Available, such as by posting said
|
14
|
-
modifications to Usenet or an equivalent medium, or by allowing
|
15
|
-
the author to include your modifications in the software.
|
16
|
-
|
17
|
-
b) use the modified software only within your corporation or
|
18
|
-
organization.
|
19
|
-
|
20
|
-
c) give non-standard binaries non-standard names, with
|
21
|
-
instructions on where to get the original software distribution.
|
22
|
-
|
23
|
-
d) make other distribution arrangements with the author.
|
24
|
-
|
25
|
-
3. You may distribute the software in object code or binary form,
|
26
|
-
provided that you do at least ONE of the following:
|
27
|
-
|
28
|
-
a) distribute the binaries and library files of the software,
|
29
|
-
together with instructions (in the manual page or equivalent)
|
30
|
-
on where to get the original distribution.
|
31
|
-
|
32
|
-
b) accompany the distribution with the machine-readable source of
|
33
|
-
the software.
|
34
|
-
|
35
|
-
c) give non-standard binaries non-standard names, with
|
36
|
-
instructions on where to get the original software distribution.
|
37
|
-
|
38
|
-
d) make other distribution arrangements with the author.
|
39
|
-
|
40
|
-
4. You may modify and include the part of the software into any other
|
41
|
-
software (possibly commercial).
|
42
|
-
|
43
|
-
5. The scripts and library files supplied as input to or produced as
|
44
|
-
output from the software do not automatically fall under the
|
45
|
-
copyright of the software, but belong to whomever generated them,
|
46
|
-
and may be sold commercially, and may be aggregated with this
|
47
|
-
software.
|
48
|
-
|
49
|
-
6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
50
|
-
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
51
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
52
|
-
PURPOSE.
|
data/INSTALL
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
This package is designed to be installed with rubygems.
|
2
|
-
|
3
|
-
$ gem install bindata
|
4
|
-
|
5
|
-
If you are using ruby 1.8
|
6
|
-
|
7
|
-
$ gem install bindata -v '~> 1.8.0'
|
8
|
-
|
9
|
-
If you are not using rubygems, you may like to install BinData with
|
10
|
-
Minero Aoki's setup.rb found at:
|
11
|
-
|
12
|
-
https://github.com/rubyworks/setup
|