striuct 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/.gitignore +35 -34
  2. data/.travis.yml +6 -6
  3. data/Gemfile +12 -12
  4. data/History.rdoc +279 -273
  5. data/LICENSE +21 -21
  6. data/Manifest.txt +91 -90
  7. data/README.ja.old.rdoc +297 -297
  8. data/README.md +128 -128
  9. data/Rakefile +11 -11
  10. data/benchmark/basics.rb +56 -56
  11. data/example/README.rb +44 -44
  12. data/example/example.old.rdoc +187 -187
  13. data/example/example1.rb +233 -233
  14. data/example/example2.rb +22 -22
  15. data/example/see_trace.rb +32 -32
  16. data/lib/striuct/classmethods/README.md +5 -5
  17. data/lib/striuct/classmethods/adjustment.rb +32 -32
  18. data/lib/striuct/classmethods/constructor.rb +63 -63
  19. data/lib/striuct/classmethods/default.rb +27 -27
  20. data/lib/striuct/classmethods/enum.rb +48 -48
  21. data/lib/striuct/classmethods/inner.rb +91 -91
  22. data/lib/striuct/classmethods/length.rb +14 -14
  23. data/lib/striuct/classmethods/macro.rb +144 -144
  24. data/lib/striuct/classmethods/named.rb +113 -113
  25. data/lib/striuct/classmethods/object.rb +54 -54
  26. data/lib/striuct/classmethods/prevent_conflicts.rb +89 -89
  27. data/lib/striuct/classmethods/requiremnets.rb +11 -11
  28. data/lib/striuct/classmethods/to_struct.rb +23 -25
  29. data/lib/striuct/classmethods/validation.rb +55 -55
  30. data/lib/striuct/classmethods.rb +1 -1
  31. data/lib/striuct/instancemethods/README.md +5 -5
  32. data/lib/striuct/instancemethods/assign.rb +30 -30
  33. data/lib/striuct/instancemethods/cast.rb +34 -34
  34. data/lib/striuct/instancemethods/compare.rb +30 -30
  35. data/lib/striuct/instancemethods/default.rb +13 -13
  36. data/lib/striuct/instancemethods/delegate_class_methods.rb +28 -28
  37. data/lib/striuct/instancemethods/enum.rb +103 -103
  38. data/lib/striuct/instancemethods/hashy.rb +121 -121
  39. data/lib/striuct/instancemethods/inner.rb +60 -60
  40. data/lib/striuct/instancemethods/keyvalidatable.rb +14 -14
  41. data/lib/striuct/instancemethods/lock.rb +61 -61
  42. data/lib/striuct/instancemethods/object.rb +52 -52
  43. data/lib/striuct/instancemethods/requirements.rb +14 -14
  44. data/lib/striuct/instancemethods/safety.rb +11 -11
  45. data/lib/striuct/instancemethods/subscript.rb +55 -55
  46. data/lib/striuct/instancemethods/validation.rb +29 -25
  47. data/lib/striuct/instancemethods/values.rb +57 -57
  48. data/lib/striuct/instancemethods.rb +1 -1
  49. data/lib/striuct/requirements.rb +5 -5
  50. data/lib/striuct/singleton_class.rb +66 -66
  51. data/lib/striuct/specificcontainer.rb +19 -19
  52. data/lib/striuct/structs.rb +7 -7
  53. data/lib/striuct/version.rb +5 -5
  54. data/lib/striuct.rb +13 -13
  55. data/striuct.gemspec +24 -24
  56. data/test/helper.rb +5 -5
  57. data/test/test_striuct-singleton_class-define.rb +19 -19
  58. data/test/test_striuct-subclass-class-cloning.rb +20 -20
  59. data/test/test_striuct-subclass-class-close.rb +36 -36
  60. data/test/test_striuct-subclass-class-constructor.rb +82 -82
  61. data/test/test_striuct-subclass-class-freeze.rb +36 -36
  62. data/test/test_striuct-subclass-class-inheritable.rb +57 -57
  63. data/test/test_striuct-subclass-class-macro.rb +13 -13
  64. data/test/test_striuct-subclass-class-safety_naming.rb +72 -72
  65. data/test/test_striuct-subclass-class-validation.rb +26 -26
  66. data/test/test_striuct-subclass-feature-alias_member.rb +53 -53
  67. data/test/test_striuct-subclass-feature-to_struct.rb +61 -25
  68. data/test/test_striuct-subclass-feature-validation_util.rb +57 -0
  69. data/test/test_striuct-subclass-instance-accessor.rb +137 -137
  70. data/test/test_striuct-subclass-instance-adjuster.rb +94 -94
  71. data/test/test_striuct-subclass-instance-assign.rb +30 -30
  72. data/test/test_striuct-subclass-instance-basic.rb +32 -32
  73. data/test/test_striuct-subclass-instance-cloning.rb +22 -22
  74. data/test/test_striuct-subclass-instance-compare.rb +51 -51
  75. data/test/test_striuct-subclass-instance-default_value.rb +128 -128
  76. data/test/test_striuct-subclass-instance-enum.rb +92 -92
  77. data/test/test_striuct-subclass-instance-freeze.rb +19 -19
  78. data/test/test_striuct-subclass-instance-hashlike.rb +153 -153
  79. data/test/test_striuct-subclass-instance-keyvalidatable.rb +24 -24
  80. data/test/test_striuct-subclass-instance-lock.rb +39 -39
  81. data/test/test_striuct-subclass-instance-to_s_family.rb +25 -25
  82. data/test/test_striuct-subclass-instance-validation_functional_condition.rb +50 -50
  83. data/test/test_striuct-subclass-instance-validation_inference.rb +50 -50
  84. data/test/test_striuct-subclass-instance-validation_specific_conditions.rb +247 -247
  85. data/test/test_striuct-subclass-instance-validation_with_getter.rb +33 -33
  86. data/test/test_striuct-subclass-instance_names.rb +18 -18
  87. data/test/test_striuct-version.rb +10 -10
  88. metadata +4 -2
