striuct 0.6.1 → 0.7.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 +4 -4
- data/MIT-LICENSE.txt +21 -0
- data/README.md +19 -39
- data/lib/striuct.rb +3 -3
- data/lib/striuct/classmethods/README.md +2 -2
- data/lib/striuct/classmethods/adjustment.rb +15 -13
- data/lib/striuct/classmethods/attributes.rb +94 -92
- data/lib/striuct/classmethods/conflict_management.rb +109 -106
- data/lib/striuct/classmethods/constructor.rb +47 -54
- data/lib/striuct/classmethods/copy.rb +45 -43
- data/lib/striuct/classmethods/default.rb +23 -21
- data/lib/striuct/classmethods/enum.rb +46 -44
- data/lib/striuct/classmethods/fix.rb +23 -21
- data/lib/striuct/classmethods/hashdeepdupulicatable.rb +15 -15
- data/lib/striuct/classmethods/inner.rb +57 -55
- data/lib/striuct/classmethods/length.rb +12 -10
- data/lib/striuct/classmethods/macro.rb +110 -106
- data/lib/striuct/classmethods/names.rb +69 -65
- data/lib/striuct/classmethods/predicate.rb +131 -129
- data/lib/striuct/classmethods/requirements.rb +3 -1
- data/lib/striuct/classmethods/to_struct.rb +21 -18
- data/lib/striuct/classmethods/validation.rb +15 -13
- data/lib/striuct/instancemethods/README.md +2 -2
- data/lib/striuct/instancemethods/assign.rb +29 -27
- data/lib/striuct/instancemethods/cast.rb +28 -26
- data/lib/striuct/instancemethods/compare.rb +26 -24
- data/lib/striuct/instancemethods/default.rb +31 -29
- data/lib/striuct/instancemethods/delegate_class_methods.rb +35 -33
- data/lib/striuct/instancemethods/enum.rb +86 -84
- data/lib/striuct/instancemethods/getter.rb +39 -37
- data/lib/striuct/instancemethods/hashy.rb +99 -97
- data/lib/striuct/instancemethods/keyvalidatable.rb +8 -6
- data/lib/striuct/instancemethods/lock.rb +46 -44
- data/lib/striuct/instancemethods/object.rb +50 -48
- data/lib/striuct/instancemethods/requirements.rb +11 -9
- data/lib/striuct/instancemethods/safety.rb +11 -9
- data/lib/striuct/instancemethods/setter.rb +46 -45
- data/lib/striuct/instancemethods/to_s.rb +39 -37
- data/lib/striuct/instancemethods/validation.rb +31 -29
- data/lib/striuct/instancemethods/values.rb +50 -48
- data/lib/striuct/requirements.rb +3 -1
- data/lib/striuct/singleton_class.rb +12 -17
- data/lib/striuct/structs.rb +3 -3
- metadata +33 -178
- data/.gitignore +0 -35
- data/.travis.yml +0 -17
- data/.yardopts +0 -1
- data/Gemfile +0 -11
- data/MIT-LICENSE +0 -22
- data/Rakefile +0 -11
- data/benchmark/basics.rb +0 -56
- data/example/README.rb +0 -50
- data/example/example1.rb +0 -195
- data/example/example2.rb +0 -20
- data/example/see_trace.rb +0 -32
- data/striuct.gemspec +0 -45
- data/test/helper.rb +0 -3
- data/test/test_sglc-constructor.rb +0 -36
- data/test/test_subc-c-add_members.rb +0 -13
- data/test/test_subc-c-close_member.rb +0 -36
- data/test/test_subc-c-constructor.rb +0 -92
- data/test/test_subc-c-copy.rb +0 -71
- data/test/test_subc-c-freeze.rb +0 -36
- data/test/test_subc-c-inheritable.rb +0 -58
- data/test/test_subc-c-safety_naming.rb +0 -73
- data/test/test_subc-f-alias_member.rb +0 -54
- data/test/test_subc-f-enum.rb +0 -159
- data/test/test_subc-f-predicate.rb +0 -647
- data/test/test_subc-f-to_struct.rb +0 -61
- data/test/test_subc-f-validation_util.rb +0 -59
- data/test/test_subc-f_debug.rb +0 -39
- data/test/test_subc-f_name.rb +0 -525
- data/test/test_subc-i-accessor.rb +0 -138
- data/test/test_subc-i-adjuster.rb +0 -95
- data/test/test_subc-i-assign.rb +0 -53
- data/test/test_subc-i-basic.rb +0 -43
- data/test/test_subc-i-cast.rb +0 -27
- data/test/test_subc-i-compare.rb +0 -52
- data/test/test_subc-i-copy.rb +0 -23
- data/test/test_subc-i-default_value.rb +0 -129
- data/test/test_subc-i-freeze.rb +0 -19
- data/test/test_subc-i-hashlike.rb +0 -144
- data/test/test_subc-i-keyvalidatable.rb +0 -25
- data/test/test_subc-i-lock.rb +0 -40
- data/test/test_subc-i-must.rb +0 -30
- data/test/test_subc-i-to_s_family.rb +0 -26
- data/test/test_subc-i-validation_specific_conditions.rb +0 -297
- data/test/test_subc-i-validation_with_getter.rb +0 -33
- data/test/test_version.rb +0 -13
@@ -1,61 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
TopLevelSthForTest_to_Struct = Striuct.define do
|
4
|
-
member :name, String
|
5
|
-
member :age, Integer
|
6
|
-
end
|
7
|
-
|
8
|
-
class Test_Striuct_Subclass_to_Struct < Test::Unit::TestCase
|
9
|
-
|
10
|
-
NestedSth = Striuct.define do
|
11
|
-
member :name, String
|
12
|
-
member :age, Integer
|
13
|
-
end
|
14
|
-
|
15
|
-
def teardown
|
16
|
-
constants = Striuct::Structs.constants
|
17
|
-
constants.each do |cons|
|
18
|
-
Striuct::Structs.__send__ :remove_const, cons
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
alias_method :setup, :teardown
|
23
|
-
|
24
|
-
def test_raise
|
25
|
-
assert_raises RuntimeError do
|
26
|
-
Striuct.new.new.to_struct
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_noname
|
31
|
-
assert_same 0, Striuct::Structs.constants.length
|
32
|
-
struct_cls = Striuct.new(:a, :b, :c).new.to_struct
|
33
|
-
assert_equal [:a, :b, :c], struct_cls.members
|
34
|
-
assert_same 0, Striuct::Structs.constants.length
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_to_nested_struct
|
38
|
-
assert_same 0, Striuct::Structs.constants.length
|
39
|
-
struct_cls = NestedSth.to_struct_class
|
40
|
-
assert_same Struct, struct_cls.superclass
|
41
|
-
assert_equal [:name, :age], struct_cls.members
|
42
|
-
assert_same 1, Striuct::Structs.constants.length
|
43
|
-
assert_equal 'Striuct::Structs::NestedSth', struct_cls.name
|
44
|
-
assert_same struct_cls, NestedSth.to_struct_class
|
45
|
-
assert_kind_of Struct, NestedSth.new.to_struct
|
46
|
-
assert_instance_of Striuct::Structs::NestedSth, NestedSth.new.to_struct
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_to_toplevel_struct
|
50
|
-
assert_same 0, Striuct::Structs.constants.length
|
51
|
-
struct_cls = TopLevelSthForTest_to_Struct.to_struct_class
|
52
|
-
assert_same Struct, struct_cls.superclass
|
53
|
-
assert_equal [:name, :age], struct_cls.members
|
54
|
-
assert_same 1, Striuct::Structs.constants.length
|
55
|
-
assert_equal 'Striuct::Structs::TopLevelSthForTest_to_Struct', struct_cls.name
|
56
|
-
assert_same struct_cls, TopLevelSthForTest_to_Struct.to_struct_class
|
57
|
-
assert_kind_of Struct, TopLevelSthForTest_to_Struct.new.to_struct
|
58
|
-
assert_instance_of Striuct::Structs::TopLevelSthForTest_to_Struct, TopLevelSthForTest_to_Struct.new.to_struct
|
59
|
-
end
|
60
|
-
|
61
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class Test_Striuct_Subclass_Validation_Util < Test::Unit::TestCase
|
4
|
-
|
5
|
-
ALWAYS_OCCUR_ERROR = ->_{raise Exception}
|
6
|
-
peep = nil
|
7
|
-
|
8
|
-
Foo = Striuct.define do
|
9
|
-
member :foo, nil
|
10
|
-
member :bar, ALWAYS_OCCUR_ERROR
|
11
|
-
member :hoge
|
12
|
-
peep = AND(String, /./)
|
13
|
-
member :some_str, peep
|
14
|
-
end
|
15
|
-
|
16
|
-
SOME_STR = peep
|
17
|
-
|
18
|
-
def test_predicate_restrict?
|
19
|
-
assert_same true, Foo.restrict?(:foo)
|
20
|
-
assert_same true, Foo.restrict?(:bar)
|
21
|
-
assert_same false, Foo.restrict?(:hoge)
|
22
|
-
assert_same true, Foo.new.restrict?(:foo)
|
23
|
-
assert_same true, Foo.new.restrict?(:bar)
|
24
|
-
assert_same false, Foo.new.restrict?(:hoge)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_predicate_with_condition?
|
28
|
-
assert_same true, Foo.with_condition?(:foo)
|
29
|
-
assert_same true, Foo.with_condition?(:bar)
|
30
|
-
assert_same false, Foo.with_condition?(:hoge)
|
31
|
-
assert_same true, Foo.new.with_condition?(:foo)
|
32
|
-
assert_same true, Foo.new.with_condition?(:bar)
|
33
|
-
assert_same false, Foo.new.with_condition?(:hoge)
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_predicate_instance_sufficient?
|
37
|
-
foo = Foo.new
|
38
|
-
assert_same true, foo.sufficient?(:foo)
|
39
|
-
assert_same false, foo.sufficient?(:bar)
|
40
|
-
assert_same true, foo.sufficient?(:hoge)
|
41
|
-
assert_same false, foo.sufficient?(:some_str)
|
42
|
-
foo.some_str = ':)'
|
43
|
-
assert_same true, foo.sufficient?(:some_str)
|
44
|
-
foo.some_str.clear
|
45
|
-
assert_same false, foo.sufficient?(:some_str)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_condition_for
|
49
|
-
foo = Foo.new
|
50
|
-
assert_same nil, foo.condition_for(:foo)
|
51
|
-
assert_same ALWAYS_OCCUR_ERROR, foo.condition_for(:bar)
|
52
|
-
assert_raises KeyError do
|
53
|
-
foo.condition_for(:hoge)
|
54
|
-
end
|
55
|
-
assert_same SOME_STR, foo.condition_for(:some_str)
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
end
|
data/test/test_subc-f_debug.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class Test_Striuct_Subclass_Debug < Test::Unit::TestCase
|
4
|
-
|
5
|
-
Subclass = Striuct.define do
|
6
|
-
member :foo
|
7
|
-
member :bar
|
8
|
-
alias_member :als_foo, :foo
|
9
|
-
end.freeze
|
10
|
-
|
11
|
-
INSTANCE = Subclass.new.freeze
|
12
|
-
|
13
|
-
TYPE_PAIRS = {
|
14
|
-
Class: Subclass,
|
15
|
-
Instance: INSTANCE
|
16
|
-
}.freeze
|
17
|
-
|
18
|
-
[:attributes].each do |callee|
|
19
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
20
|
-
define_method :"test_#{type}_#{callee}" do
|
21
|
-
assert_same true, reciever.public_methods.include?(callee)
|
22
|
-
ret = reciever.public_send(callee)
|
23
|
-
assert_instance_of Hash, ret
|
24
|
-
assert_equal [:autonyms, :aliases, :conflict_management_level, :attributes_each_autonym], ret.keys
|
25
|
-
assert_equal Subclass.autonyms, ret.fetch(:autonyms)
|
26
|
-
assert_equal Subclass.aliases, ret.fetch(:aliases)
|
27
|
-
assert_equal Subclass.conflict_management_level, ret.fetch(:conflict_management_level)
|
28
|
-
assert_equal Subclass.instance_variable_get(:@attributes), ret.fetch(:attributes_each_autonym)
|
29
|
-
|
30
|
-
10.times do
|
31
|
-
ret2 = reciever.public_send(callee)
|
32
|
-
assert_not_same ret, ret2
|
33
|
-
assert_equal ret, ret2
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
data/test/test_subc-f_name.rb
DELETED
@@ -1,525 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class Test_Striuct_Subclass_Name < Test::Unit::TestCase
|
4
|
-
|
5
|
-
# for peep
|
6
|
-
origin_autonyms = nil
|
7
|
-
origin_aliases = nil
|
8
|
-
|
9
|
-
Subclass = Striuct.define do
|
10
|
-
origin_autonyms = @autonyms
|
11
|
-
origin_aliases = @aliases
|
12
|
-
|
13
|
-
member :foo
|
14
|
-
member :bar
|
15
|
-
alias_member :als_foo, :foo
|
16
|
-
|
17
|
-
close_member
|
18
|
-
end.freeze
|
19
|
-
|
20
|
-
INSTANCE = Subclass.new.freeze
|
21
|
-
|
22
|
-
TYPE_PAIRS = {
|
23
|
-
Class: Subclass,
|
24
|
-
Instance: INSTANCE
|
25
|
-
}.freeze
|
26
|
-
|
27
|
-
[:_autonyms].each do |callee|
|
28
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
29
|
-
define_method :"test_#{type}_#{callee}" do
|
30
|
-
assert_equal true, reciever.private_methods.include?(callee)
|
31
|
-
|
32
|
-
assert_raises NoMethodError do
|
33
|
-
reciever.public_send(callee)
|
34
|
-
end
|
35
|
-
|
36
|
-
assert_same origin_autonyms, reciever.__send__(callee)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
[:autonyms, :members].each do |callee|
|
42
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
43
|
-
define_method :"test_#{type}_#{callee}" do
|
44
|
-
assert_same true, reciever.public_methods.include?(callee)
|
45
|
-
ret = reciever.public_send(callee)
|
46
|
-
assert_not_same origin_autonyms, ret
|
47
|
-
assert_equal origin_autonyms, ret
|
48
|
-
|
49
|
-
10.times do
|
50
|
-
ret2 = reciever.public_send(callee)
|
51
|
-
assert_not_same ret, ret2
|
52
|
-
assert_equal ret, ret2
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
[:all_members].each do |callee|
|
59
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
60
|
-
define_method :"test_#{type}_#{callee}" do
|
61
|
-
assert_same true, reciever.public_methods.include?(callee)
|
62
|
-
ret = reciever.public_send(callee)
|
63
|
-
assert_equal [*origin_autonyms, :als_foo], ret
|
64
|
-
|
65
|
-
10.times do
|
66
|
-
ret2 = reciever.public_send(callee)
|
67
|
-
assert_not_same ret, ret2
|
68
|
-
assert_equal ret, ret2
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
[:aliases].each do |callee|
|
75
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
76
|
-
define_method :"test_#{type}_#{callee}" do
|
77
|
-
assert_same true, reciever.public_methods.include?(callee)
|
78
|
-
ret = reciever.public_send(callee)
|
79
|
-
assert_not_same(origin_aliases, ret)
|
80
|
-
assert_equal({:als_foo => :foo}, ret)
|
81
|
-
|
82
|
-
10.times do
|
83
|
-
ret2 = reciever.public_send(callee)
|
84
|
-
assert_not_same(origin_aliases, ret2)
|
85
|
-
assert_not_same ret, ret2
|
86
|
-
assert_equal ret, ret2
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
[:autonym_for_alias].each do |callee|
|
93
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
94
|
-
define_method :"test_#{type}_#{callee}" do
|
95
|
-
assert_same true, reciever.public_methods.include?(callee)
|
96
|
-
|
97
|
-
assert_raises NoMethodError, TypeError do
|
98
|
-
reciever.public_send(callee, BasicObject.new)
|
99
|
-
end
|
100
|
-
|
101
|
-
assert_raises TypeError do
|
102
|
-
reciever.public_send(callee, Object.new)
|
103
|
-
end
|
104
|
-
|
105
|
-
assert_raises NameError do
|
106
|
-
reciever.public_send(callee, :foo)
|
107
|
-
end
|
108
|
-
|
109
|
-
assert_same :foo, reciever.public_send(callee, :als_foo)
|
110
|
-
|
111
|
-
|
112
|
-
assert_raises NameError do
|
113
|
-
reciever.public_send(callee, 'foo')
|
114
|
-
end
|
115
|
-
|
116
|
-
assert_same :foo, reciever.public_send(callee, 'als_foo')
|
117
|
-
|
118
|
-
assert_raises TypeError do
|
119
|
-
reciever.public_send(callee, 0)
|
120
|
-
end
|
121
|
-
|
122
|
-
assert_raises TypeError do
|
123
|
-
reciever.public_send(callee, 0.9)
|
124
|
-
end
|
125
|
-
|
126
|
-
assert_raises NameError do
|
127
|
-
reciever.public_send(callee, :bar)
|
128
|
-
end
|
129
|
-
|
130
|
-
assert_raises NameError do
|
131
|
-
reciever.public_send(callee, :als_bar)
|
132
|
-
end
|
133
|
-
|
134
|
-
assert_raises NameError do
|
135
|
-
reciever.public_send(callee, 'bar')
|
136
|
-
end
|
137
|
-
|
138
|
-
assert_raises NameError do
|
139
|
-
reciever.public_send(callee, 'als_bar')
|
140
|
-
end
|
141
|
-
|
142
|
-
assert_raises TypeError do
|
143
|
-
reciever.public_send(callee, 1)
|
144
|
-
end
|
145
|
-
|
146
|
-
assert_raises TypeError do
|
147
|
-
reciever.public_send(callee, 1.9)
|
148
|
-
end
|
149
|
-
|
150
|
-
assert_raises NameError do
|
151
|
-
reciever.public_send(callee, :none)
|
152
|
-
end
|
153
|
-
|
154
|
-
assert_raises NameError do
|
155
|
-
reciever.public_send(callee, :als_none)
|
156
|
-
end
|
157
|
-
|
158
|
-
assert_raises NameError do
|
159
|
-
reciever.public_send(callee, 'none')
|
160
|
-
end
|
161
|
-
|
162
|
-
assert_raises NameError do
|
163
|
-
reciever.public_send(callee, 'als_none')
|
164
|
-
end
|
165
|
-
|
166
|
-
assert_raises TypeError do
|
167
|
-
reciever.public_send(callee, 2)
|
168
|
-
end
|
169
|
-
|
170
|
-
assert_raises TypeError do
|
171
|
-
reciever.public_send(callee, 2.9)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
[:autonym_for_member].each do |callee|
|
178
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
179
|
-
define_method :"test_#{type}_#{callee}" do
|
180
|
-
assert_same true, reciever.public_methods.include?(callee)
|
181
|
-
|
182
|
-
assert_raises NoMethodError, TypeError do
|
183
|
-
reciever.public_send(callee, BasicObject.new)
|
184
|
-
end
|
185
|
-
|
186
|
-
assert_raises TypeError do
|
187
|
-
reciever.public_send(callee, Object.new)
|
188
|
-
end
|
189
|
-
|
190
|
-
assert_same :foo, reciever.public_send(callee, :foo)
|
191
|
-
assert_same :foo, reciever.public_send(callee, :als_foo)
|
192
|
-
assert_same :foo, reciever.public_send(callee, 'foo')
|
193
|
-
assert_same :foo, reciever.public_send(callee, 'als_foo')
|
194
|
-
|
195
|
-
assert_raises TypeError do
|
196
|
-
reciever.public_send(callee, 0)
|
197
|
-
end
|
198
|
-
|
199
|
-
assert_raises TypeError do
|
200
|
-
reciever.public_send(callee, 0.9)
|
201
|
-
end
|
202
|
-
|
203
|
-
assert_same :bar, reciever.public_send(callee, :bar)
|
204
|
-
|
205
|
-
assert_raises NameError do
|
206
|
-
reciever.public_send(callee, :als_bar)
|
207
|
-
end
|
208
|
-
|
209
|
-
assert_same :bar, reciever.public_send(callee, 'bar')
|
210
|
-
|
211
|
-
assert_raises NameError do
|
212
|
-
reciever.public_send(callee, 'als_bar')
|
213
|
-
end
|
214
|
-
|
215
|
-
assert_raises TypeError do
|
216
|
-
reciever.public_send(callee, 1)
|
217
|
-
end
|
218
|
-
|
219
|
-
assert_raises TypeError do
|
220
|
-
reciever.public_send(callee, 1.9)
|
221
|
-
end
|
222
|
-
|
223
|
-
assert_raises NameError do
|
224
|
-
reciever.public_send(callee, :none)
|
225
|
-
end
|
226
|
-
|
227
|
-
assert_raises NameError do
|
228
|
-
reciever.public_send(callee, :als_none)
|
229
|
-
end
|
230
|
-
|
231
|
-
assert_raises NameError do
|
232
|
-
reciever.public_send(callee, 'none')
|
233
|
-
end
|
234
|
-
|
235
|
-
assert_raises NameError do
|
236
|
-
reciever.public_send(callee, 'als_none')
|
237
|
-
end
|
238
|
-
|
239
|
-
assert_raises TypeError do
|
240
|
-
reciever.public_send(callee, 2)
|
241
|
-
end
|
242
|
-
|
243
|
-
assert_raises TypeError do
|
244
|
-
reciever.public_send(callee, 2.9)
|
245
|
-
end
|
246
|
-
end
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
|
251
|
-
[:autonym_for_index].each do |callee|
|
252
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
253
|
-
define_method :"test_#{type}_#{callee}" do
|
254
|
-
assert_same true, reciever.public_methods.include?(callee)
|
255
|
-
|
256
|
-
assert_raises NoMethodError, TypeError do
|
257
|
-
reciever.public_send(callee, BasicObject.new)
|
258
|
-
end
|
259
|
-
|
260
|
-
assert_raises TypeError do
|
261
|
-
reciever.public_send(callee, Object.new)
|
262
|
-
end
|
263
|
-
|
264
|
-
assert_raises TypeError do
|
265
|
-
reciever.public_send(callee, :foo)
|
266
|
-
end
|
267
|
-
|
268
|
-
assert_raises TypeError do
|
269
|
-
reciever.public_send(callee, :als_foo)
|
270
|
-
end
|
271
|
-
|
272
|
-
assert_raises TypeError do
|
273
|
-
reciever.public_send(callee, 'foo')
|
274
|
-
end
|
275
|
-
|
276
|
-
assert_raises TypeError do
|
277
|
-
reciever.public_send(callee, 'als_foo')
|
278
|
-
end
|
279
|
-
|
280
|
-
assert_same :foo, reciever.public_send(callee, 0)
|
281
|
-
assert_same :foo, reciever.public_send(callee, 0.9)
|
282
|
-
assert_same :foo, reciever.public_send(callee, -2)
|
283
|
-
assert_same :foo, reciever.public_send(callee, -2.9)
|
284
|
-
|
285
|
-
assert_raises TypeError do
|
286
|
-
reciever.public_send(callee, :bar)
|
287
|
-
end
|
288
|
-
|
289
|
-
assert_raises TypeError do
|
290
|
-
reciever.public_send(callee, :als_bar)
|
291
|
-
end
|
292
|
-
|
293
|
-
assert_raises TypeError do
|
294
|
-
reciever.public_send(callee, 'bar')
|
295
|
-
end
|
296
|
-
|
297
|
-
assert_raises TypeError do
|
298
|
-
reciever.public_send(callee, 'als_bar')
|
299
|
-
end
|
300
|
-
|
301
|
-
assert_same :bar, reciever.public_send(callee, 1)
|
302
|
-
assert_same :bar, reciever.public_send(callee, 1.9)
|
303
|
-
assert_same :bar, reciever.public_send(callee, -1)
|
304
|
-
assert_same :bar, reciever.public_send(callee, -1.9)
|
305
|
-
|
306
|
-
assert_raises TypeError do
|
307
|
-
reciever.public_send(callee, :none)
|
308
|
-
end
|
309
|
-
|
310
|
-
assert_raises TypeError do
|
311
|
-
reciever.public_send(callee, :als_none)
|
312
|
-
end
|
313
|
-
|
314
|
-
assert_raises TypeError do
|
315
|
-
reciever.public_send(callee, 'none')
|
316
|
-
end
|
317
|
-
|
318
|
-
assert_raises TypeError do
|
319
|
-
reciever.public_send(callee, 'als_none')
|
320
|
-
end
|
321
|
-
|
322
|
-
assert_raises IndexError do
|
323
|
-
reciever.public_send(callee, 2)
|
324
|
-
end
|
325
|
-
|
326
|
-
assert_raises IndexError do
|
327
|
-
reciever.public_send(callee, 2.9)
|
328
|
-
end
|
329
|
-
|
330
|
-
assert_raises IndexError do
|
331
|
-
reciever.public_send(callee, -3)
|
332
|
-
end
|
333
|
-
|
334
|
-
assert_raises IndexError do
|
335
|
-
reciever.public_send(callee, -3.9)
|
336
|
-
end
|
337
|
-
end
|
338
|
-
end
|
339
|
-
end
|
340
|
-
|
341
|
-
[:autonym_for_key].each do |callee|
|
342
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
343
|
-
define_method :"test_#{type}_#{callee}" do
|
344
|
-
assert_same true, reciever.public_methods.include?(callee)
|
345
|
-
|
346
|
-
assert_raises KeyError do
|
347
|
-
reciever.public_send(callee, BasicObject.new)
|
348
|
-
end
|
349
|
-
|
350
|
-
assert_raises KeyError do
|
351
|
-
reciever.public_send(callee, Object.new)
|
352
|
-
end
|
353
|
-
|
354
|
-
assert_same :foo, reciever.public_send(callee, :foo)
|
355
|
-
assert_same :foo, reciever.public_send(callee, :als_foo)
|
356
|
-
assert_same :foo, reciever.public_send(callee, 'foo')
|
357
|
-
assert_same :foo, reciever.public_send(callee, 'als_foo')
|
358
|
-
assert_same :foo, reciever.public_send(callee, 0)
|
359
|
-
assert_same :foo, reciever.public_send(callee, 0.9)
|
360
|
-
assert_same :foo, reciever.public_send(callee, -2)
|
361
|
-
assert_same :foo, reciever.public_send(callee, -2.9)
|
362
|
-
|
363
|
-
assert_same :bar, reciever.public_send(callee, :bar)
|
364
|
-
|
365
|
-
assert_raises KeyError do
|
366
|
-
assert_same :bar, reciever.public_send(callee, :als_bar)
|
367
|
-
end
|
368
|
-
|
369
|
-
assert_same :bar, reciever.public_send(callee, 'bar')
|
370
|
-
|
371
|
-
assert_raises KeyError do
|
372
|
-
assert_same :bar, reciever.public_send(callee, 'als_bar')
|
373
|
-
end
|
374
|
-
|
375
|
-
assert_same :bar, reciever.public_send(callee, 1)
|
376
|
-
assert_same :bar, reciever.public_send(callee, 1.9)
|
377
|
-
assert_same :bar, reciever.public_send(callee, -1)
|
378
|
-
assert_same :bar, reciever.public_send(callee, -1.9)
|
379
|
-
|
380
|
-
assert_raises KeyError do
|
381
|
-
reciever.public_send(callee, :none)
|
382
|
-
end
|
383
|
-
|
384
|
-
assert_raises KeyError do
|
385
|
-
reciever.public_send(callee, :als_none)
|
386
|
-
end
|
387
|
-
|
388
|
-
assert_raises KeyError do
|
389
|
-
reciever.public_send(callee, 'none')
|
390
|
-
end
|
391
|
-
|
392
|
-
assert_raises KeyError do
|
393
|
-
reciever.public_send(callee, 'als_none')
|
394
|
-
end
|
395
|
-
|
396
|
-
assert_raises KeyError do
|
397
|
-
reciever.public_send(callee, 2)
|
398
|
-
end
|
399
|
-
|
400
|
-
assert_raises KeyError do
|
401
|
-
reciever.public_send(callee, 2.9)
|
402
|
-
end
|
403
|
-
|
404
|
-
assert_raises KeyError do
|
405
|
-
reciever.public_send(callee, -3)
|
406
|
-
end
|
407
|
-
|
408
|
-
assert_raises KeyError do
|
409
|
-
reciever.public_send(callee, -3.9)
|
410
|
-
end
|
411
|
-
end
|
412
|
-
end
|
413
|
-
end
|
414
|
-
|
415
|
-
[:aliases_for_autonym].each do |callee|
|
416
|
-
TYPE_PAIRS.each_pair do |type, reciever|
|
417
|
-
define_method :"test_#{type}_#{callee}" do
|
418
|
-
assert_same true, reciever.public_methods.include?(callee)
|
419
|
-
|
420
|
-
assert_raises NoMethodError, TypeError do
|
421
|
-
reciever.public_send(callee, BasicObject.new)
|
422
|
-
end
|
423
|
-
|
424
|
-
assert_raises TypeError do
|
425
|
-
reciever.public_send(callee, Object.new)
|
426
|
-
end
|
427
|
-
|
428
|
-
assert_equal [:als_foo], reciever.public_send(callee, :foo)
|
429
|
-
|
430
|
-
assert_raises NameError do
|
431
|
-
reciever.public_send(callee, :als_foo)
|
432
|
-
end
|
433
|
-
|
434
|
-
assert_equal [:als_foo], reciever.public_send(callee, 'foo')
|
435
|
-
|
436
|
-
assert_raises NameError do
|
437
|
-
reciever.public_send(callee, 'als_foo')
|
438
|
-
end
|
439
|
-
|
440
|
-
assert_raises TypeError do
|
441
|
-
reciever.public_send(callee, 0)
|
442
|
-
end
|
443
|
-
|
444
|
-
assert_raises TypeError do
|
445
|
-
reciever.public_send(callee, 0.9)
|
446
|
-
end
|
447
|
-
|
448
|
-
assert_raises NameError do
|
449
|
-
reciever.public_send(callee, :bar)
|
450
|
-
end
|
451
|
-
|
452
|
-
assert_raises NameError do
|
453
|
-
reciever.public_send(callee, :als_bar)
|
454
|
-
end
|
455
|
-
|
456
|
-
assert_raises NameError do
|
457
|
-
reciever.public_send(callee, 'bar')
|
458
|
-
end
|
459
|
-
|
460
|
-
assert_raises NameError do
|
461
|
-
reciever.public_send(callee, 'als_bar')
|
462
|
-
end
|
463
|
-
|
464
|
-
assert_raises TypeError do
|
465
|
-
reciever.public_send(callee, 1)
|
466
|
-
end
|
467
|
-
|
468
|
-
assert_raises TypeError do
|
469
|
-
reciever.public_send(callee, 1.9)
|
470
|
-
end
|
471
|
-
|
472
|
-
assert_raises NameError do
|
473
|
-
reciever.public_send(callee, :none)
|
474
|
-
end
|
475
|
-
|
476
|
-
assert_raises NameError do
|
477
|
-
reciever.public_send(callee, :als_none)
|
478
|
-
end
|
479
|
-
|
480
|
-
assert_raises NameError do
|
481
|
-
reciever.public_send(callee, 'none')
|
482
|
-
end
|
483
|
-
|
484
|
-
assert_raises NameError do
|
485
|
-
reciever.public_send(callee, 'als_none')
|
486
|
-
end
|
487
|
-
|
488
|
-
assert_raises TypeError do
|
489
|
-
reciever.public_send(callee, 2)
|
490
|
-
end
|
491
|
-
|
492
|
-
assert_raises TypeError do
|
493
|
-
reciever.public_send(callee, 2.9)
|
494
|
-
end
|
495
|
-
end
|
496
|
-
end
|
497
|
-
end
|
498
|
-
|
499
|
-
aliase_for_autonym_ext_pairs = {}.tap {|h|
|
500
|
-
h[:Class] = Striuct.define do
|
501
|
-
member :foo
|
502
|
-
alias_member :als1_foo, :foo
|
503
|
-
member :bar
|
504
|
-
alias_member :als1_bar, :bar
|
505
|
-
alias_member :als2_foo, :foo
|
506
|
-
alias_member :als3_foo, :foo
|
507
|
-
member :xyz
|
508
|
-
end.freeze
|
509
|
-
|
510
|
-
h[:Instance] = h[:Class].new.freeze
|
511
|
-
}.freeze
|
512
|
-
|
513
|
-
[:aliases_for_autonym].each do |callee|
|
514
|
-
aliase_for_autonym_ext_pairs.each_pair do |type, reciever|
|
515
|
-
define_method :"test_#{type}_#{callee}_2" do
|
516
|
-
assert_equal [:als1_foo, :als2_foo, :als3_foo], reciever.public_send(callee, 'foo')
|
517
|
-
assert_equal [:als1_bar], reciever.public_send(callee, 'bar')
|
518
|
-
assert_raises NameError do
|
519
|
-
reciever.public_send(callee, 'xyz')
|
520
|
-
end
|
521
|
-
end
|
522
|
-
end
|
523
|
-
end
|
524
|
-
|
525
|
-
end
|