striuct 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE.txt +21 -0
  3. data/README.md +19 -39
  4. data/lib/striuct.rb +3 -3
  5. data/lib/striuct/classmethods/README.md +2 -2
  6. data/lib/striuct/classmethods/adjustment.rb +15 -13
  7. data/lib/striuct/classmethods/attributes.rb +94 -92
  8. data/lib/striuct/classmethods/conflict_management.rb +109 -106
  9. data/lib/striuct/classmethods/constructor.rb +47 -54
  10. data/lib/striuct/classmethods/copy.rb +45 -43
  11. data/lib/striuct/classmethods/default.rb +23 -21
  12. data/lib/striuct/classmethods/enum.rb +46 -44
  13. data/lib/striuct/classmethods/fix.rb +23 -21
  14. data/lib/striuct/classmethods/hashdeepdupulicatable.rb +15 -15
  15. data/lib/striuct/classmethods/inner.rb +57 -55
  16. data/lib/striuct/classmethods/length.rb +12 -10
  17. data/lib/striuct/classmethods/macro.rb +110 -106
  18. data/lib/striuct/classmethods/names.rb +69 -65
  19. data/lib/striuct/classmethods/predicate.rb +131 -129
  20. data/lib/striuct/classmethods/requirements.rb +3 -1
  21. data/lib/striuct/classmethods/to_struct.rb +21 -18
  22. data/lib/striuct/classmethods/validation.rb +15 -13
  23. data/lib/striuct/instancemethods/README.md +2 -2
  24. data/lib/striuct/instancemethods/assign.rb +29 -27
  25. data/lib/striuct/instancemethods/cast.rb +28 -26
  26. data/lib/striuct/instancemethods/compare.rb +26 -24
  27. data/lib/striuct/instancemethods/default.rb +31 -29
  28. data/lib/striuct/instancemethods/delegate_class_methods.rb +35 -33
  29. data/lib/striuct/instancemethods/enum.rb +86 -84
  30. data/lib/striuct/instancemethods/getter.rb +39 -37
  31. data/lib/striuct/instancemethods/hashy.rb +99 -97
  32. data/lib/striuct/instancemethods/keyvalidatable.rb +8 -6
  33. data/lib/striuct/instancemethods/lock.rb +46 -44
  34. data/lib/striuct/instancemethods/object.rb +50 -48
  35. data/lib/striuct/instancemethods/requirements.rb +11 -9
  36. data/lib/striuct/instancemethods/safety.rb +11 -9
  37. data/lib/striuct/instancemethods/setter.rb +46 -45
  38. data/lib/striuct/instancemethods/to_s.rb +39 -37
  39. data/lib/striuct/instancemethods/validation.rb +31 -29
  40. data/lib/striuct/instancemethods/values.rb +50 -48
  41. data/lib/striuct/requirements.rb +3 -1
  42. data/lib/striuct/singleton_class.rb +12 -17
  43. data/lib/striuct/structs.rb +3 -3
  44. metadata +33 -178
  45. data/.gitignore +0 -35
  46. data/.travis.yml +0 -17
  47. data/.yardopts +0 -1
  48. data/Gemfile +0 -11
  49. data/MIT-LICENSE +0 -22
  50. data/Rakefile +0 -11
  51. data/benchmark/basics.rb +0 -56
  52. data/example/README.rb +0 -50
  53. data/example/example1.rb +0 -195
  54. data/example/example2.rb +0 -20
  55. data/example/see_trace.rb +0 -32
  56. data/striuct.gemspec +0 -45
  57. data/test/helper.rb +0 -3
  58. data/test/test_sglc-constructor.rb +0 -36
  59. data/test/test_subc-c-add_members.rb +0 -13
  60. data/test/test_subc-c-close_member.rb +0 -36
  61. data/test/test_subc-c-constructor.rb +0 -92
  62. data/test/test_subc-c-copy.rb +0 -71
  63. data/test/test_subc-c-freeze.rb +0 -36
  64. data/test/test_subc-c-inheritable.rb +0 -58
  65. data/test/test_subc-c-safety_naming.rb +0 -73
  66. data/test/test_subc-f-alias_member.rb +0 -54
  67. data/test/test_subc-f-enum.rb +0 -159
  68. data/test/test_subc-f-predicate.rb +0 -647
  69. data/test/test_subc-f-to_struct.rb +0 -61
  70. data/test/test_subc-f-validation_util.rb +0 -59
  71. data/test/test_subc-f_debug.rb +0 -39
  72. data/test/test_subc-f_name.rb +0 -525
  73. data/test/test_subc-i-accessor.rb +0 -138
  74. data/test/test_subc-i-adjuster.rb +0 -95
  75. data/test/test_subc-i-assign.rb +0 -53
  76. data/test/test_subc-i-basic.rb +0 -43
  77. data/test/test_subc-i-cast.rb +0 -27
  78. data/test/test_subc-i-compare.rb +0 -52
  79. data/test/test_subc-i-copy.rb +0 -23
  80. data/test/test_subc-i-default_value.rb +0 -129
  81. data/test/test_subc-i-freeze.rb +0 -19
  82. data/test/test_subc-i-hashlike.rb +0 -144
  83. data/test/test_subc-i-keyvalidatable.rb +0 -25
  84. data/test/test_subc-i-lock.rb +0 -40
  85. data/test/test_subc-i-must.rb +0 -30
  86. data/test/test_subc-i-to_s_family.rb +0 -26
  87. data/test/test_subc-i-validation_specific_conditions.rb +0 -297
  88. data/test/test_subc-i-validation_with_getter.rb +0 -33
  89. data/test/test_version.rb +0 -13