@@ -1,153 +1,153 @@
1
- require_relative 'helper'
2
-
3
- class Test_Striuct_Subclass_Instance_HashLike < Test::Unit::TestCase
4
-
5
- Sth = Striuct.new :foo, :bar, :hoge
6
-
7
- def test_empty?
8
- sth = Sth[hoge: 7, foo: 8]
9
- assert_equal false, sth.empty?
10
- sth.each_member{|name|sth[name] = nil}
11
- assert_equal false, sth.empty?
12
- sth.each_member{|name|sth.unassign name}
13
- assert_equal true, sth.empty?
14
- end
15
-
16
- def test_has_value?
17
- sth = Sth[hoge: 7, foo: 8]
18
- assert_equal true, sth.value?(7)
19
- assert_equal true, sth.value?(8)
20
- assert_equal false, sth.value?(9)
21
- assert_equal false, sth.value?(nil)
22
- end
23
-
24
- def test_select!
25
- sth = Sth[hoge: 7, foo: 8]
26
- sth2, sth3 = sth.dup, sth.dup
27
-
28
- assert_kind_of Enumerator, enum = sth.select!
29
- assert_equal [:foo, 8], enum.next
30
- assert_equal [:bar, nil], enum.next
31
- assert_equal [:hoge, 7], enum.next
32
- assert_raises StopIteration do
33
- enum.next
34
- end
35
-
36
- assert_equal nil, sth2.select!{|k, v|true}
37
- assert_equal sth3, sth3.select!{|k, v|k == :hoge && v == 7}
38
- assert_equal nil, sth3.foo
39
- assert_equal true, sth3.assign?(:hoge)
40
- assert_equal false, sth3.assign?(:foo)
41
- assert_equal 7, sth3.hoge
42
- end
43
-
44
- def test_keep_if
45
- sth = Sth[hoge: 7, foo: 8]
46
- sth2, sth3 = sth.dup, sth.dup
47
-
48
- assert_kind_of Enumerator, enum = sth.keep_if
49
- assert_equal [:foo, 8], enum.next
50
- assert_equal [:bar, nil], enum.next
51
- assert_equal [:hoge, 7], enum.next
52
- assert_raises StopIteration do
53
- enum.next
54
- end
55
-
56
- assert_equal sth2, sth2.keep_if{|k, v|true}
57
- assert_equal sth3, sth3.keep_if{|k, v|k == :hoge && v == 7}
58
- assert_equal nil, sth3.foo
59
- assert_equal true, sth3.assign?(:hoge)
60
- assert_equal false, sth3.assign?(:foo)
61
- assert_equal 7, sth3.hoge
62
- end
63
-
64
- def test_reject!
65
- sth = Sth[hoge: 7, foo: 8]
66
- sth2, sth3 = sth.dup, sth.dup
67
-
68
- assert_kind_of Enumerator, enum = sth.reject!
69
- assert_equal [:foo, 8], enum.next
70
- assert_equal [:bar, nil], enum.next
71
- assert_equal [:hoge, 7], enum.next
72
- assert_raises StopIteration do
73
- enum.next
74
- end
75
-
76
- enum.rewind
77
- assert_equal [:foo, 8], enum.next
78
-
79
- assert_equal nil, sth2.reject!{|k, v|false}
80
- assert_equal sth3, sth3.reject!{|k, v|k == :hoge && v == 7}
81
- assert_equal nil, sth3.hoge
82
- assert_equal false, sth3.assign?(:hoge)
83
- assert_equal true, sth3.assign?(:foo)
84
- assert_equal 8, sth3.foo
85
- end
86
-
87
- def test_delete_if
88
- sth = Sth[hoge: 7, foo: 8]
89
- sth2, sth3 = sth.dup, sth.dup
90
-
91
- assert_kind_of Enumerator, enum = sth.delete_if
92
-
93
- assert_equal [:foo, 8], enum.next
94
- assert_equal [:bar, nil], enum.next
95
- assert_equal [:hoge, 7], enum.next
96
- assert_raises StopIteration do
97
- enum.next
98
- end
99
-
100
- assert_equal sth2, sth2.delete_if{|k, v|false}
101
- assert_equal sth3, sth3.delete_if{|k, v|k == :hoge && v == 7}
102
- assert_equal nil, sth3.hoge
103
- assert_equal false, sth3.assign?(:hoge)
104
- assert_equal true, sth3.assign?(:foo)
105
- assert_equal 8, sth3.foo
106
- end
107
-
108
- def test_assoc
109
- sth = Sth[hoge: 7, foo: 8]
110
-
111
- assert_equal [:foo, 8], sth.assoc(:foo)
112
- assert_equal [:bar, nil], sth.assoc(:bar)
113
- assert_equal [:hoge, 7], sth.assoc(:hoge)
114
-
115
- assert_raises NameError do
116
- sth.assoc(:dummy)
117
- end
118
- end
119
-
120
- def test_rassoc
121
- sth = Sth[hoge: 7, foo: 7]
122
-
123
- assert_equal [:foo, 7], sth.rassoc(7)
124
- assert_equal [:bar, nil], sth.rassoc(nil)
125
- assert_equal nil, sth.rassoc(9)
126
- end
127
-
128
- def test_flatten
129
- sth = Sth[hoge: 7, foo: 8, bar: [1, 2]]
130
- assert_equal [:foo, 8, :bar, [1, 2], :hoge, 7], sth.flatten
131
- assert_equal [:foo, 8, :bar, [1, 2], :hoge, 7], sth.flatten(1)
132
- assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(2)
133
- assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(3)
134
- assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(-1)
135
- end
136
-
137
- def test_select
138
- sth = Sth[hoge: 7, foo: 8]
139
-
140
- assert_kind_of Enumerator, sth.select
141
-
142
- assert_equal Sth[hoge: 7], sth.select{|k, v|k == :hoge}
143
- end
144
-
145
- def test_reject
146
- sth = Sth[hoge: 7, foo: 8]
147
-
148
- assert_kind_of Enumerator, sth.reject
149
-
150
- assert_equal Sth[foo: 8], sth.reject{|k, v|k == :hoge}
151
- end
152
-
153
- end
1
+ require_relative 'helper'
2
+
3
+ class Test_Striuct_Subclass_Instance_HashLike < Test::Unit::TestCase
4
+
5
+ Sth = Striuct.new :foo, :bar, :hoge
6
+
7
+ def test_empty?
8
+ sth = Sth[hoge: 7, foo: 8]
9
+ assert_equal false, sth.empty?
10
+ sth.each_member{|name|sth[name] = nil}
11
+ assert_equal false, sth.empty?
12
+ sth.each_member{|name|sth.unassign name}
13
+ assert_equal true, sth.empty?
14
+ end
15
+
16
+ def test_has_value?
17
+ sth = Sth[hoge: 7, foo: 8]
18
+ assert_equal true, sth.value?(7)
19
+ assert_equal true, sth.value?(8)
20
+ assert_equal false, sth.value?(9)
21
+ assert_equal false, sth.value?(nil)
22
+ end
23
+
24
+ def test_select!
25
+ sth = Sth[hoge: 7, foo: 8]
26
+ sth2, sth3 = sth.dup, sth.dup
27
+
28
+ assert_kind_of Enumerator, enum = sth.select!
29
+ assert_equal [:foo, 8], enum.next
30
+ assert_equal [:bar, nil], enum.next
31
+ assert_equal [:hoge, 7], enum.next
32
+ assert_raises StopIteration do
33
+ enum.next
34
+ end
35
+
36
+ assert_equal nil, sth2.select!{|k, v|true}
37
+ assert_equal sth3, sth3.select!{|k, v|k == :hoge && v == 7}
38
+ assert_equal nil, sth3.foo
39
+ assert_equal true, sth3.assign?(:hoge)
40
+ assert_equal false, sth3.assign?(:foo)
41
+ assert_equal 7, sth3.hoge
42
+ end
43
+
44
+ def test_keep_if
45
+ sth = Sth[hoge: 7, foo: 8]
46
+ sth2, sth3 = sth.dup, sth.dup
47
+
48
+ assert_kind_of Enumerator, enum = sth.keep_if
49
+ assert_equal [:foo, 8], enum.next
50
+ assert_equal [:bar, nil], enum.next
51
+ assert_equal [:hoge, 7], enum.next
52
+ assert_raises StopIteration do
53
+ enum.next
54
+ end
55
+
56
+ assert_equal sth2, sth2.keep_if{|k, v|true}
57
+ assert_equal sth3, sth3.keep_if{|k, v|k == :hoge && v == 7}
58
+ assert_equal nil, sth3.foo
59
+ assert_equal true, sth3.assign?(:hoge)
60
+ assert_equal false, sth3.assign?(:foo)
61
+ assert_equal 7, sth3.hoge
62
+ end
63
+
64
+ def test_reject!
65
+ sth = Sth[hoge: 7, foo: 8]
66
+ sth2, sth3 = sth.dup, sth.dup
67
+
68
+ assert_kind_of Enumerator, enum = sth.reject!
69
+ assert_equal [:foo, 8], enum.next
70
+ assert_equal [:bar, nil], enum.next
71
+ assert_equal [:hoge, 7], enum.next
72
+ assert_raises StopIteration do
73
+ enum.next
74
+ end
75
+
76
+ enum.rewind
77
+ assert_equal [:foo, 8], enum.next
78
+
79
+ assert_equal nil, sth2.reject!{|k, v|false}
80
+ assert_equal sth3, sth3.reject!{|k, v|k == :hoge && v == 7}
81
+ assert_equal nil, sth3.hoge
82
+ assert_equal false, sth3.assign?(:hoge)
83
+ assert_equal true, sth3.assign?(:foo)
84
+ assert_equal 8, sth3.foo
85
+ end
86
+
87
+ def test_delete_if
88
+ sth = Sth[hoge: 7, foo: 8]
89
+ sth2, sth3 = sth.dup, sth.dup
90
+
91
+ assert_kind_of Enumerator, enum = sth.delete_if
92
+
93
+ assert_equal [:foo, 8], enum.next
94
+ assert_equal [:bar, nil], enum.next
95
+ assert_equal [:hoge, 7], enum.next
96
+ assert_raises StopIteration do
97
+ enum.next
98
+ end
99
+
100
+ assert_equal sth2, sth2.delete_if{|k, v|false}
101
+ assert_equal sth3, sth3.delete_if{|k, v|k == :hoge && v == 7}
102
+ assert_equal nil, sth3.hoge
103
+ assert_equal false, sth3.assign?(:hoge)
104
+ assert_equal true, sth3.assign?(:foo)
105
+ assert_equal 8, sth3.foo
106
+ end
107
+
108
+ def test_assoc
109
+ sth = Sth[hoge: 7, foo: 8]
110
+
111
+ assert_equal [:foo, 8], sth.assoc(:foo)
112
+ assert_equal [:bar, nil], sth.assoc(:bar)
113
+ assert_equal [:hoge, 7], sth.assoc(:hoge)
114
+
115
+ assert_raises NameError do
116
+ sth.assoc(:dummy)
117
+ end
118
+ end
119
+
120
+ def test_rassoc
121
+ sth = Sth[hoge: 7, foo: 7]
122
+
123
+ assert_equal [:foo, 7], sth.rassoc(7)
124
+ assert_equal [:bar, nil], sth.rassoc(nil)
125
+ assert_equal nil, sth.rassoc(9)
126
+ end
127
+
128
+ def test_flatten
129
+ sth = Sth[hoge: 7, foo: 8, bar: [1, 2]]
130
+ assert_equal [:foo, 8, :bar, [1, 2], :hoge, 7], sth.flatten
131
+ assert_equal [:foo, 8, :bar, [1, 2], :hoge, 7], sth.flatten(1)
132
+ assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(2)
133
+ assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(3)
134
+ assert_equal [:foo, 8, :bar, 1, 2, :hoge, 7], sth.flatten(-1)
135
+ end
136
+
137
+ def test_select
138
+ sth = Sth[hoge: 7, foo: 8]
139
+
140
+ assert_kind_of Enumerator, sth.select
141
+
142
+ assert_equal Sth[hoge: 7], sth.select{|k, v|k == :hoge}
143
+ end
144
+
145
+ def test_reject
146
+ sth = Sth[hoge: 7, foo: 8]
147
+
148
+ assert_kind_of Enumerator, sth.reject
149
+
150
+ assert_equal Sth[foo: 8], sth.reject{|k, v|k == :hoge}
151
+ end
152
+
153
+ end
@@ -1,25 +1,25 @@
1
- require_relative 'helper'
2
-
3
- class Test_Striuct_Subclass_Instance_KeyVallidatable < Test::Unit::TestCase
4
-
5
- Sth = Striuct.new :foo, :bar
6
-
7
- def test_valid_keys?
8
- sth = Sth.new
9
- assert(sth.valid_keys?(must: [:foo, :bar]))
10
- assert(sth.valid_keys?(let: [:foo, :bar]))
11
- assert(sth.valid_keys?(must: [:foo], let: [:bar]))
12
- assert(sth.valid_keys?(let: [:foo, :bar, :hoge]))
13
- assert_same(false, sth.valid_keys?(must: [:foo, :bar, :hoge]))
14
- end
15
-
16
- def test_valid_autonyms?
17
- sth = Sth.new
18
- assert(sth.valid_autonyms?(must: [:foo, :bar]))
19
- assert(sth.valid_autonyms?(let: [:foo, :bar]))
20
- assert(sth.valid_autonyms?(must: [:foo], let: [:bar]))
21
- assert(sth.valid_autonyms?(let: [:foo, :bar, :hoge]))
22
- assert_same(false, sth.valid_autonyms?(must: [:foo, :bar, :hoge]))
23
- end
24
-
1
+ require_relative 'helper'
2
+
3
+ class Test_Striuct_Subclass_Instance_KeyVallidatable < Test::Unit::TestCase
4
+
5
+ Sth = Striuct.new :foo, :bar
6
+
7
+ def test_valid_keys?
8
+ sth = Sth.new
9
+ assert(sth.valid_keys?(must: [:foo, :bar]))
10
+ assert(sth.valid_keys?(let: [:foo, :bar]))
11
+ assert(sth.valid_keys?(must: [:foo], let: [:bar]))
12
+ assert(sth.valid_keys?(let: [:foo, :bar, :hoge]))
13
+ assert_same(false, sth.valid_keys?(must: [:foo, :bar, :hoge]))
14
+ end
15
+
16
+ def test_valid_autonyms?
17
+ sth = Sth.new
18
+ assert(sth.valid_autonyms?(must: [:foo, :bar]))
19
+ assert(sth.valid_autonyms?(let: [:foo, :bar]))
20
+ assert(sth.valid_autonyms?(must: [:foo], let: [:bar]))
21
+ assert(sth.valid_autonyms?(let: [:foo, :bar, :hoge]))
22
+ assert_same(false, sth.valid_autonyms?(must: [:foo, :bar, :hoge]))
23
+ end
24
+
25
25
  end
