striuct 0.3.2 → 0.3.3
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/History.rdoc +12 -0
- data/LICENSE +2 -2
- data/Manifest.txt +34 -24
- data/README.md +34 -5
- data/example/README.rb +20 -1
- data/lib/striuct/classmethods/README.md +5 -0
- data/lib/striuct/classmethods/adjustment.rb +5 -3
- data/lib/striuct/classmethods/default.rb +2 -2
- data/lib/striuct/classmethods/enum.rb +3 -3
- data/lib/striuct/classmethods/inner.rb +28 -49
- data/lib/striuct/classmethods/named.rb +22 -2
- data/lib/striuct/classmethods/object.rb +35 -5
- data/lib/striuct/instancemethods/README.md +5 -0
- data/lib/striuct/instancemethods/assign.rb +1 -1
- data/lib/striuct/instancemethods/cast.rb +35 -0
- data/lib/striuct/instancemethods/compare.rb +4 -5
- data/lib/striuct/instancemethods/delegate_class_methods.rb +12 -4
- data/lib/striuct/instancemethods/hashy.rb +0 -11
- data/lib/striuct/instancemethods/keyvalidatable.rb +14 -0
- data/lib/striuct/instancemethods/lock.rb +15 -4
- data/lib/striuct/instancemethods/object.rb +11 -6
- data/lib/striuct/instancemethods/requirements.rb +2 -2
- data/lib/striuct/instancemethods/subscript.rb +1 -1
- data/lib/striuct/instancemethods/values.rb +1 -8
- data/lib/striuct/singleton_class.rb +9 -36
- data/lib/striuct/version.rb +1 -1
- data/striuct.gemspec +4 -4
- data/test/{test_striuct_define.rb → test_striuct-singleton_class-define.rb} +1 -1
- data/test/test_striuct-subclass-class-cloning.rb +21 -0
- data/test/{test_striuct_subclass_classlock.rb → test_striuct-subclass-class-close.rb} +2 -2
- data/test/{test_striuct_subclass_classmethods.rb → test_striuct-subclass-class-constructor.rb} +15 -20
- data/test/test_striuct-subclass-class-freeze.rb +36 -0
- data/test/{test_striuct_subclass_inheritable.rb → test_striuct-subclass-class-inheritable.rb} +1 -1
- data/test/test_striuct-subclass-class-macro.rb +13 -0
- data/test/{test_striuct_subclass_safetynaming.rb → test_striuct-subclass-class-safety_naming.rb} +1 -1
- data/test/test_striuct-subclass-class-validation.rb +26 -0
- data/test/{test_striuct_subclass_alias_member.rb → test_striuct-subclass-feature-alias_member.rb} +1 -1
- data/test/{test_striuct_subclass_to_struct.rb → test_striuct-subclass-feature-to_struct.rb} +1 -1
- data/test/test_striuct-subclass-instance-accessor.rb +137 -0
- data/test/{test_striuct_subclass_adjuster.rb → test_striuct-subclass-instance-adjuster.rb} +28 -28
- data/test/{test_striuct_subclass_assign.rb → test_striuct-subclass-instance-assign.rb} +1 -1
- data/test/test_striuct-subclass-instance-basic.rb +32 -0
- data/test/test_striuct-subclass-instance-cloning.rb +23 -0
- data/test/test_striuct-subclass-instance-compare.rb +52 -0
- data/test/{test_striuct_subclass_default_value.rb → test_striuct-subclass-instance-default_value.rb} +2 -2
- data/test/test_striuct-subclass-instance-enum.rb +93 -0
- data/test/{test_striuct_subclass_freeze.rb → test_striuct-subclass-instance-freeze.rb} +1 -1
- data/test/{test_striuct_subclass_hashlike.rb → test_striuct-subclass-instance-hashlike.rb} +1 -1
- data/test/test_striuct-subclass-instance-keyvalidatable.rb +25 -0
- data/test/{test_striuct_subclass_lock.rb → test_striuct-subclass-instance-lock.rb} +1 -1
- data/test/test_striuct-subclass-instance-to_s_family.rb +25 -0
- data/test/{test_striuct_subclass_functional_condition.rb → test_striuct-subclass-instance-validation_functional_condition.rb} +0 -0
- data/test/{test_striuct_subclass_inference.rb → test_striuct-subclass-instance-validation_inference.rb} +1 -1
- data/test/{test_striuct_subclass_specific_conditions.rb → test_striuct-subclass-instance-validation_specific_conditions.rb} +1 -1
- data/test/{test_striuct_subclass_getter_validation.rb → test_striuct-subclass-instance-validation_with_getter.rb} +1 -1
- data/test/test_striuct-subclass-instance_names.rb +18 -0
- data/test/test_striuct-version.rb +11 -0
- metadata +68 -50
- data/lib/striuct/instancemethods/singleton_class.rb +0 -22
- data/lib/striuct/instancemethods/to_struct.rb +0 -12
- data/test/test_striuct.rb +0 -24
- data/test/test_striuct_subclass_cloning.rb +0 -36
- data/test/test_striuct_subclass_for_pairs.rb +0 -20
- data/test/test_striuct_subclass_instance.rb +0 -289
- data/test/test_striuct_version.rb +0 -9
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
class Test_Striuct_Subclass_Instance_Cloning < Test::Unit::TestCase
|
4
|
+
|
5
|
+
class Sth < Striuct.new
|
6
|
+
member :sth
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_dup
|
10
|
+
sth = Sth.new
|
11
|
+
sth2 = sth.dup
|
12
|
+
sth.sth = 1
|
13
|
+
assert_equal false, (sth.sth == sth2.sth)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_clone
|
17
|
+
sth = Sth.new
|
18
|
+
sth2 = sth.clone
|
19
|
+
sth.sth = 2
|
20
|
+
assert_equal false, (sth.sth == sth2.sth)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
|
4
|
+
class Test_Striuct_Subclass_Instance_Compare < Test::Unit::TestCase
|
5
|
+
|
6
|
+
class User < Striuct.new
|
7
|
+
member :id, Integer
|
8
|
+
member :last_name, /\A\w+\z/
|
9
|
+
member :family_name, /\A\w+\z/
|
10
|
+
member :address, /\A((\w+) ?)+\z/
|
11
|
+
member :age, ->age{(20..140).include? age}
|
12
|
+
end
|
13
|
+
|
14
|
+
def setup
|
15
|
+
@user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
|
16
|
+
@user2 = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_hash
|
20
|
+
assert_kind_of Integer, @user.hash
|
21
|
+
assert_equal @user.hash, @user2.hash
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_eql?
|
25
|
+
assert_equal true, @user.eql?(@user2)
|
26
|
+
assert_equal true, @user2.eql?(@user)
|
27
|
+
assert_equal false, @user.eql?(User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 31)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_equal
|
31
|
+
user1 = User.new 11218, 'taro'
|
32
|
+
user2 = User.new 11218, 'taro'
|
33
|
+
assert_equal true, (user1 == user2)
|
34
|
+
user2.last_name = 'ichiro'
|
35
|
+
assert_equal false, (user1 == user2)
|
36
|
+
end
|
37
|
+
|
38
|
+
Sth = Striuct.new :foo, :bar, :hoge
|
39
|
+
|
40
|
+
def test_hashkeyable
|
41
|
+
sth1 = Sth[hoge: 7, foo: 8]
|
42
|
+
sth2 = Sth[hoge: 7, foo: 8]
|
43
|
+
assert_equal true, sth1.eql?(sth2)
|
44
|
+
assert_equal true, sth2.eql?(sth1)
|
45
|
+
assert_equal sth1.hash, sth2.hash
|
46
|
+
assert_equal true, {sth1 => 1}.has_key?(sth2)
|
47
|
+
assert_equal true, {sth2 => 1}.has_key?(sth1)
|
48
|
+
assert_equal 1, {sth1 => 1}[sth2]
|
49
|
+
assert_equal 1, {sth2 => 1}[sth1]
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/test/{test_striuct_subclass_default_value.rb → test_striuct-subclass-instance-default_value.rb}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative 'helper'
|
2
2
|
|
3
|
-
class
|
3
|
+
class Test_Striuct_Subclass_Instance_Default_Value < Test::Unit::TestCase
|
4
4
|
|
5
5
|
Sth = Striuct.new do
|
6
6
|
member :lank, OR(Bignum, Fixnum)
|
@@ -72,7 +72,7 @@ class TestStriuctDefaultValue < Test::Unit::TestCase
|
|
72
72
|
|
73
73
|
end
|
74
74
|
|
75
|
-
class
|
75
|
+
class Test_Striuct_Subclass_Instance_DefaultValue_Under_MemberMacro < Test::Unit::TestCase
|
76
76
|
|
77
77
|
Sth = Striuct.new do
|
78
78
|
member :lank, OR(Bignum, Fixnum), default: 1
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
|
4
|
+
class Test_Striuct_Subclass_Instance_Enum < Test::Unit::TestCase
|
5
|
+
|
6
|
+
class User < Striuct.new
|
7
|
+
member :id, Integer
|
8
|
+
member :last_name, /\A\w+\z/
|
9
|
+
member :family_name, /\A\w+\z/
|
10
|
+
member :address, /\A((\w+) ?)+\z/
|
11
|
+
member :age, ->age{(20..140).include? age}
|
12
|
+
end
|
13
|
+
|
14
|
+
def setup
|
15
|
+
@user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
|
16
|
+
@user2 = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_each
|
20
|
+
assert_same @user, @user.each{}
|
21
|
+
assert_kind_of Enumerator, enum = @user.each
|
22
|
+
assert_equal enum.next, 9999
|
23
|
+
assert_equal enum.next, 'taro'
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_each_member
|
27
|
+
assert_same @user, @user.each_member{}
|
28
|
+
assert_kind_of Enumerator, enum = @user.each_member
|
29
|
+
assert_equal :id, enum.next
|
30
|
+
assert_equal :last_name, enum.next
|
31
|
+
assert_equal :family_name, enum.next
|
32
|
+
assert_equal :address, enum.next
|
33
|
+
assert_equal :age, enum.next
|
34
|
+
assert_raises StopIteration do
|
35
|
+
enum.next
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_each_index
|
40
|
+
assert_same @user, @user.each_index{}
|
41
|
+
assert_kind_of Enumerator, enum = @user.each_index
|
42
|
+
assert_equal 0, enum.next
|
43
|
+
assert_equal 1, enum.next
|
44
|
+
assert_equal 2, enum.next
|
45
|
+
assert_equal 3, enum.next
|
46
|
+
assert_equal 4, enum.next
|
47
|
+
assert_raises StopIteration do
|
48
|
+
enum.next
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_each_with_index
|
53
|
+
assert_same @user, @user.each_with_index{}
|
54
|
+
assert_kind_of Enumerator, @user.each_with_index
|
55
|
+
|
56
|
+
r = []
|
57
|
+
@user.each_with_index do |value, index|
|
58
|
+
r << [value, index]
|
59
|
+
end
|
60
|
+
|
61
|
+
assert_equal [@user.each_value.to_a, @user.each_index.to_a].transpose, r
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_each_member_with_index
|
65
|
+
assert_same @user, @user.each_member_with_index{}
|
66
|
+
assert_kind_of Enumerator, @user.each_member_with_index
|
67
|
+
|
68
|
+
r = []
|
69
|
+
@user.each_member_with_index do |name, index|
|
70
|
+
r << [name, index]
|
71
|
+
end
|
72
|
+
|
73
|
+
assert_equal [@user.each_key.to_a, @user.each_index.to_a].transpose, r
|
74
|
+
end
|
75
|
+
|
76
|
+
Sth = Striuct.define do
|
77
|
+
member :name
|
78
|
+
member :age
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_each_pair_with_index
|
82
|
+
sth = Sth.new 'a', 10
|
83
|
+
assert_same sth, sth.each_pair_with_index{}
|
84
|
+
|
85
|
+
enum = sth.each_pair_with_index
|
86
|
+
assert_equal [:name, 'a', 0], enum.next
|
87
|
+
assert_equal [:age, 10, 1], enum.next
|
88
|
+
assert_raises StopIteration do
|
89
|
+
enum.next
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
@@ -0,0 +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
|
+
|
25
|
+
end
|
@@ -0,0 +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
|
File without changes
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
class Test_Striuct_Subclass_Instance_Names < 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_members
|
14
|
+
user = User.new 9999, 'taro', 'yamada', 'Tokyo Japan', 30
|
15
|
+
assert_equal user.members, [:id, :last_name, :family_name, :address, :age]
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
class Test_Striuct_Version < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_const_version
|
6
|
+
assert_kind_of String, Striuct::VERSION
|
7
|
+
assert(/\A\d+\.\d+\.\d+(\.\w+)?\z/ =~ Striuct::VERSION)
|
8
|
+
assert_equal true, Striuct::VERSION.frozen?
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: striuct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-09-
|
12
|
+
date: 2012-09-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: validation
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.3
|
21
|
+
version: 0.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.0.3
|
29
|
+
version: 0.0.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: keyvalidatable
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- example/see_trace.rb
|
85
85
|
- lib/striuct.rb
|
86
86
|
- lib/striuct/classmethods.rb
|
87
|
+
- lib/striuct/classmethods/README.md
|
87
88
|
- lib/striuct/classmethods/adjustment.rb
|
88
89
|
- lib/striuct/classmethods/constructor.rb
|
89
90
|
- lib/striuct/classmethods/default.rb
|
@@ -98,20 +99,21 @@ files:
|
|
98
99
|
- lib/striuct/classmethods/to_struct.rb
|
99
100
|
- lib/striuct/classmethods/validation.rb
|
100
101
|
- lib/striuct/instancemethods.rb
|
102
|
+
- lib/striuct/instancemethods/README.md
|
101
103
|
- lib/striuct/instancemethods/assign.rb
|
104
|
+
- lib/striuct/instancemethods/cast.rb
|
102
105
|
- lib/striuct/instancemethods/compare.rb
|
103
106
|
- lib/striuct/instancemethods/default.rb
|
104
107
|
- lib/striuct/instancemethods/delegate_class_methods.rb
|
105
108
|
- lib/striuct/instancemethods/enum.rb
|
106
109
|
- lib/striuct/instancemethods/hashy.rb
|
107
110
|
- lib/striuct/instancemethods/inner.rb
|
111
|
+
- lib/striuct/instancemethods/keyvalidatable.rb
|
108
112
|
- lib/striuct/instancemethods/lock.rb
|
109
113
|
- lib/striuct/instancemethods/object.rb
|
110
114
|
- lib/striuct/instancemethods/requirements.rb
|
111
115
|
- lib/striuct/instancemethods/safety.rb
|
112
|
-
- lib/striuct/instancemethods/singleton_class.rb
|
113
116
|
- lib/striuct/instancemethods/subscript.rb
|
114
|
-
- lib/striuct/instancemethods/to_struct.rb
|
115
117
|
- lib/striuct/instancemethods/validation.rb
|
116
118
|
- lib/striuct/instancemethods/values.rb
|
117
119
|
- lib/striuct/requirements.rb
|
@@ -121,28 +123,36 @@ files:
|
|
121
123
|
- lib/striuct/version.rb
|
122
124
|
- striuct.gemspec
|
123
125
|
- test/helper.rb
|
124
|
-
- test/test_striuct.rb
|
125
|
-
- test/
|
126
|
-
- test/
|
127
|
-
- test/
|
128
|
-
- test/
|
129
|
-
- test/
|
130
|
-
- test/
|
131
|
-
- test/
|
132
|
-
- test/
|
133
|
-
- test/
|
134
|
-
- test/
|
135
|
-
- test/
|
136
|
-
- test/
|
137
|
-
- test/
|
138
|
-
- test/
|
139
|
-
- test/
|
140
|
-
- test/
|
141
|
-
- test/
|
142
|
-
- test/
|
143
|
-
- test/
|
144
|
-
- test/
|
145
|
-
- test/
|
126
|
+
- test/test_striuct-singleton_class-define.rb
|
127
|
+
- test/test_striuct-subclass-class-cloning.rb
|
128
|
+
- test/test_striuct-subclass-class-close.rb
|
129
|
+
- test/test_striuct-subclass-class-constructor.rb
|
130
|
+
- test/test_striuct-subclass-class-freeze.rb
|
131
|
+
- test/test_striuct-subclass-class-inheritable.rb
|
132
|
+
- test/test_striuct-subclass-class-macro.rb
|
133
|
+
- test/test_striuct-subclass-class-safety_naming.rb
|
134
|
+
- test/test_striuct-subclass-class-validation.rb
|
135
|
+
- test/test_striuct-subclass-feature-alias_member.rb
|
136
|
+
- test/test_striuct-subclass-feature-to_struct.rb
|
137
|
+
- test/test_striuct-subclass-instance-accessor.rb
|
138
|
+
- test/test_striuct-subclass-instance-adjuster.rb
|
139
|
+
- test/test_striuct-subclass-instance-assign.rb
|
140
|
+
- test/test_striuct-subclass-instance-basic.rb
|
141
|
+
- test/test_striuct-subclass-instance-cloning.rb
|
142
|
+
- test/test_striuct-subclass-instance-compare.rb
|
143
|
+
- test/test_striuct-subclass-instance-default_value.rb
|
144
|
+
- test/test_striuct-subclass-instance-enum.rb
|
145
|
+
- test/test_striuct-subclass-instance-freeze.rb
|
146
|
+
- test/test_striuct-subclass-instance-hashlike.rb
|
147
|
+
- test/test_striuct-subclass-instance-keyvalidatable.rb
|
148
|
+
- test/test_striuct-subclass-instance-lock.rb
|
149
|
+
- test/test_striuct-subclass-instance-to_s_family.rb
|
150
|
+
- test/test_striuct-subclass-instance-validation_functional_condition.rb
|
151
|
+
- test/test_striuct-subclass-instance-validation_inference.rb
|
152
|
+
- test/test_striuct-subclass-instance-validation_specific_conditions.rb
|
153
|
+
- test/test_striuct-subclass-instance-validation_with_getter.rb
|
154
|
+
- test/test_striuct-subclass-instance_names.rb
|
155
|
+
- test/test_striuct-version.rb
|
146
156
|
homepage: https://github.com/kachick/striuct
|
147
157
|
licenses: []
|
148
158
|
post_install_message:
|
@@ -169,26 +179,34 @@ specification_version: 3
|
|
169
179
|
summary: Struct++
|
170
180
|
test_files:
|
171
181
|
- test/helper.rb
|
172
|
-
- test/test_striuct.rb
|
173
|
-
- test/
|
174
|
-
- test/
|
175
|
-
- test/
|
176
|
-
- test/
|
177
|
-
- test/
|
178
|
-
- test/
|
179
|
-
- test/
|
180
|
-
- test/
|
181
|
-
- test/
|
182
|
-
- test/
|
183
|
-
- test/
|
184
|
-
- test/
|
185
|
-
- test/
|
186
|
-
- test/
|
187
|
-
- test/
|
188
|
-
- test/
|
189
|
-
- test/
|
190
|
-
- test/
|
191
|
-
- test/
|
192
|
-
- test/
|
193
|
-
- test/
|
182
|
+
- test/test_striuct-singleton_class-define.rb
|
183
|
+
- test/test_striuct-subclass-class-cloning.rb
|
184
|
+
- test/test_striuct-subclass-class-close.rb
|
185
|
+
- test/test_striuct-subclass-class-constructor.rb
|
186
|
+
- test/test_striuct-subclass-class-freeze.rb
|
187
|
+
- test/test_striuct-subclass-class-inheritable.rb
|
188
|
+
- test/test_striuct-subclass-class-macro.rb
|
189
|
+
- test/test_striuct-subclass-class-safety_naming.rb
|
190
|
+
- test/test_striuct-subclass-class-validation.rb
|
191
|
+
- test/test_striuct-subclass-feature-alias_member.rb
|
192
|
+
- test/test_striuct-subclass-feature-to_struct.rb
|
193
|
+
- test/test_striuct-subclass-instance-accessor.rb
|
194
|
+
- test/test_striuct-subclass-instance-adjuster.rb
|
195
|
+
- test/test_striuct-subclass-instance-assign.rb
|
196
|
+
- test/test_striuct-subclass-instance-basic.rb
|
197
|
+
- test/test_striuct-subclass-instance-cloning.rb
|
198
|
+
- test/test_striuct-subclass-instance-compare.rb
|
199
|
+
- test/test_striuct-subclass-instance-default_value.rb
|
200
|
+
- test/test_striuct-subclass-instance-enum.rb
|
201
|
+
- test/test_striuct-subclass-instance-freeze.rb
|
202
|
+
- test/test_striuct-subclass-instance-hashlike.rb
|
203
|
+
- test/test_striuct-subclass-instance-keyvalidatable.rb
|
204
|
+
- test/test_striuct-subclass-instance-lock.rb
|
205
|
+
- test/test_striuct-subclass-instance-to_s_family.rb
|
206
|
+
- test/test_striuct-subclass-instance-validation_functional_condition.rb
|
207
|
+
- test/test_striuct-subclass-instance-validation_inference.rb
|
208
|
+
- test/test_striuct-subclass-instance-validation_specific_conditions.rb
|
209
|
+
- test/test_striuct-subclass-instance-validation_with_getter.rb
|
210
|
+
- test/test_striuct-subclass-instance_names.rb
|
211
|
+
- test/test_striuct-version.rb
|
194
212
|
has_rdoc:
|
@@ -1,22 +0,0 @@
|
|
1
|
-
class Striuct; module InstanceMethods
|
2
|
-
|
3
|
-
class << self
|
4
|
-
|
5
|
-
private
|
6
|
-
|
7
|
-
# @param [Symbol, String] name
|
8
|
-
def delegate_class_method(name)
|
9
|
-
define_method name do |*args, &block|
|
10
|
-
self.class.__send__ name, *args, &block
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# @param [Symbol, String] name
|
15
|
-
# @param [Symbol, String] names
|
16
|
-
def delegate_class_methods(name, *names)
|
17
|
-
[name, *names].each{|_name|delegate_class_method _name}
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
end; end
|
data/test/test_striuct.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
$VERBOSE = true
|
2
|
-
require_relative 'helper'
|
3
|
-
|
4
|
-
require_relative 'test_striuct_define'
|
5
|
-
require_relative 'test_striuct_subclass_adjuster'
|
6
|
-
require_relative 'test_striuct_subclass_alias_member'
|
7
|
-
require_relative 'test_striuct_subclass_assign'
|
8
|
-
require_relative 'test_striuct_subclass_classlock'
|
9
|
-
require_relative 'test_striuct_subclass_classmethods'
|
10
|
-
require_relative 'test_striuct_subclass_cloning'
|
11
|
-
require_relative 'test_striuct_subclass_default_value'
|
12
|
-
require_relative 'test_striuct_subclass_for_pairs'
|
13
|
-
require_relative 'test_striuct_subclass_freeze'
|
14
|
-
require_relative 'test_striuct_subclass_functional_condition'
|
15
|
-
require_relative 'test_striuct_subclass_getter_validation'
|
16
|
-
require_relative 'test_striuct_subclass_hashlike'
|
17
|
-
require_relative 'test_striuct_subclass_inference'
|
18
|
-
require_relative 'test_striuct_subclass_inheritable'
|
19
|
-
require_relative 'test_striuct_subclass_instance'
|
20
|
-
require_relative 'test_striuct_subclass_lock'
|
21
|
-
require_relative 'test_striuct_subclass_safetynaming'
|
22
|
-
require_relative 'test_striuct_subclass_specific_conditions'
|
23
|
-
require_relative 'test_striuct_subclass_to_struct'
|
24
|
-
require_relative 'test_striuct_version'
|
@@ -1,36 +0,0 @@
|
|
1
|
-
$VERBOSE = true
|
2
|
-
require_relative 'helper'
|
3
|
-
|
4
|
-
class TestStriuctCloning < Test::Unit::TestCase
|
5
|
-
|
6
|
-
class Sth < Striuct.new
|
7
|
-
member :sth
|
8
|
-
end
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@sth = Sth.new
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_clone
|
15
|
-
sth2 = @sth.dup
|
16
|
-
@sth.sth = 1
|
17
|
-
assert_equal false, (@sth.sth == sth2.sth)
|
18
|
-
|
19
|
-
sth2 = @sth.clone
|
20
|
-
@sth.sth = 2
|
21
|
-
assert_equal false, (@sth.sth == sth2.sth)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_class_dup
|
25
|
-
klass = Sth.dup
|
26
|
-
Sth.__send__ :member, :dummy1
|
27
|
-
assert_equal false, klass.member?(:dummy1)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_class_clone
|
31
|
-
klass = Sth.clone
|
32
|
-
Sth.__send__ :member, :dummy2
|
33
|
-
assert_equal false, klass.member?(:dummy2)
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class TestStriuctForPairs < Test::Unit::TestCase
|
4
|
-
|
5
|
-
Sth = Striuct.new :foo, :bar, :hoge
|
6
|
-
SampleStruct = Struct.new :foo, :bar, :hoge
|
7
|
-
|
8
|
-
def test_for_pairs_from_hash
|
9
|
-
sth = Sth[hoge: 7, foo: 8]
|
10
|
-
|
11
|
-
assert_equal [8, nil, 7], sth.values
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_for_pairs_from_struct
|
15
|
-
sth = Sth[SampleStruct.new 8, nil, 7]
|
16
|
-
|
17
|
-
assert_equal [8, nil, 7], sth.values
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|