@@ -1,14 +1,16 @@
1
- class Striuct; module ClassMethods
1
+ # frozen_string_literal: true
2
2
 
3
- # @group Length/Size
3
+ class Striuct
4
+ module ClassMethods
5
+ # @group Length/Size
4
6
 
5
- # @return [Integer]
6
- def length
7
- @autonyms.length
8
- end
9
-
10
- alias_method :size, :length
7
+ # @return [Integer]
8
+ def length
9
+ @autonyms.length
10
+ end
11
11
 
12
- # @endgroup
12
+ alias_method :size, :length
13
13
 
14
- end; end
14
+ # @endgroup
15
+ end
16
+ end
@@ -1,116 +1,120 @@
1
- class Striuct; module ClassMethods
2
-
3
- # @group Macro for Member Definition
4
-
5
- ANYTHING = ::Validation::Condition::ANYTHING
6
-
7
- # @return [Class]
8
- ADD_MEMBER_OptArg = OptionalArgument.define {
9
- opt :default_value, aliases: [:default]
10
- opt :default_proc, aliases: [:lazy_default]
11
- conflict :default_value, :default_proc
12
- opt :must, default: false
13
- opt :setter_validation, aliases: [:writer_validation], default: true
14
- opt :getter_validation, aliases: [:reader_validation], default: false
15
- }
16
-
17
- private
18
-
19
- # @param [Symbol, String, #to_sym] autonym
20
- # @param [#===, Proc, Method, ANYTHING] condition
21
- # @param [Hash] options
22
- # @option options [BasicObject] :default
23
- # @option options [Proc] :default_proc
24
- # @option options [Boolean] :must
25
- # @option options [Boolean] :reader_validation
26
- # @option options [Boolean] :getter_validation
27
- # @option options [Boolean] :writer_validation
28
- # @option options [Boolean] :setter_validation
29
- # @return [nil]
30
- def add_member(autonym, condition=ANYTHING, options={}, &adjuster)
31
- _check_frozen
32
- _check_closed
33
-
34
- options = ADD_MEMBER_OptArg.parse options
35
- autonym = autonym.to_sym # First difinition for an autonym
36
-
37
- raise ArgumentError, %Q!already exist name "#{autonym}"! if member? autonym
38
- _check_safety_naming autonym
39
- _add_autonym autonym
40
-
41
- _attributes_for(autonym).safety_setter = !!options.setter_validation
42
- _attributes_for(autonym).safety_getter = !!options.getter_validation
43
-
44
- if options.must
45
- _attributes_for(autonym).must = true
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
- _def_getter autonym
49
- _def_setter autonym, condition, &adjuster
50
-
51
- case
52
- when options.default_value?
53
- set_default_value autonym, options.default_value
54
- when options.default_proc?
55
- set_default_value autonym, &options.default_proc
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
- alias_method :member, :add_member
62
-
63
- # @param [Symbol, String, #to_sym] autonym
64
- # @param [Symbol, String, #to_sym] autonyms
65
- # @return [nil]
66
- def add_members(autonym, *autonyms)
67
- _check_frozen
68
- _check_closed
69
-
70
- [autonym, *autonyms].each {|_autonym|add_member _autonym}
71
- nil
72
- end
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
- # @param [Symbol, String, #to_sym] aliased
75
- # @param [Symbol, String, #to_sym] autonym
76
- # @return [nil]
77
- def alias_member(aliased, autonym)
78
- _check_frozen
79
- _check_closed
80
- autonym = autonym_for_member autonym
81
- aliased = aliased.to_sym
82
- raise ArgumentError, %Q!already exist name "#{aliased}"! if member? aliased
83
- _check_safety_naming aliased
84
-
85
- alias_method aliased, autonym
86
- alias_method :"#{aliased}=", :"#{autonym}="
87
- @aliases[aliased] = autonym
88
- nil
89
- end
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
- _attributes_for(autonym).set_default block, :lazy
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
- # @endgroup
116
+ alias_method :default, :set_default_value
115
117
 