@@ -1,40 +1,40 @@
1
- require_relative 'helper'
2
-
3
- class Test_Striuct_Subclass_Instance_Lock < Test::Unit::TestCase
4
-
5
- Sth = Striuct.new :foo, :bar
6
- Sth.__send__ :close
7
-
8
- def test_lock
9
- sth = Sth.new
10
- assert_equal false, sth.lock?(:foo)
11
- assert_equal false, sth.lock?(:bar)
12
- assert_equal false, sth.secure?
13
- sth.lock :bar
14
- assert_equal true, sth.lock?(:bar)
15
- assert_equal false, sth.secure?
16
-
17
- assert_raises RuntimeError do
18
- sth.bar = 1
19
- end
20
-
21
- sth.__send__ :unlock, :bar
22
-
23
- assert_equal false, sth.lock?(:bar)
24
-
25
- sth.bar = 1
26
- assert_equal 1, sth.bar
27
-
28
- sth.lock
29
- assert_equal true, sth.lock?(:foo)
30
- assert_equal true, sth.lock?(:bar)
31
- assert_equal true, sth.lock?
32
-
33
- assert_raises RuntimeError do
34
- sth.foo = 1
35
- end
36
-
37
- assert_equal true, sth.secure?
38
- end
39
-
1
+ require_relative 'helper'
2
+
3
+ class Test_Striuct_Subclass_Instance_Lock < Test::Unit::TestCase
4
+
5
+ Sth = Striuct.new :foo, :bar
6
+ Sth.__send__ :close
7
+
8
+ def test_lock
9
+ sth = Sth.new
10
+ assert_equal false, sth.lock?(:foo)
11
+ assert_equal false, sth.lock?(:bar)
12
+ assert_equal false, sth.secure?
13
+ sth.lock :bar
14
+ assert_equal true, sth.lock?(:bar)
15
+ assert_equal false, sth.secure?
16
+
17
+ assert_raises RuntimeError do
18
+ sth.bar = 1
19
+ end
20
+
21
+ sth.__send__ :unlock, :bar
22
+
23
+ assert_equal false, sth.lock?(:bar)
24
+
25
+ sth.bar = 1
26
+ assert_equal 1, sth.bar
27
+
28
+ sth.lock
29
+ assert_equal true, sth.lock?(:foo)
30
+ assert_equal true, sth.lock?(:bar)
31
+ assert_equal true, sth.lock?
32
+
33
+ assert_raises RuntimeError do
34
+ sth.foo = 1
35
+ end
36
+
37
+ assert_equal true, sth.secure?
38
+ end
39
+
40
40
  end
