striuct 0.6.1 → 0.7.0

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.
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