116
- end; end
118
+ # @endgroup
119
+ end
120
+ end
@@ -1,75 +1,79 @@
1
- class Striuct; module ClassMethods
1
+ # frozen_string_literal: true
2
2
 
3
- # @group Named
3
+ class Striuct
4
+ module ClassMethods
5
+ # @group Named
4
6
 
5
- # @return [Array<Symbol>]
6
- def autonyms
7
- @autonyms.dup
8
- end
7
+ # @return [Array<Symbol>]
8
+ def autonyms
9
+ @autonyms.dup
10
+ end
9
11
 
10
- alias_method :members, :autonyms
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
- # @param [Symbol, String, #to_sym] name - autonym / aliased
28
- # @return [Symbol]
29
- def autonym_for_member(name)
30
- raise TypeError unless name.respond_to? :to_sym
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
- # @param [Index, #to_int] index
37
- # @return [Symbol] autonym
38
- def autonym_for_index(index)
39
- @autonyms.fetch index
40
- end
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
- # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
43
- # @return [Symbol] autonym
44
- def autonym_for_key(key)
45
- key.respond_to?(:to_sym) ? autonym_for_member(key) : autonym_for_index(key)
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
- # @param [Symbol, String, #to_sym] autonym
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
- @aliases.select{|als, aut|autonym == aut}.keys
58
- end
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
- # for direct access inner data from own instance
68
- # @return [Hash] alias => autonym
69
- def _autonyms
70
- @autonyms
71
- end
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
- end; end
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
- class Striuct; module ClassMethods
2
-
3
- # @group Basic Predicate
4
-
5
- # @param [Symbol, String, #to_sym] name
6
- def has_autonym?(name)
7
- name = name.to_sym
8
- rescue NoMethodError
9
- false
10
- else
11
- @autonyms.include? name
12
- end
13
-
14
- alias_method :autonym?, :has_autonym?
15
-
16
- # @param [Symbol, String, #to_sym] als
17
- def has_alias?(als)
18
- als = als.to_sym
19
- rescue NoMethodError
20
- false
21
- else
22
- @aliases.has_key? als
23
- end
24
-
25
- alias_method :alias?, :has_alias?
26
- alias_method :aliased?, :has_alias? # obsolute
27
-
28
- # @param [Symbol, String, #to_sym] name
29
- def has_member?(name)
30
- autonym_for_member name
31
- rescue Exception
32
- false
33
- else
34
- true
35
- end
36
-
37
- alias_method :member?, :has_member?
38
-
39
- # @param [Integer, #to_int] index
40
- def has_index?(index)
41
- @autonyms.fetch index
42
- rescue Exception
43
- false
44
- else
45
- true
46
- end
47
-
48
- alias_method :index?, :has_index?
49
-
50
- # @param [Symbol, String, #to_sym, Integer, #to_int] key - name / index
51
- def has_key?(key)
52
- has_member?(key) || has_index?(key)
53
- end
54
-
55
- alias_method :key?, :has_key?
56
-
57
- # @param [Symbol, String, #to_sym] autonym
58
- def with_aliases?(autonym)
59
- autonym = autonym.to_sym
60
- rescue NoMethodError
61
- false
62
- else
63
- @aliases.has_value? autonym
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