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
@@ -1,14 +1,16 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
class Striuct
|
4
|
+
module ClassMethods
|
5
|
+
# @group Length/Size
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
alias_method :size, :length
|
7
|
+
# @return [Integer]
|
8
|
+
def length
|
9
|
+
@autonyms.length
|
10
|
+
end
|
11
11
|
|
12
|
-
|
12
|
+
alias_method :size, :length
|
13
13
|
|
14
|
-
|
14
|
+
# @endgroup
|
15
|
+
end
|
16
|
+
end
|
@@ -1,116 +1,120 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
_attributes_for(autonym).
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Striuct
|
4
|
+
module ClassMethods
|
5
|
+
# @group Macro for Member Definition
|
6
|
+
|
7
|
+
ANYTHING = ::Validation::Condition.anything
|
8
|
+
|
9
|
+
# @return [Class]
|
10
|
+
ADD_MEMBER_OptArg = OptionalArgument.define {
|
11
|
+
opt(:default_value, aliases: [:default])
|
12
|
+
opt(:default_proc, aliases: [:lazy_default])
|
13
|
+
conflict(:default_value, :default_proc)
|
14
|
+
opt(:must, default: false)
|
15
|
+
opt(:setter_validation, aliases: [:writer_validation], default: true)
|
16
|
+
opt(:getter_validation, aliases: [:reader_validation], default: false)
|
17
|
+
}
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
# @param [Symbol, String, #to_sym] autonym
|
22
|
+
# @param [#===, Proc, Method] condition
|
23
|
+
# @param [Hash] options
|
24
|
+
# @option options [BasicObject] :default
|
25
|
+
# @option options [Proc] :default_proc
|
26
|
+
# @option options [Boolean] :must
|
27
|
+
# @option options [Boolean] :reader_validation
|
28
|
+
# @option options [Boolean] :getter_validation
|
29
|
+
# @option options [Boolean] :writer_validation
|
30
|
+
# @option options [Boolean] :setter_validation
|
31
|
+
# @return [nil]
|
32
|
+
def add_member(autonym, condition=anything, options={}, &adjuster)
|
33
|
+
_check_frozen
|
34
|
+
_check_closed
|
35
|
+
|
36
|
+
options = ADD_MEMBER_OptArg.parse(options)
|
37
|
+
autonym = autonym.to_sym # First definition for an autonym
|
38
|
+
|
39
|
+
raise ArgumentError, %Q!already exist name "#{autonym}"! if member?(autonym)
|
40
|
+
|
41
|
+
_check_safety_naming(autonym)
|
42
|
+
_add_autonym(autonym)
|
43
|
+
|
44
|
+
_attributes_for(autonym).safety_setter = !!options.setter_validation
|
45
|
+
_attributes_for(autonym).safety_getter = !!options.getter_validation
|
46
|
+
|
47
|
+
if options.must
|
48
|
+
_attributes_for(autonym).must = true
|
49
|
+
end
|
50
|
+
|
51
|
+
_def_getter(autonym)
|
52
|
+
_def_setter(autonym, condition, &adjuster)
|
53
|
+
|
54
|
+
case
|
55
|
+
when options.default_value?
|
56
|
+
set_default_value(autonym, options.default_value)
|
57
|
+
when options.default_proc?
|
58
|
+
set_default_value(autonym, &options.default_proc)
|
59
|
+
end
|
60
|
+
|
61
|
+
nil
|
46
62
|
end
|
47
63
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
64
|
+
alias_method :member, :add_member
|
65
|
+
|
66
|
+
# @param [Symbol, String, #to_sym] autonym
|
67
|
+
# @param [Symbol, String, #to_sym] autonyms
|
68
|
+
# @return [nil]
|
69
|
+
def add_members(autonym, *autonyms)
|
70
|
+
_check_frozen
|
71
|
+
_check_closed
|
72
|
+
|
73
|
+
[autonym, *autonyms].each { |name| add_member(name) }
|
74
|
+
nil
|
56
75
|
end
|
57
|
-
|
58
|
-
nil
|
59
|
-
end
|
60
76
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
77
|
+
# @param [Symbol, String, #to_sym] aliased
|
78
|
+
# @param [Symbol, String, #to_sym] autonym
|
79
|
+
# @return [nil]
|
80
|
+
def alias_member(aliased, autonym)
|
81
|
+
_check_frozen
|
82
|
+
_check_closed
|
83
|
+
autonym = autonym_for_member(autonym)
|
84
|
+
aliased = aliased.to_sym
|
85
|
+
raise ArgumentError, %Q!already exist name "#{aliased}"! if member?(aliased)
|
86
|
+
|
87
|
+
_check_safety_naming(aliased)
|
88
|
+
|
89
|
+
alias_method(aliased, autonym)
|
90
|
+
alias_method(:"#{aliased}=", :"#{autonym}=")
|
91
|
+
@aliases[aliased] = autonym
|
92
|
+
nil
|
93
|
+
end
|
73
94
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
# @param [Symbol, String, #to_sym] name
|
92
|
-
# @return [nil]
|
93
|
-
def set_default_value(name, value=nil, &block)
|
94
|
-
_check_frozen
|
95
|
-
_check_closed
|
96
|
-
autonym = autonym_for_member name
|
97
|
-
raise "already settled default value for #{name}" if with_default? autonym
|
98
|
-
|
99
|
-
if block_given?
|
100
|
-
unless value.nil?
|
101
|
-
raise ArgumentError, 'can not use default-value with default-proc'
|
95
|
+
# @param [Symbol, String, #to_sym] name
|
96
|
+
# @return [nil]
|
97
|
+
def set_default_value(name, value=nil, &block)
|
98
|
+
_check_frozen
|
99
|
+
_check_closed
|
100
|
+
autonym = autonym_for_member(name)
|
101
|
+
raise "already settled default value for #{name}" if with_default?(autonym)
|
102
|
+
|
103
|
+
if block
|
104
|
+
unless value.nil?
|
105
|
+
raise ArgumentError, 'can not use default-value with default-proc'
|
106
|
+
end
|
107
|
+
|
108
|
+
_attributes_for(autonym).set_default(block, :lazy)
|
109
|
+
else
|
110
|
+
_attributes_for(autonym).set_default(value, :value)
|
102
111
|
end
|
103
112
|
|
104
|
-
|
105
|
-
else
|
106
|
-
_attributes_for(autonym).set_default value, :value
|
113
|
+
nil
|
107
114
|
end
|
108
|
-
|
109
|
-
nil
|
110
|
-
end
|
111
|
-
|
112
|
-
alias_method :default, :set_default_value
|
113
115
|
|
114
|
-
|
116
|
+
alias_method :default, :set_default_value
|
115
117
|
|
116
|
-
|
118
|
+
# @endgroup
|
119
|
+
end
|
120
|
+
end
|
@@ -1,75 +1,79 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
class Striuct
|
4
|
+
module ClassMethods
|
5
|
+
# @group Named
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
# @return [Array<Symbol>]
|
8
|
+
def autonyms
|
9
|
+
@autonyms.dup
|
10
|
+
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
-
# @return [Array<Symbol>]
|
13
|
-
def all_members
|
14
|
-
@autonyms + @aliases.keys
|
15
|
-
end
|
16
|
-
|
17
|
-
# @param [Symbol, String, #to_sym] als
|
18
|
-
# @return [Symbol]
|
19
|
-
def autonym_for_alias(als)
|
20
|
-
@aliases.fetch als.to_sym
|
21
|
-
rescue NoMethodError
|
22
|
-
raise TypeError
|
23
|
-
rescue KeyError
|
24
|
-
raise NameError
|
25
|
-
end
|
12
|
+
alias_method :members, :autonyms
|
26
13
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
name = name.to_sym
|
32
|
-
|
33
|
-
@autonyms.include?(name) ? name : autonym_for_alias(name)
|
34
|
-
end
|
14
|
+
# @return [Array<Symbol>]
|
15
|
+
def all_members
|
16
|
+
@autonyms + @aliases.keys
|
17
|
+
end
|
35
18
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
19
|
+
# @param [Symbol, String, #to_sym] als
|
20
|
+
# @return [Symbol]
|
21
|
+
def autonym_for_alias(als)
|
22
|
+
@aliases.fetch(als.to_sym)
|
23
|
+
rescue NoMethodError
|
24
|
+
raise TypeError
|
25
|
+
rescue KeyError
|
26
|
+
raise NameError
|
27
|
+
end
|
41
28
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
rescue NameError, IndexError, TypeError
|
47
|
-
raise KeyError
|
48
|
-
end
|
29
|
+
# @param [Symbol, String, #to_sym] name - autonym / aliased
|
30
|
+
# @return [Symbol]
|
31
|
+
def autonym_for_member(name)
|
32
|
+
raise TypeError unless name.respond_to?(:to_sym)
|
49
33
|
|
50
|
-
|
51
|
-
# @return [Array<Symbol>]
|
52
|
-
def aliases_for_autonym(autonym)
|
53
|
-
raise TypeError unless autonym.respond_to?(:to_sym)
|
54
|
-
autonym = autonym.to_sym
|
55
|
-
raise NameError unless with_aliases? autonym
|
34
|
+
name = name.to_sym
|
56
35
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# @return [Hash] alias => autonym
|
61
|
-
def aliases
|
62
|
-
@aliases.dup
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
36
|
+
@autonyms.include?(name) ? name : autonym_for_alias(name)
|
37
|
+
end
|
66
38
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
# @endgroup
|
39
|
+
# @param [Index, #to_int] index
|
40
|
+
# @return [Symbol] autonym
|
41
|
+
def autonym_for_index(index)
|
42
|
+
@autonyms.fetch(index)
|
43
|
+
end
|
74
44
|
|
75
|
-
|
45
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
46
|
+
# @return [Symbol] autonym
|
47
|
+
def autonym_for_key(key)
|
48
|
+
key.respond_to?(:to_sym) ? autonym_for_member(key) : autonym_for_index(key)
|
49
|
+
rescue NameError, IndexError, TypeError
|
50
|
+
raise KeyError
|
51
|
+
end
|
52
|
+
|
53
|
+
# @param [Symbol, String, #to_sym] autonym
|
54
|
+
# @return [Array<Symbol>]
|
55
|
+
def aliases_for_autonym(autonym)
|
56
|
+
raise TypeError unless autonym.respond_to?(:to_sym)
|
57
|
+
|
58
|
+
autonym = autonym.to_sym
|
59
|
+
raise NameError unless with_aliases?(autonym)
|
60
|
+
|
61
|
+
@aliases.select { |_als, aut| autonym == aut }.keys
|
62
|
+
end
|
63
|
+
|
64
|
+
# @return [Hash] alias => autonym
|
65
|
+
def aliases
|
66
|
+
@aliases.dup
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
# for direct access inner data from own instance
|
72
|
+
# @return [Hash] alias => autonym
|
73
|
+
def _autonyms
|
74
|
+
@autonyms
|
75
|
+
end
|
76
|
+
|
77
|
+
# @endgroup
|
78
|
+
end
|
79
|
+
end
|
@@ -1,130 +1,132 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
@
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Striuct
|
4
|
+
module ClassMethods
|
5
|
+
# @group Basic Predicate
|
6
|
+
|
7
|
+
# @param [Symbol, String, #to_sym] name
|
8
|
+
def has_autonym?(name)
|
9
|
+
name = name.to_sym
|
10
|
+
rescue NoMethodError
|
11
|
+
false
|
12
|
+
else
|
13
|
+
@autonyms.include?(name)
|
14
|
+
end
|
15
|
+
|
16
|
+
alias_method :autonym?, :has_autonym?
|
17
|
+
|
18
|
+
# @param [Symbol, String, #to_sym] als
|
19
|
+
def has_alias?(als)
|
20
|
+
als = als.to_sym
|
21
|
+
rescue NoMethodError
|
22
|
+
false
|
23
|
+
else
|
24
|
+
@aliases.key?(als)
|
25
|
+
end
|
26
|
+
|
27
|
+
alias_method :alias?, :has_alias?
|
28
|
+
alias_method :aliased?, :has_alias? # obsolete
|
29
|
+
|
30
|
+
# @param [Symbol, String, #to_sym] name
|
31
|
+
def has_member?(name)
|
32
|
+
autonym_for_member(name)
|
33
|
+
rescue Exception
|
34
|
+
false
|
35
|
+
else
|
36
|
+
true
|
37
|
+
end
|
38
|
+
|
39
|
+
alias_method :member?, :has_member?
|
40
|
+
|
41
|
+
# @param [Integer, #to_int] index
|
42
|
+
def has_index?(index)
|
43
|
+
@autonyms.fetch(index)
|
44
|
+
rescue Exception
|
45
|
+
false
|
46
|
+
else
|
47
|
+
true
|
48
|
+
end
|
49
|
+
|
50
|
+
alias_method :index?, :has_index?
|
51
|
+
|
52
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
53
|
+
def has_key?(key)
|
54
|
+
has_member?(key) || has_index?(key)
|
55
|
+
end
|
56
|
+
|
57
|
+
alias_method :key?, :has_key?
|
58
|
+
|
59
|
+
# @param [Symbol, String, #to_sym] autonym
|
60
|
+
def with_aliases?(autonym)
|
61
|
+
autonym = autonym.to_sym
|
62
|
+
rescue NoMethodError
|
63
|
+
false
|
64
|
+
else
|
65
|
+
@aliases.value?(autonym)
|
66
|
+
end
|
67
|
+
|
68
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
69
|
+
def with_default?(key)
|
70
|
+
autonym = autonym_for_key(key)
|
71
|
+
rescue Exception
|
72
|
+
false
|
73
|
+
else
|
74
|
+
_attributes_for(autonym).with_default?
|
75
|
+
end
|
76
|
+
|
77
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
78
|
+
def with_condition?(key)
|
79
|
+
autonym = autonym_for_key(key)
|
80
|
+
rescue Exception
|
81
|
+
false
|
82
|
+
else
|
83
|
+
_attributes_for(autonym).with_condition?
|
84
|
+
end
|
85
|
+
|
86
|
+
alias_method :restrict?, :with_condition?
|
87
|
+
|
88
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
89
|
+
def with_must?(key)
|
90
|
+
autonym = autonym_for_key(key)
|
91
|
+
rescue Exception
|
92
|
+
false
|
93
|
+
else
|
94
|
+
_attributes_for(autonym).with_must?
|
95
|
+
end
|
96
|
+
|
97
|
+
alias_method :must?, :with_must?
|
98
|
+
|
99
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
100
|
+
def with_safety_getter?(key)
|
101
|
+
autonym = autonym_for_key(key)
|
102
|
+
rescue Exception
|
103
|
+
false
|
104
|
+
else
|
105
|
+
_attributes_for(autonym).with_safety_getter?
|
106
|
+
end
|
107
|
+
|
108
|
+
alias_method :with_safety_reader?, :with_safety_getter?
|
109
|
+
|
110
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
111
|
+
def with_safety_setter?(key)
|
112
|
+
autonym = autonym_for_key(key)
|
113
|
+
rescue Exception
|
114
|
+
false
|
115
|
+
else
|
116
|
+
_attributes_for(autonym).with_safety_setter?
|
117
|
+
end
|
118
|
+
|
119
|
+
alias_method :with_safety_writer?, :with_safety_setter?
|
120
|
+
|
121
|
+
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
122
|
+
def with_adjuster?(key)
|
123
|
+
autonym = autonym_for_key(key)
|
124
|
+
rescue Exception
|
125
|
+
false
|
126
|
+
else
|
127
|
+
_attributes_for(autonym).with_adjuster?
|
128
|
+
end
|
129
|
+
|
130
|
+
# @endgroup
|
64
131
|
end
|
65
|
-
|
66
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
67
|
-
def with_default?(key)
|
68
|
-
autonym = autonym_for_key key
|
69
|
-
rescue Exception
|
70
|
-
false
|
71
|
-
else
|
72
|
-
_attributes_for(autonym).with_default?
|
73
|
-
end
|
74
|
-
|
75
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
76
|
-
def with_condition?(key)
|
77
|
-
autonym = autonym_for_key key
|
78
|
-
rescue Exception
|
79
|
-
false
|
80
|
-
else
|
81
|
-
_attributes_for(autonym).with_condition?
|
82
|
-
end
|
83
|
-
|
84
|
-
alias_method :restrict?, :with_condition?
|
85
|
-
|
86
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
87
|
-
def with_must?(key)
|
88
|
-
autonym = autonym_for_key key
|
89
|
-
rescue Exception
|
90
|
-
false
|
91
|
-
else
|
92
|
-
_attributes_for(autonym).with_must?
|
93
|
-
end
|
94
|
-
|
95
|
-
alias_method :must?, :with_must?
|
96
|
-
|
97
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
98
|
-
def with_safety_getter?(key)
|
99
|
-
autonym = autonym_for_key key
|
100
|
-
rescue Exception
|
101
|
-
false
|
102
|
-
else
|
103
|
-
_attributes_for(autonym).with_safety_getter?
|
104
|
-
end
|
105
|
-
|
106
|
-
alias_method :with_safety_reader?, :with_safety_getter?
|
107
|
-
|
108
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
109
|
-
def with_safety_setter?(key)
|
110
|
-
autonym = autonym_for_key key
|
111
|
-
rescue Exception
|
112
|
-
false
|
113
|
-
else
|
114
|
-
_attributes_for(autonym).with_safety_setter?
|
115
|
-
end
|
116
|
-
|
117
|
-
alias_method :with_safety_writer?, :with_safety_setter?
|
118
|
-
|
119
|
-
# @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
|
120
|
-
def with_adjuster?(key)
|
121
|
-
autonym = autonym_for_key key
|
122
|
-
rescue Exception
|
123
|
-
false
|
124
|
-
else
|
125
|
-
_attributes_for(autonym).with_adjuster?
|
126
|
-
end
|
127
|
-
|
128
|
-
# @endgroup
|
129
|
-
|
130
|
-
end; end
|
132
|
+
end
|