depix 1.1.6 → 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.
- data/.gemtest +0 -0
- data/{DPX_HEADER_STRUCTURE.txt → DPX_HEADER_STRUCTURE.rdoc} +0 -0
- data/History.txt +5 -0
- data/Manifest.txt +6 -4
- data/{README.txt → README.rdoc} +3 -3
- data/Rakefile +4 -1
- data/lib/depix.rb +12 -73
- data/lib/depix/binary/descriptor.rb +56 -0
- data/lib/depix/binary/fields.rb +302 -0
- data/lib/depix/binary/structure.rb +239 -0
- data/lib/depix/compact_structs.rb +1 -1
- data/lib/depix/reader.rb +5 -4
- data/lib/depix/structs.rb +9 -12
- data/lib/depix/synthetics.rb +64 -0
- data/test/test_depix.rb +8 -11
- data/test/test_dict.rb +52 -52
- metadata +16 -48
- data/lib/depix/benchmark.rb +0 -15
- data/lib/depix/dict.rb +0 -531
data/test/test_dict.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/depix/dict'
|
2
1
|
require 'test/unit'
|
3
2
|
|
4
|
-
include Depix
|
3
|
+
include Depix::Binary
|
4
|
+
include Depix::Binary::Fields
|
5
5
|
|
6
6
|
class BogusError < RuntimeError; end
|
7
7
|
|
@@ -515,33 +515,33 @@ class TestFieldEmit < Test::Unit::TestCase
|
|
515
515
|
include FieldConformity
|
516
516
|
|
517
517
|
def test_emit_short
|
518
|
-
f =
|
518
|
+
f = U8Field.new
|
519
519
|
conform_field!(f)
|
520
520
|
|
521
|
-
f =
|
521
|
+
f = U8Field.new(:desc => "Dick length")
|
522
522
|
conform_field!(f)
|
523
523
|
assert_equal "c", f.pattern
|
524
524
|
assert_equal 1, f.length
|
525
525
|
end
|
526
526
|
|
527
527
|
def test_emit_double
|
528
|
-
f =
|
528
|
+
f = U16Field.new
|
529
529
|
conform_field!(f)
|
530
530
|
|
531
|
-
f =
|
531
|
+
f = U16Field.new(:desc => "Dick length")
|
532
532
|
conform_field!(f)
|
533
533
|
assert_equal "n", f.pattern
|
534
534
|
assert_equal 2, f.length
|
535
535
|
end
|
536
536
|
|
537
537
|
def test_emit_char
|
538
|
-
f =
|
538
|
+
f = CharField.new
|
539
539
|
conform_field!(f)
|
540
540
|
|
541
541
|
assert_equal "A1", f.pattern
|
542
542
|
assert_equal 1, f.length
|
543
|
-
|
544
|
-
f =
|
543
|
+
|
544
|
+
f = CharField.new :length => 3
|
545
545
|
conform_field!(f)
|
546
546
|
|
547
547
|
assert_equal "A3", f.pattern
|
@@ -549,7 +549,7 @@ class TestFieldEmit < Test::Unit::TestCase
|
|
549
549
|
end
|
550
550
|
|
551
551
|
def test_emit_float
|
552
|
-
f =
|
552
|
+
f = R32Field.new
|
553
553
|
conform_field!(f)
|
554
554
|
|
555
555
|
assert_equal "g", f.pattern
|
@@ -557,22 +557,22 @@ class TestFieldEmit < Test::Unit::TestCase
|
|
557
557
|
end
|
558
558
|
end
|
559
559
|
|
560
|
-
class
|
560
|
+
class TestStructure < Test::Unit::TestCase
|
561
561
|
|
562
562
|
def test_dict_has_a_fields_array
|
563
|
-
dict_class = Class.new(
|
563
|
+
dict_class = Class.new(Structure)
|
564
564
|
assert_respond_to dict_class, :fields
|
565
565
|
assert_equal [], dict_class.fields
|
566
566
|
end
|
567
567
|
|
568
568
|
def test_dict_responds_to_validate
|
569
|
-
dict_class = Class.new(
|
569
|
+
dict_class = Class.new(Structure)
|
570
570
|
assert_respond_to dict_class, :validate!
|
571
571
|
one = dict_class.new
|
572
572
|
end
|
573
573
|
|
574
574
|
def test_dict_fields_array_not_class_shared
|
575
|
-
d1, d2 = (0..1).map{|_| Class.new(
|
575
|
+
d1, d2 = (0..1).map{|_| Class.new(Structure) }
|
576
576
|
|
577
577
|
d1.fields << 1
|
578
578
|
d2.fields << 2
|
@@ -580,7 +580,7 @@ class TestDict < Test::Unit::TestCase
|
|
580
580
|
end
|
581
581
|
|
582
582
|
def test_dict_responds_to_emit_methods_from_fields
|
583
|
-
c = Class.new(
|
583
|
+
c = Class.new(Structure)
|
584
584
|
|
585
585
|
emitter_methods = Field.methods.grep(/^emit_/)
|
586
586
|
emitter_methods.each do | m |
|
@@ -589,16 +589,16 @@ class TestDict < Test::Unit::TestCase
|
|
589
589
|
end
|
590
590
|
|
591
591
|
def test_empty_dict_has_empty_template
|
592
|
-
c = Class.new(
|
592
|
+
c = Class.new(Structure)
|
593
593
|
assert_respond_to c, :pattern
|
594
594
|
assert_equal '', c.pattern
|
595
595
|
assert_equal 0, c.length
|
596
596
|
end
|
597
597
|
|
598
598
|
def test_dict_assembles_template
|
599
|
-
c = Class.new(
|
600
|
-
c.fields <<
|
601
|
-
c.fields <<
|
599
|
+
c = Class.new(Structure)
|
600
|
+
c.fields << CharField.new
|
601
|
+
c.fields << CharField.new
|
602
602
|
|
603
603
|
assert_respond_to c, :pattern
|
604
604
|
assert_equal 'A1A1', c.pattern
|
@@ -606,7 +606,7 @@ class TestDict < Test::Unit::TestCase
|
|
606
606
|
end
|
607
607
|
|
608
608
|
def test_dict_does_not_validate_inner_nil
|
609
|
-
wrapper_class = Class.new(
|
609
|
+
wrapper_class = Class.new(Structure) do
|
610
610
|
u32 :bigint
|
611
611
|
inner :invalid, AlwaysInvalidStruct
|
612
612
|
end
|
@@ -615,7 +615,7 @@ class TestDict < Test::Unit::TestCase
|
|
615
615
|
end
|
616
616
|
|
617
617
|
def test_dict_calls_validate
|
618
|
-
wrapper_class = Class.new(
|
618
|
+
wrapper_class = Class.new(Structure) do
|
619
619
|
u32 :bigint
|
620
620
|
inner :invalid, AlwaysInvalidStruct, :req => true
|
621
621
|
end
|
@@ -627,9 +627,9 @@ class TestDict < Test::Unit::TestCase
|
|
627
627
|
end
|
628
628
|
end
|
629
629
|
|
630
|
-
class
|
630
|
+
class TestStructureConsume < Test::Unit::TestCase
|
631
631
|
def test_dict_consume
|
632
|
-
c = Class.new(
|
632
|
+
c = Class.new(Structure)
|
633
633
|
c.char :foo
|
634
634
|
c.char :bar
|
635
635
|
|
@@ -644,13 +644,13 @@ class TestDictConsume < Test::Unit::TestCase
|
|
644
644
|
|
645
645
|
end
|
646
646
|
|
647
|
-
class
|
647
|
+
class TestStructureEmitDSL < Test::Unit::TestCase
|
648
648
|
|
649
649
|
def test_dict_emit_char
|
650
|
-
c = Class.new(
|
650
|
+
c = Class.new(Structure)
|
651
651
|
c.char :tag, :desc => "Some name"
|
652
|
-
|
653
|
-
|
652
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("tag"),
|
653
|
+
"Should create the tag accessor"
|
654
654
|
|
655
655
|
assert_equal 1, c.fields.length
|
656
656
|
field = c.fields[0]
|
@@ -661,10 +661,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
661
661
|
end
|
662
662
|
|
663
663
|
def test_dict_emit_char_with_length
|
664
|
-
c = Class.new(
|
664
|
+
c = Class.new(Structure)
|
665
665
|
c.char :joe, 3, :desc => "Some name"
|
666
666
|
|
667
|
-
assert c.instance_methods.include?("joe")
|
667
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("joe")
|
668
668
|
|
669
669
|
assert_equal 1, c.fields.length
|
670
670
|
field = c.fields[0]
|
@@ -674,10 +674,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
674
674
|
end
|
675
675
|
|
676
676
|
def test_dict_emit_u32
|
677
|
-
c = Class.new(
|
677
|
+
c = Class.new(Structure)
|
678
678
|
c.u32 :num, :desc => "Huge number"
|
679
679
|
|
680
|
-
assert c.instance_methods.include?("num")
|
680
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("num")
|
681
681
|
|
682
682
|
assert_equal 1, c.fields.length
|
683
683
|
field = c.fields[0]
|
@@ -687,10 +687,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
687
687
|
end
|
688
688
|
|
689
689
|
def test_dict_emit_r32
|
690
|
-
c = Class.new(
|
690
|
+
c = Class.new(Structure)
|
691
691
|
c.r32 :joe, :req => true
|
692
692
|
|
693
|
-
assert c.instance_methods.include?("joe")
|
693
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("joe")
|
694
694
|
|
695
695
|
assert_equal 1, c.fields.length
|
696
696
|
field = c.fields[0]
|
@@ -700,10 +700,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
700
700
|
end
|
701
701
|
|
702
702
|
def test_dict_emit_u8
|
703
|
-
c = Class.new(
|
703
|
+
c = Class.new(Structure)
|
704
704
|
c.u8 :joe, :req => true
|
705
705
|
|
706
|
-
assert c.instance_methods.include?("joe")
|
706
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("joe")
|
707
707
|
|
708
708
|
assert_equal 1, c.fields.length
|
709
709
|
|
@@ -714,10 +714,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
714
714
|
end
|
715
715
|
|
716
716
|
def test_dict_emit_u16
|
717
|
-
c = Class.new(
|
717
|
+
c = Class.new(Structure)
|
718
718
|
c.u16 :joe, :req => true, :desc => "A little bit of numbers"
|
719
719
|
|
720
|
-
assert c.instance_methods.include?("joe")
|
720
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("joe")
|
721
721
|
|
722
722
|
assert_equal 1, c.fields.length
|
723
723
|
|
@@ -729,10 +729,10 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
729
729
|
end
|
730
730
|
|
731
731
|
def test_dict_emit_array
|
732
|
-
c = Class.new(
|
732
|
+
c = Class.new(Structure)
|
733
733
|
c.array :point, :u32, :desc => "Two coordinates"
|
734
734
|
|
735
|
-
assert c.instance_methods.include?("point")
|
735
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("point")
|
736
736
|
|
737
737
|
assert_equal 1, c.fields.length
|
738
738
|
field = c.fields[0]
|
@@ -744,12 +744,12 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
744
744
|
end
|
745
745
|
|
746
746
|
def test_dict_emit_inner
|
747
|
-
c = Class.new(
|
748
|
-
c2 = Class.new(
|
747
|
+
c = Class.new(Structure)
|
748
|
+
c2 = Class.new(Structure)
|
749
749
|
|
750
750
|
c.inner :nest, c2, :desc => "Nested struct"
|
751
751
|
|
752
|
-
assert c.instance_methods.include?("nest")
|
752
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("nest")
|
753
753
|
|
754
754
|
assert_equal 1, c.fields.length
|
755
755
|
f = c.fields[0]
|
@@ -760,13 +760,13 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
760
760
|
end
|
761
761
|
|
762
762
|
def test_dict_emit_array_of_substructs
|
763
|
-
c = Class.new(
|
764
|
-
c2 = Class.new(
|
763
|
+
c = Class.new(Structure)
|
764
|
+
c2 = Class.new(Structure)
|
765
765
|
|
766
766
|
c2.u32 :some_num
|
767
767
|
c.array :inners, c2, 8, :desc => "Inner items"
|
768
768
|
|
769
|
-
assert c.instance_methods.include?("inners")
|
769
|
+
assert c.instance_methods.map{|e| e.to_s }.include?("inners")
|
770
770
|
|
771
771
|
assert_equal 1, c.fields.length
|
772
772
|
f = c.fields[0]
|
@@ -781,9 +781,9 @@ class TestDictEmitDSL < Test::Unit::TestCase
|
|
781
781
|
end
|
782
782
|
end
|
783
783
|
|
784
|
-
class
|
784
|
+
class TestStructureCompact < Test::Unit::TestCase
|
785
785
|
def test_only_with_interspersed_fields
|
786
|
-
c = Class.new(
|
786
|
+
c = Class.new(Structure) do
|
787
787
|
u8 :some
|
788
788
|
u8 :another
|
789
789
|
u8 :third
|
@@ -808,7 +808,7 @@ class TestDictCompact < Test::Unit::TestCase
|
|
808
808
|
end
|
809
809
|
|
810
810
|
def test_only_with_fields_in_a_row
|
811
|
-
c = Class.new(
|
811
|
+
c = Class.new(Structure) do
|
812
812
|
u8 :some
|
813
813
|
u32 :another
|
814
814
|
u8 :third
|
@@ -833,7 +833,7 @@ class TestDictCompact < Test::Unit::TestCase
|
|
833
833
|
end
|
834
834
|
|
835
835
|
def test_get_filler
|
836
|
-
c = Class.new(
|
836
|
+
c = Class.new(Structure) do
|
837
837
|
u32 :some
|
838
838
|
end
|
839
839
|
|
@@ -843,7 +843,7 @@ class TestDictCompact < Test::Unit::TestCase
|
|
843
843
|
end
|
844
844
|
|
845
845
|
def test_filler_parses_the_same
|
846
|
-
c = Class.new(
|
846
|
+
c = Class.new(Structure) do
|
847
847
|
u8 :first
|
848
848
|
u8 :second
|
849
849
|
u8 :third
|
@@ -865,9 +865,9 @@ class TestDictCompact < Test::Unit::TestCase
|
|
865
865
|
end
|
866
866
|
end
|
867
867
|
|
868
|
-
class
|
868
|
+
class TestStructureApply < Test::Unit::TestCase
|
869
869
|
def test_apply
|
870
|
-
struct = Class.new(
|
870
|
+
struct = Class.new(Structure) do
|
871
871
|
char :name, "julik".length
|
872
872
|
char :module, "depix".length
|
873
873
|
end
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: depix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 1
|
9
|
-
- 6
|
10
|
-
version: 1.1.6
|
4
|
+
prerelease:
|
5
|
+
version: 2.0.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Julik Tarkhanov
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
13
|
+
date: 2011-06-14 00:00:00 +02:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,44 +21,20 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
24
|
version: "0"
|
33
25
|
type: :runtime
|
34
26
|
version_requirements: *id001
|
35
27
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
28
|
+
name: hoe
|
37
29
|
prerelease: false
|
38
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
31
|
none: false
|
40
32
|
requirements:
|
41
33
|
- - ">="
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 2
|
46
|
-
- 0
|
47
|
-
- 4
|
48
|
-
version: 2.0.4
|
35
|
+
version: 2.9.4
|
49
36
|
type: :development
|
50
37
|
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: hoe
|
53
|
-
prerelease: false
|
54
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
|
-
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 21
|
60
|
-
segments:
|
61
|
-
- 2
|
62
|
-
- 6
|
63
|
-
- 1
|
64
|
-
version: 2.6.1
|
65
|
-
type: :development
|
66
|
-
version_requirements: *id003
|
67
38
|
description: Read and write DPX file metadata
|
68
39
|
email:
|
69
40
|
- me@julik.nl
|
@@ -72,26 +43,28 @@ executables:
|
|
72
43
|
extensions: []
|
73
44
|
|
74
45
|
extra_rdoc_files:
|
75
|
-
- DPX_HEADER_STRUCTURE.txt
|
76
46
|
- History.txt
|
77
47
|
- Manifest.txt
|
78
|
-
-
|
48
|
+
- DPX_HEADER_STRUCTURE.rdoc
|
49
|
+
- README.rdoc
|
79
50
|
files:
|
80
|
-
- DPX_HEADER_STRUCTURE.
|
51
|
+
- DPX_HEADER_STRUCTURE.rdoc
|
81
52
|
- History.txt
|
82
53
|
- Manifest.txt
|
83
|
-
- README.
|
54
|
+
- README.rdoc
|
84
55
|
- Rakefile
|
85
56
|
- bin/depix-describe
|
86
57
|
- lib/depix.rb
|
87
|
-
- lib/depix/
|
58
|
+
- lib/depix/binary/descriptor.rb
|
59
|
+
- lib/depix/binary/fields.rb
|
60
|
+
- lib/depix/binary/structure.rb
|
88
61
|
- lib/depix/compact_structs.rb
|
89
|
-
- lib/depix/dict.rb
|
90
62
|
- lib/depix/editor.rb
|
91
63
|
- lib/depix/enums.rb
|
92
64
|
- lib/depix/reader.rb
|
93
65
|
- lib/depix/struct_explainer.rb
|
94
66
|
- lib/depix/structs.rb
|
67
|
+
- lib/depix/synthetics.rb
|
95
68
|
- test/samples/026_FROM_HERO_TAPE_5-3-1_MOV.0029.dpx
|
96
69
|
- test/samples/E012_P001_L000002_lin.0001.dpx
|
97
70
|
- test/samples/E012_P001_L000002_lin.0002.dpx
|
@@ -103,6 +76,7 @@ files:
|
|
103
76
|
- test/samples/northlight_tc_mode_mismatch.dpx
|
104
77
|
- test/test_depix.rb
|
105
78
|
- test/test_dict.rb
|
79
|
+
- .gemtest
|
106
80
|
has_rdoc: true
|
107
81
|
homepage: http://guerilla-di.org/depix
|
108
82
|
licenses: []
|
@@ -110,7 +84,7 @@ licenses: []
|
|
110
84
|
post_install_message:
|
111
85
|
rdoc_options:
|
112
86
|
- --main
|
113
|
-
- README.
|
87
|
+
- README.rdoc
|
114
88
|
require_paths:
|
115
89
|
- lib
|
116
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -118,23 +92,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
92
|
requirements:
|
119
93
|
- - ">="
|
120
94
|
- !ruby/object:Gem::Version
|
121
|
-
hash: 3
|
122
|
-
segments:
|
123
|
-
- 0
|
124
95
|
version: "0"
|
125
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
97
|
none: false
|
127
98
|
requirements:
|
128
99
|
- - ">="
|
129
100
|
- !ruby/object:Gem::Version
|
130
|
-
hash: 3
|
131
|
-
segments:
|
132
|
-
- 0
|
133
101
|
version: "0"
|
134
102
|
requirements: []
|
135
103
|
|
136
104
|
rubyforge_project: guerilla-di
|
137
|
-
rubygems_version: 1.
|
105
|
+
rubygems_version: 1.6.2
|
138
106
|
signing_key:
|
139
107
|
specification_version: 3
|
140
108
|
summary: Read and write DPX file metadata
|