striuct 0.6.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/lib/striuct/structs.rb
CHANGED
metadata
CHANGED
@@ -1,163 +1,84 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: striuct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenichi Kamiya
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: validation
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.1'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0.1'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: optionalargument
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0.3'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0.3'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: keyvalidatable
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: test-unit
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 3.2.6
|
62
|
-
- - "<"
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '4'
|
65
|
-
type: :development
|
66
|
-
prerelease: false
|
67
|
-
version_requirements: !ruby/object:Gem::Requirement
|
68
16
|
requirements:
|
69
17
|
- - ">="
|
70
18
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
19
|
+
version: 0.2.2
|
72
20
|
- - "<"
|
73
21
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
|
76
|
-
name: yard
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: 0.9.11
|
82
|
-
- - "<"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '2.0'
|
85
|
-
type: :development
|
22
|
+
version: 0.3.0
|
23
|
+
type: :runtime
|
86
24
|
prerelease: false
|
87
25
|
version_requirements: !ruby/object:Gem::Requirement
|
88
26
|
requirements:
|
89
27
|
- - ">="
|
90
28
|
- !ruby/object:Gem::Version
|
91
|
-
version: 0.
|
29
|
+
version: 0.2.2
|
92
30
|
- - "<"
|
93
31
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
32
|
+
version: 0.3.0
|
95
33
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
34
|
+
name: optionalargument
|
97
35
|
requirement: !ruby/object:Gem::Requirement
|
98
36
|
requirements:
|
99
37
|
- - ">="
|
100
38
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
39
|
+
version: 0.5.1
|
102
40
|
- - "<"
|
103
41
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
105
|
-
type: :
|
42
|
+
version: 0.6.0
|
43
|
+
type: :runtime
|
106
44
|
prerelease: false
|
107
45
|
version_requirements: !ruby/object:Gem::Requirement
|
108
46
|
requirements:
|
109
47
|
- - ">="
|
110
48
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
49
|
+
version: 0.5.1
|
112
50
|
- - "<"
|
113
51
|
- !ruby/object:Gem::Version
|
114
|
-
version:
|
52
|
+
version: 0.6.0
|
115
53
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
54
|
+
name: keyvalidatable
|
117
55
|
requirement: !ruby/object:Gem::Requirement
|
118
56
|
requirements:
|
119
57
|
- - ">="
|
120
58
|
- !ruby/object:Gem::Version
|
121
|
-
version:
|
59
|
+
version: 0.2.0
|
122
60
|
- - "<"
|
123
61
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
125
|
-
type: :
|
62
|
+
version: 0.3.0
|
63
|
+
type: :runtime
|
126
64
|
prerelease: false
|
127
65
|
version_requirements: !ruby/object:Gem::Requirement
|
128
66
|
requirements:
|
129
67
|
- - ">="
|
130
68
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
69
|
+
version: 0.2.0
|
132
70
|
- - "<"
|
133
71
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
135
|
-
description:
|
136
|
-
Struct++ library.
|
137
|
-
|
138
|
-
---
|
139
|
-
|
140
|
-
Validatable, Inheritable, Member Aliasing,
|
141
|
-
Conflict Management, Default Value, Divide nil with unassign,
|
142
|
-
Lock setter of each member, Hash flendly API, ... And more Struct++ features :)
|
72
|
+
version: 0.3.0
|
73
|
+
description: " Struct + validation + inheritable + default_value + etc...\n"
|
143
74
|
email:
|
144
75
|
- kachick1+ruby@gmail.com
|
145
76
|
executables: []
|
146
77
|
extensions: []
|
147
78
|
extra_rdoc_files: []
|
148
79
|
files:
|
149
|
-
-
|
150
|
-
- ".travis.yml"
|
151
|
-
- ".yardopts"
|
152
|
-
- Gemfile
|
153
|
-
- MIT-LICENSE
|
80
|
+
- MIT-LICENSE.txt
|
154
81
|
- README.md
|
155
|
-
- Rakefile
|
156
|
-
- benchmark/basics.rb
|
157
|
-
- example/README.rb
|
158
|
-
- example/example1.rb
|
159
|
-
- example/example2.rb
|
160
|
-
- example/see_trace.rb
|
161
82
|
- lib/striuct.rb
|
162
83
|
- lib/striuct/classmethods/README.md
|
163
84
|
- lib/striuct/classmethods/adjustment.rb
|
@@ -198,45 +119,15 @@ files:
|
|
198
119
|
- lib/striuct/requirements.rb
|
199
120
|
- lib/striuct/singleton_class.rb
|
200
121
|
- lib/striuct/structs.rb
|
201
|
-
- striuct.gemspec
|
202
|
-
- test/helper.rb
|
203
|
-
- test/test_sglc-constructor.rb
|
204
|
-
- test/test_subc-c-add_members.rb
|
205
|
-
- test/test_subc-c-close_member.rb
|
206
|
-
- test/test_subc-c-constructor.rb
|
207
|
-
- test/test_subc-c-copy.rb
|
208
|
-
- test/test_subc-c-freeze.rb
|
209
|
-
- test/test_subc-c-inheritable.rb
|
210
|
-
- test/test_subc-c-safety_naming.rb
|
211
|
-
- test/test_subc-f-alias_member.rb
|
212
|
-
- test/test_subc-f-enum.rb
|
213
|
-
- test/test_subc-f-predicate.rb
|
214
|
-
- test/test_subc-f-to_struct.rb
|
215
|
-
- test/test_subc-f-validation_util.rb
|
216
|
-
- test/test_subc-f_debug.rb
|
217
|
-
- test/test_subc-f_name.rb
|
218
|
-
- test/test_subc-i-accessor.rb
|
219
|
-
- test/test_subc-i-adjuster.rb
|
220
|
-
- test/test_subc-i-assign.rb
|
221
|
-
- test/test_subc-i-basic.rb
|
222
|
-
- test/test_subc-i-cast.rb
|
223
|
-
- test/test_subc-i-compare.rb
|
224
|
-
- test/test_subc-i-copy.rb
|
225
|
-
- test/test_subc-i-default_value.rb
|
226
|
-
- test/test_subc-i-freeze.rb
|
227
|
-
- test/test_subc-i-hashlike.rb
|
228
|
-
- test/test_subc-i-keyvalidatable.rb
|
229
|
-
- test/test_subc-i-lock.rb
|
230
|
-
- test/test_subc-i-must.rb
|
231
|
-
- test/test_subc-i-to_s_family.rb
|
232
|
-
- test/test_subc-i-validation_specific_conditions.rb
|
233
|
-
- test/test_subc-i-validation_with_getter.rb
|
234
|
-
- test/test_version.rb
|
235
122
|
homepage: https://github.com/kachick/striuct
|
236
123
|
licenses:
|
237
124
|
- MIT
|
238
|
-
metadata:
|
239
|
-
|
125
|
+
metadata:
|
126
|
+
documentation_uri: https://kachick.github.io/striuct/
|
127
|
+
homepage_uri: https://github.com/kachick/striuct
|
128
|
+
source_code_uri: https://github.com/kachick/striuct
|
129
|
+
bug_tracker_uri: https://github.com/kachick/striuct/issues
|
130
|
+
post_install_message:
|
240
131
|
rdoc_options: []
|
241
132
|
require_paths:
|
242
133
|
- lib
|
@@ -244,51 +135,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
244
135
|
requirements:
|
245
136
|
- - ">="
|
246
137
|
- !ruby/object:Gem::Version
|
247
|
-
version:
|
138
|
+
version: 2.6.0
|
248
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
249
140
|
requirements:
|
250
141
|
- - ">="
|
251
142
|
- !ruby/object:Gem::Version
|
252
143
|
version: '0'
|
253
144
|
requirements: []
|
254
|
-
|
255
|
-
|
256
|
-
signing_key:
|
145
|
+
rubygems_version: 3.1.4
|
146
|
+
signing_key:
|
257
147
|
specification_version: 4
|
258
|
-
summary: Struct++
|
259
|
-
|
260
|
-
Hash flendly API, ... And more Struct++ features :)
|
261
|
-
test_files:
|
262
|
-
- test/helper.rb
|
263
|
-
- test/test_sglc-constructor.rb
|
264
|
-
- test/test_subc-c-add_members.rb
|
265
|
-
- test/test_subc-c-close_member.rb
|
266
|
-
- test/test_subc-c-constructor.rb
|
267
|
-
- test/test_subc-c-copy.rb
|
268
|
-
- test/test_subc-c-freeze.rb
|
269
|
-
- test/test_subc-c-inheritable.rb
|
270
|
-
- test/test_subc-c-safety_naming.rb
|
271
|
-
- test/test_subc-f-alias_member.rb
|
272
|
-
- test/test_subc-f-enum.rb
|
273
|
-
- test/test_subc-f-predicate.rb
|
274
|
-
- test/test_subc-f-to_struct.rb
|
275
|
-
- test/test_subc-f-validation_util.rb
|
276
|
-
- test/test_subc-f_debug.rb
|
277
|
-
- test/test_subc-f_name.rb
|
278
|
-
- test/test_subc-i-accessor.rb
|
279
|
-
- test/test_subc-i-adjuster.rb
|
280
|
-
- test/test_subc-i-assign.rb
|
281
|
-
- test/test_subc-i-basic.rb
|
282
|
-
- test/test_subc-i-cast.rb
|
283
|
-
- test/test_subc-i-compare.rb
|
284
|
-
- test/test_subc-i-copy.rb
|
285
|
-
- test/test_subc-i-default_value.rb
|
286
|
-
- test/test_subc-i-freeze.rb
|
287
|
-
- test/test_subc-i-hashlike.rb
|
288
|
-
- test/test_subc-i-keyvalidatable.rb
|
289
|
-
- test/test_subc-i-lock.rb
|
290
|
-
- test/test_subc-i-must.rb
|
291
|
-
- test/test_subc-i-to_s_family.rb
|
292
|
-
- test/test_subc-i-validation_specific_conditions.rb
|
293
|
-
- test/test_subc-i-validation_with_getter.rb
|
294
|
-
- test/test_version.rb
|
148
|
+
summary: Struct++
|
149
|
+
test_files: []
|
data/.gitignore
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
.bundle
|
4
|
-
.config
|
5
|
-
coverage
|
6
|
-
coverage.data
|
7
|
-
InstalledFiles
|
8
|
-
lib/bundler/man
|
9
|
-
pkg
|
10
|
-
rdoc
|
11
|
-
spec/reports
|
12
|
-
test/tmp
|
13
|
-
test/version_tmp
|
14
|
-
tmp
|
15
|
-
|
16
|
-
# bundler
|
17
|
-
vendor/
|
18
|
-
|
19
|
-
# YARD artifacts
|
20
|
-
.yardoc
|
21
|
-
_yardoc
|
22
|
-
doc/
|
23
|
-
|
24
|
-
# tmp-old
|
25
|
-
.old
|
26
|
-
|
27
|
-
# editor
|
28
|
-
*~
|
29
|
-
.redcar
|
30
|
-
|
31
|
-
# other
|
32
|
-
*.lock
|
33
|
-
*.bak
|
34
|
-
tool/
|
35
|
-
*\#*
|
data/.travis.yml
DELETED
data/.yardopts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--readme README.md --private lib/**/*.rb --exclude attributes|hashdeepdupulicatable - MIT-LICENSE
|
data/Gemfile
DELETED
data/MIT-LICENSE
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
(The MIT X11 License)
|
2
|
-
|
3
|
-
Copyright (c) 2011 Kenichi Kamiya
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
-
a copy of this software and associated documentation files (the
|
7
|
-
'Software'), to deal in the Software without restriction, including
|
8
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
-
permit persons to whom the Software is furnished to do so, subject to
|
11
|
-
the following conditions:
|
12
|
-
|
13
|
-
The above copyright notice and this permission notice shall be
|
14
|
-
included in all copies or substantial portions of the Software.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
17
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19
|
-
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20
|
-
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21
|
-
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22
|
-
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
DELETED
data/benchmark/basics.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
#/usr/bin/ruby -w
|
2
|
-
|
3
|
-
require 'benchmark'
|
4
|
-
require_relative '../lib/striuct'
|
5
|
-
|
6
|
-
XStruct = Struct.new :any, :no_use1, :no_use2
|
7
|
-
|
8
|
-
XStriuct = Striuct.define do
|
9
|
-
member :any
|
10
|
-
member :int, Integer
|
11
|
-
member :truthy, ->v{v}
|
12
|
-
end
|
13
|
-
|
14
|
-
xstruct = XStruct.new
|
15
|
-
xstriuct = XStriuct.new
|
16
|
-
|
17
|
-
TIMES = 100000
|
18
|
-
OBJ = 123
|
19
|
-
|
20
|
-
Benchmark.bm do |bm|
|
21
|
-
bm.report 'Struct(equal Noguard): Setter' do
|
22
|
-
TIMES.times do
|
23
|
-
xstruct.any = OBJ
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
bm.report 'Struct: Reader' do
|
28
|
-
TIMES.times do
|
29
|
-
xstruct.any
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
bm.report 'Striuct(when Noguard): Setter' do
|
34
|
-
TIMES.times do
|
35
|
-
xstriuct.any = OBJ
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
bm.report 'Striuct(guard under class): Setter' do
|
40
|
-
TIMES.times do
|
41
|
-
xstriuct.int = OBJ
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
bm.report 'Striuct(guard under function)' do
|
46
|
-
TIMES.times do
|
47
|
-
xstriuct.truthy = OBJ
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
bm.report 'Striuct: Reader' do
|
52
|
-
TIMES.times do
|
53
|
-
xstriuct.any
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|