@@ -1,25 +1,25 @@
1
- require_relative 'helper'
2
-
3
- class Test_Striuct_Subclass_Instance_to_s_Family < Test::Unit::TestCase
4
-
5
- class User < Striuct.new
6
- member :id, Integer
7
- member :last_name, /\A\w+\z/
8
- member :family_name, /\A\w+\z/
9
- member :address, /\A((\w+) ?)+\z/
10
- member :age, ->age{(20..140).include? age}
11
- end
12
-
13
- def test_to_s
14
- user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
15
- assert_equal %q!#<struct' Test_Striuct_Subclass_Instance_to_s_Family::User id=9999, last_name="taro", family_name="yamada", address="Tokyo Japan", age=30>!,
16
- user.to_s
17
- end
18
-
19
- def test_inspect
20
- user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
21
- assert_equal %q!#<struct' Test_Striuct_Subclass_Instance_to_s_Family::User strict?:true id=9999(valid?:true, lock?:false), last_name="taro"(valid?:true, lock?:false), family_name="yamada"(valid?:true, lock?:false), address="Tokyo Japan"(valid?:true, lock?:false), age=30(valid?:true, lock?:false)>!,
22
- user.inspect
23
- end
24
-
25
- end
1
+ require_relative 'helper'
2
+
3
+ class Test_Striuct_Subclass_Instance_to_s_Family < Test::Unit::TestCase
4
+
5
+ class User < Striuct.new
6
+ member :id, Integer
7
+ member :last_name, /\A\w+\z/
8
+ member :family_name, /\A\w+\z/
9
+ member :address, /\A((\w+) ?)+\z/
10
+ member :age, ->age{(20..140).include? age}
11
+ end
12
+
13
+ def test_to_s
14
+ user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
15
+ assert_equal %q!#<struct' Test_Striuct_Subclass_Instance_to_s_Family::User id=9999, last_name="taro", family_name="yamada", address="Tokyo Japan", age=30>!,
16
+ user.to_s
17
+ end
18
+
19
+ def test_inspect
20
+ user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
21
+ assert_equal %q!#<struct' Test_Striuct_Subclass_Instance_to_s_Family::User strict?:true id=9999(valid?:true, lock?:false), last_name="taro"(valid?:true, lock?:false), family_name="yamada"(valid?:true, lock?:false), address="Tokyo Japan"(valid?:true, lock?:false), age=30(valid?:true, lock?:false)>!,
22
+ user.inspect
23
+ end
24
+
25
+ end
@@ -1,51 +1,51 @@
1
- require_relative 'helper'
2
-
3
- class TestStriuctFunctionalCondition < Test::Unit::TestCase
4
-
5
- Sthlambda = Striuct.new do
6
- member :lank, ->lank{lanks.include? lank}
7
- member :lanks
8
- default :lanks, 1..30
9
- end
10
-
11
- def test_lambda
12
- sth = Sthlambda.new
13
- sth.lank = 2
14
- assert_equal 2, sth.lank
15
-
16
- assert_raises Validation::InvalidWritingError do
17
- sth.lank = 31
18
- end
19
- end
20
-
21
- max = 9
22
-
23
- SthProc = Striuct.new do
24
- member :lank, Proc.new{|n|(3..max) === n}
25
- end
26
-
27
- def test_Proc
28
- sth = SthProc.new
29
- sth.lank = 8
30
- assert_equal 8, sth.lank
31
-
32
- assert_raises Validation::InvalidWritingError do
33
- sth.lank = 2
34
- end
35
- end
36
-
37
- SthMethod = Striuct.new do
38
- member :lank, 7.method(:<)
39
- end
40
-
41
- def test_Method
42
- sth = SthMethod.new
43
- sth.lank = 8
44
- assert_equal 8, sth.lank
45
-
46
- assert_raises Validation::InvalidWritingError do
47
- sth.lank = 6
48
- end
49
- end
50
-
1
+ require_relative 'helper'
2
+
3
+ class TestStriuctFunctionalCondition < Test::Unit::TestCase
4
+
5
+ Sthlambda = Striuct.new do
6
+ member :lank, ->lank{lanks.include? lank}
7
+ member :lanks
8
+ default :lanks, 1..30
9
+ end
10
+
11
+ def test_lambda
12
+ sth = Sthlambda.new
13
+ sth.lank = 2
14
+ assert_equal 2, sth.lank
15
+
16
+ assert_raises Validation::InvalidWritingError do
17
+ sth.lank = 31
18
+ end
19
+ end
20
+
21
+ max = 9
22
+
23
+ SthProc = Striuct.new do
24
+ member :lank, Proc.new{|n|(3..max) === n}
25
+ end
26
+
27
+ def test_Proc
28
+ sth = SthProc.new
29
+ sth.lank = 8
30
+ assert_equal 8, sth.lank
31
+
32
+ assert_raises Validation::InvalidWritingError do
33
+ sth.lank = 2
34
+ end
35
+ end
36
+
37
+ SthMethod = Striuct.new do
38
+ member :lank, 7.method(:<)
39
+ end
40
+
41
+ def test_Method
42
+ sth = SthMethod.new
43
+ sth.lank = 8
44
+ assert_equal 8, sth.lank
45
+
46
+ assert_raises Validation::InvalidWritingError do
47
+ sth.lank = 6
48
+ end
49
+ end
50
+
51
51
  end