striuct 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/.gitignore +35 -34
  2. data/.travis.yml +6 -6
  3. data/Gemfile +12 -12
  4. data/History.rdoc +279 -273
  5. data/LICENSE +21 -21
  6. data/Manifest.txt +91 -90
  7. data/README.ja.old.rdoc +297 -297
  8. data/README.md +128 -128
  9. data/Rakefile +11 -11
  10. data/benchmark/basics.rb +56 -56
  11. data/example/README.rb +44 -44
  12. data/example/example.old.rdoc +187 -187
  13. data/example/example1.rb +233 -233
  14. data/example/example2.rb +22 -22
  15. data/example/see_trace.rb +32 -32
  16. data/lib/striuct/classmethods/README.md +5 -5
  17. data/lib/striuct/classmethods/adjustment.rb +32 -32
  18. data/lib/striuct/classmethods/constructor.rb +63 -63
  19. data/lib/striuct/classmethods/default.rb +27 -27
  20. data/lib/striuct/classmethods/enum.rb +48 -48
  21. data/lib/striuct/classmethods/inner.rb +91 -91
  22. data/lib/striuct/classmethods/length.rb +14 -14
  23. data/lib/striuct/classmethods/macro.rb +144 -144
  24. data/lib/striuct/classmethods/named.rb +113 -113
  25. data/lib/striuct/classmethods/object.rb +54 -54
  26. data/lib/striuct/classmethods/prevent_conflicts.rb +89 -89
  27. data/lib/striuct/classmethods/requiremnets.rb +11 -11
  28. data/lib/striuct/classmethods/to_struct.rb +23 -25
  29. data/lib/striuct/classmethods/validation.rb +55 -55
  30. data/lib/striuct/classmethods.rb +1 -1
  31. data/lib/striuct/instancemethods/README.md +5 -5
  32. data/lib/striuct/instancemethods/assign.rb +30 -30
  33. data/lib/striuct/instancemethods/cast.rb +34 -34
  34. data/lib/striuct/instancemethods/compare.rb +30 -30
  35. data/lib/striuct/instancemethods/default.rb +13 -13
  36. data/lib/striuct/instancemethods/delegate_class_methods.rb +28 -28
  37. data/lib/striuct/instancemethods/enum.rb +103 -103
  38. data/lib/striuct/instancemethods/hashy.rb +121 -121
  39. data/lib/striuct/instancemethods/inner.rb +60 -60
  40. data/lib/striuct/instancemethods/keyvalidatable.rb +14 -14
  41. data/lib/striuct/instancemethods/lock.rb +61 -61
  42. data/lib/striuct/instancemethods/object.rb +52 -52
  43. data/lib/striuct/instancemethods/requirements.rb +14 -14
  44. data/lib/striuct/instancemethods/safety.rb +11 -11
  45. data/lib/striuct/instancemethods/subscript.rb +55 -55
  46. data/lib/striuct/instancemethods/validation.rb +29 -25
  47. data/lib/striuct/instancemethods/values.rb +57 -57
  48. data/lib/striuct/instancemethods.rb +1 -1
  49. data/lib/striuct/requirements.rb +5 -5
  50. data/lib/striuct/singleton_class.rb +66 -66
  51. data/lib/striuct/specificcontainer.rb +19 -19
  52. data/lib/striuct/structs.rb +7 -7
  53. data/lib/striuct/version.rb +5 -5
  54. data/lib/striuct.rb +13 -13
  55. data/striuct.gemspec +24 -24
  56. data/test/helper.rb +5 -5
  57. data/test/test_striuct-singleton_class-define.rb +19 -19
  58. data/test/test_striuct-subclass-class-cloning.rb +20 -20
  59. data/test/test_striuct-subclass-class-close.rb +36 -36
  60. data/test/test_striuct-subclass-class-constructor.rb +82 -82
  61. data/test/test_striuct-subclass-class-freeze.rb +36 -36
  62. data/test/test_striuct-subclass-class-inheritable.rb +57 -57
  63. data/test/test_striuct-subclass-class-macro.rb +13 -13
  64. data/test/test_striuct-subclass-class-safety_naming.rb +72 -72
  65. data/test/test_striuct-subclass-class-validation.rb +26 -26
  66. data/test/test_striuct-subclass-feature-alias_member.rb +53 -53
  67. data/test/test_striuct-subclass-feature-to_struct.rb +61 -25
  68. data/test/test_striuct-subclass-feature-validation_util.rb +57 -0
  69. data/test/test_striuct-subclass-instance-accessor.rb +137 -137
  70. data/test/test_striuct-subclass-instance-adjuster.rb +94 -94
  71. data/test/test_striuct-subclass-instance-assign.rb +30 -30
  72. data/test/test_striuct-subclass-instance-basic.rb +32 -32
  73. data/test/test_striuct-subclass-instance-cloning.rb +22 -22
  74. data/test/test_striuct-subclass-instance-compare.rb +51 -51
  75. data/test/test_striuct-subclass-instance-default_value.rb +128 -128
  76. data/test/test_striuct-subclass-instance-enum.rb +92 -92
  77. data/test/test_striuct-subclass-instance-freeze.rb +19 -19
  78. data/test/test_striuct-subclass-instance-hashlike.rb +153 -153
  79. data/test/test_striuct-subclass-instance-keyvalidatable.rb +24 -24
  80. data/test/test_striuct-subclass-instance-lock.rb +39 -39
  81. data/test/test_striuct-subclass-instance-to_s_family.rb +25 -25
  82. data/test/test_striuct-subclass-instance-validation_functional_condition.rb +50 -50
  83. data/test/test_striuct-subclass-instance-validation_inference.rb +50 -50
  84. data/test/test_striuct-subclass-instance-validation_specific_conditions.rb +247 -247
  85. data/test/test_striuct-subclass-instance-validation_with_getter.rb +33 -33
  86. data/test/test_striuct-subclass-instance_names.rb +18 -18
  87. data/test/test_striuct-version.rb +10 -10
  88. metadata +4 -2
@@ -1,144 +1,144 @@
1
- require 'keyvalidatable'
2
-
3
- class Striuct; module ClassMethods
4
-
5
- # @group Macro for Member Definition
6
-
7
- VALID_MEMBER_OPTIONS = [
8
- :default,
9
- :default_proc,
10
- :inference,
11
- :reader_validation,
12
- :getter_validation,
13
- :writer_validation,
14
- :setter_validation
15
- ].freeze
16
-
17
- DEFAULT_MEMBER_OPTIONS = {
18
- setter_validation: true
19
- }.freeze
20
-
21
- def closed?
22
- [@autonyms, @adjusters, @defaults, @aliases].any?(&:frozen?)
23
- end
24
-
25
- private
26
-
27
- # @param [Symbol, String] autonym
28
- # @param [#===, Proc, Method, ANYTHING] condition
29
- # @param [Hash] options
30
- # @option options [BasicObject] :default
31
- # @option options [Proc] :default_proc
32
- # @option options [Boolean] :inference
33
- # @option options [Boolean] :reader_validation
34
- # @option options [Boolean] :getter_validation
35
- # @option options [Boolean] :writer_validation
36
- # @option options [Boolean] :setter_validation
37
- # @return [nil]
38
- def add_member(autonym, condition=Validation::Condition::ANYTHING, options=DEFAULT_MEMBER_OPTIONS, &adjuster)
39
- raise "already closed to add member in #{self}" if closed?
40
- options = DEFAULT_MEMBER_OPTIONS.merge(options).extend(KeyValidatable)
41
- options.validate_keys let: VALID_MEMBER_OPTIONS
42
- if options.has_key?(:default) and options.has_key?(:default_proc)
43
- raise ArgumentError, 'It is not able to choose "default" with "default_proc" in options'
44
- end
45
-
46
- autonym = keyable_for autonym # First difinition for an autonym
47
-
48
- raise ArgumentError, %Q!already exist name "#{autonym}"! if member? autonym
49
- _check_safety_naming autonym
50
- _mark_setter_validation autonym if options[:setter_validation] or options[:writer_validation]
51
- _mark_getter_validation autonym if options[:getter_validation] or options[:reader_validation]
52
- _mark_inference autonym if options[:inference]
53
-
54
- @autonyms << autonym
55
- __getter__! autonym
56
- __setter__! autonym, condition, &adjuster
57
-
58
- if options.has_key?(:default)
59
- set_default_value autonym, options.fetch(:default)
60
- end
61
-
62
- if options.has_key?(:default_proc)
63
- set_default_value autonym, &options.fetch(:default_proc)
64
- end
65
-
66
- nil
67
- end
68
-
69
- alias_method :member, :add_member
70
-
71
- # @param [Symbol, String] autonym
72
- # @param [Symbol, String] autonyms
73
- # @return [nil]
74
- def add_members(autonym, *autonyms)
75
- raise "already closed to add members in #{self}" if closed?
76
-
77
- [autonym, *autonyms].each {|_autonym|add_member _autonym}
78
- nil
79
- end
80
-
81
- # @param [Symbol, String] aliased
82
- # @param [Symbol, String] autonym
83
- # @return [nil]
84
- def alias_member(aliased, autonym)
85
- raise "already closed to add members in #{self}" if closed?
86
- autonym = autonym_for autonym
87
- aliased = keyable_for aliased
88
- raise ArgumentError, %Q!already exist name "#{aliased}"! if member? aliased
89
- _check_safety_naming aliased
90
-
91
- alias_method aliased, autonym
92
- alias_method :"#{aliased}=", :"#{autonym}="
93
- _alias_member aliased, autonym
94
- nil
95
- end
96
-
97
- # @param [Symbol, String] name
98
- # @return [nil]
99
- def set_default_value(name, value=nil, &block)
100
- raise "already closed to modify member attributes in #{self}" if closed?
101
- autonym = autonym_for(name)
102
- raise "already settled default value for #{name}" if has_default? autonym
103
-
104
- value = (
105
- if block_given?
106
- if value.nil?
107
- arity = block.arity
108
-
109
- if valid_default_proc? block
110
- DefaultProcHolder.new block
111
- else
112
- raise ArgumentError, "wrong number of block parameter #{arity} for 0..2"
113
- end
114
- else
115
- raise ArgumentError, 'can not use value and block arguments'
116
- end
117
- else
118
- value
119
- end
120
- )
121
-
122
- _set_default_value autonym, value
123
- nil
124
- end
125
-
126
- alias_method :default, :set_default_value
127
-
128
- # @param [Proc] _proc
129
- def valid_default_proc?(_proc)
130
- _proc.arity <= 2
131
- end
132
-
133
- # @return [self]
134
- def close_member
135
- [@autonyms, @adjusters, @defaults, @aliases].each(&:freeze)
136
- self
137
- end
138
-
139
- alias_method :fix_structural, :close_member
140
- alias_method :close, :close_member
141
-
142
- # @endgroup
143
-
144
- end; end
1
+ require 'keyvalidatable'
2
+
3
+ class Striuct; module ClassMethods
4
+
5
+ # @group Macro for Member Definition
6
+
7
+ VALID_MEMBER_OPTIONS = [
8
+ :default,
9
+ :default_proc,
10
+ :inference,
11
+ :reader_validation,
12
+ :getter_validation,
13
+ :writer_validation,
14
+ :setter_validation
15
+ ].freeze
16
+
17
+ DEFAULT_MEMBER_OPTIONS = {
18
+ setter_validation: true
19
+ }.freeze
20
+
21
+ def closed?
22
+ [@autonyms, @adjusters, @defaults, @aliases].any?(&:frozen?)
23
+ end
24
+
25
+ private
26
+
27
+ # @param [Symbol, String] autonym
28
+ # @param [#===, Proc, Method, ANYTHING] condition
29
+ # @param [Hash] options
30
+ # @option options [BasicObject] :default
31
+ # @option options [Proc] :default_proc
32
+ # @option options [Boolean] :inference
33
+ # @option options [Boolean] :reader_validation
34
+ # @option options [Boolean] :getter_validation
35
+ # @option options [Boolean] :writer_validation
36
+ # @option options [Boolean] :setter_validation
37
+ # @return [nil]
38
+ def add_member(autonym, condition=Validation::Condition::ANYTHING, options=DEFAULT_MEMBER_OPTIONS, &adjuster)
39
+ raise "already closed to add member in #{self}" if closed?
40
+ options = DEFAULT_MEMBER_OPTIONS.merge(options).extend(KeyValidatable)
41
+ options.validate_keys let: VALID_MEMBER_OPTIONS
42
+ if options.has_key?(:default) and options.has_key?(:default_proc)
43
+ raise ArgumentError, 'It is not able to choose "default" with "default_proc" in options'
44
+ end
45
+
46
+ autonym = keyable_for autonym # First difinition for an autonym
47
+
48
+ raise ArgumentError, %Q!already exist name "#{autonym}"! if member? autonym
49
+ _check_safety_naming autonym
50
+ _mark_setter_validation autonym if options[:setter_validation] or options[:writer_validation]
51
+ _mark_getter_validation autonym if options[:getter_validation] or options[:reader_validation]
52
+ _mark_inference autonym if options[:inference]
53
+
54
+ @autonyms << autonym
55
+ __getter__! autonym
56
+ __setter__! autonym, condition, &adjuster
57
+
58
+ if options.has_key?(:default)
59
+ set_default_value autonym, options.fetch(:default)
60
+ end
61
+
62
+ if options.has_key?(:default_proc)
63
+ set_default_value autonym, &options.fetch(:default_proc)
64
+ end
65
+
66
+ nil
67
+ end
68
+
69
+ alias_method :member, :add_member
70
+
71
+ # @param [Symbol, String] autonym
72
+ # @param [Symbol, String] autonyms
73
+ # @return [nil]
74
+ def add_members(autonym, *autonyms)
75
+ raise "already closed to add members in #{self}" if closed?
76
+
77
+ [autonym, *autonyms].each {|_autonym|add_member _autonym}
78
+ nil
79
+ end
80
+
81
+ # @param [Symbol, String] aliased
82
+ # @param [Symbol, String] autonym
83
+ # @return [nil]
84
+ def alias_member(aliased, autonym)
85
+ raise "already closed to add members in #{self}" if closed?
86
+ autonym = autonym_for autonym
87
+ aliased = keyable_for aliased
88
+ raise ArgumentError, %Q!already exist name "#{aliased}"! if member? aliased
89
+ _check_safety_naming aliased
90
+
91
+ alias_method aliased, autonym
92
+ alias_method :"#{aliased}=", :"#{autonym}="
93
+ _alias_member aliased, autonym
94
+ nil
95
+ end
96
+
97
+ # @param [Symbol, String] name
98
+ # @return [nil]
99
+ def set_default_value(name, value=nil, &block)
100
+ raise "already closed to modify member attributes in #{self}" if closed?
101
+ autonym = autonym_for(name)
102
+ raise "already settled default value for #{name}" if has_default? autonym
103
+
104
+ value = (
105
+ if block_given?
106
+ if value.nil?
107
+ arity = block.arity
108
+
109
+ if valid_default_proc? block
110
+ DefaultProcHolder.new block
111
+ else
112
+ raise ArgumentError, "wrong number of block parameter #{arity} for 0..2"
113
+ end
114
+ else
115
+ raise ArgumentError, 'can not use value and block arguments'
116
+ end
117
+ else
118
+ value
119
+ end
120
+ )
121
+
122
+ _set_default_value autonym, value
123
+ nil
124
+ end
125
+
126
+ alias_method :default, :set_default_value
127
+
128
+ # @param [Proc] _proc
129
+ def valid_default_proc?(_proc)
130
+ _proc.arity <= 2
131
+ end
132
+
133
+ # @return [self]
134
+ def close_member
135
+ [@autonyms, @adjusters, @defaults, @aliases].each(&:freeze)
136
+ self
137
+ end
138
+
139
+ alias_method :fix_structural, :close_member
140
+ alias_method :close, :close_member
141
+
142
+ # @endgroup
143
+
144
+ end; end
@@ -1,114 +1,114 @@
1
- class Striuct; module ClassMethods
2
-
3
- # @group Named
4
-
5
- # @param [Symbol, String, #to_sym] name
6
- # @return [Symbol]
7
- def keyable_for(name)
8
- name.to_sym
9
- end
10
-
11
- # @return [Array<Symbol>]
12
- def autonyms
13
- @autonyms.dup
14
- end
15
-
16
- alias_method :names, :autonyms
17
- alias_method :members, :autonyms
18
- alias_method :keys, :autonyms
19
-
20
- # @return [Array<Symbol>]
21
- def all_members
22
- @autonyms + @aliases.keys
23
- end
24
-
25
- def has_member?(name)
26
- autonym_for name
27
- rescue Exception
28
- false
29
- else
30
- true
31
- end
32
-
33
- alias_method :member?, :has_member?
34
- alias_method :has_key?, :has_member?
35
- alias_method :key?, :has_key?
36
-
37
- # @param [Symbol, String, #to_sym, #to_str] name
38
- # @return [Symbol]
39
- def autonym_for(name)
40
- name = keyable_for name
41
-
42
- if @autonyms.include? name
43
- name
44
- else
45
- if autonym = _autonym_for(name)
46
- autonym
47
- else
48
- raise NameError, "not defined member for #{name}"
49
- end
50
- end
51
- end
52
-
53
- # @param [Symbol, String] name
54
- def autonym?(name)
55
- name = keyable_for name
56
- raise NameError unless member? name
57
-
58
- @autonyms.include? name
59
- end
60
-
61
- alias_method :original?, :autonym?
62
-
63
- # @param [Symbol, String] name
64
- def alias?(name)
65
- name = keyable_for name
66
- raise NameError unless member? name
67
-
68
- @aliases.has_key? name
69
- end
70
-
71
- alias_method :aliased?, :alias?
72
-
73
- # @param [Symbol, String] autonym
74
- def has_aliases?(autonym)
75
- raise NameError unless autonym? autonym
76
-
77
- @aliases.has_value? autonym
78
- end
79
-
80
- # @param [Symbol, String] autonym
81
- # @return [Array<Symbol>]
82
- def aliases_for(autonym)
83
- autonym = keyable_for autonym
84
- raise NameError unless has_aliases? autonym
85
-
86
- _aliases_for autonym
87
- end
88
-
89
- # @return [Hash] alias => autonym
90
- def aliases
91
- @aliases.dup
92
- end
93
-
94
- private
95
-
96
- def _autonyms
97
- @autonyms
98
- end
99
-
100
- def _alias_member(aliased, autonym)
101
- @aliases[aliased] = autonym
102
- end
103
-
104
- def _autonym_for(aliased)
105
- @aliases[aliased]
106
- end
107
-
108
- def _aliases_for(autonym)
109
- @aliases.group_by{|aliased, an|an}.fetch(autonym)
110
- end
111
-
112
- # @endgroup
113
-
1
+ class Striuct; module ClassMethods
2
+
3
+ # @group Named
4
+
5
+ # @param [Symbol, String, #to_sym] name
6
+ # @return [Symbol]
7
+ def keyable_for(name)
8
+ name.to_sym
9
+ end
10
+
11
+ # @return [Array<Symbol>]
12
+ def autonyms
13
+ @autonyms.dup
14
+ end
15
+
16
+ alias_method :names, :autonyms
17
+ alias_method :members, :autonyms
18
+ alias_method :keys, :autonyms
19
+
20
+ # @return [Array<Symbol>]
21
+ def all_members
22
+ @autonyms + @aliases.keys
23
+ end
24
+
25
+ def has_member?(name)
26
+ autonym_for name
27
+ rescue Exception
28
+ false
29
+ else
30
+ true
31
+ end
32
+
33
+ alias_method :member?, :has_member?
34
+ alias_method :has_key?, :has_member?
35
+ alias_method :key?, :has_key?
36
+
37
+ # @param [Symbol, String, #to_sym, #to_str] name
38
+ # @return [Symbol]
39
+ def autonym_for(name)
40
+ name = keyable_for name
41
+
42
+ if @autonyms.include? name
43
+ name
44
+ else
45
+ if autonym = _autonym_for(name)
46
+ autonym
47
+ else
48
+ raise NameError, "not defined member for #{name}"
49
+ end
50
+ end
51
+ end
52
+
53
+ # @param [Symbol, String] name
54
+ def autonym?(name)
55
+ name = keyable_for name
56
+ raise NameError unless member? name
57
+
58
+ @autonyms.include? name
59
+ end
60
+
61
+ alias_method :original?, :autonym?
62
+
63
+ # @param [Symbol, String] name
64
+ def alias?(name)
65
+ name = keyable_for name
66
+ raise NameError unless member? name
67
+
68
+ @aliases.has_key? name
69
+ end
70
+
71
+ alias_method :aliased?, :alias?
72
+
73
+ # @param [Symbol, String] autonym
74
+ def has_aliases?(autonym)
75
+ raise NameError unless autonym? autonym
76
+
77
+ @aliases.has_value? autonym
78
+ end
79
+
80
+ # @param [Symbol, String] autonym
81
+ # @return [Array<Symbol>]
82
+ def aliases_for(autonym)
83
+ autonym = keyable_for autonym
84
+ raise NameError unless has_aliases? autonym
85
+
86
+ _aliases_for autonym
87
+ end
88
+
89
+ # @return [Hash] alias => autonym
90
+ def aliases
91
+ @aliases.dup
92
+ end
93
+
94
+ private
95
+
96
+ def _autonyms
97
+ @autonyms
98
+ end
99
+
100
+ def _alias_member(aliased, autonym)
101
+ @aliases[aliased] = autonym
102
+ end
103
+
104
+ def _autonym_for(aliased)
105
+ @aliases[aliased]
106
+ end
107
+
108
+ def _aliases_for(autonym)
109
+ @aliases.group_by{|aliased, an|an}.fetch(autonym)
110
+ end
111
+
112
+ # @endgroup
113
+
114
114
  end; end
@@ -1,54 +1,54 @@
1
- class Striuct; module ClassMethods
2
-
3
- # @group Basic Methods for Ruby's Object
4
-
5
- # @return [self]
6
- def freeze
7
- __floating_attributes__.each(&:freeze)
8
- super
9
- end
10
-
11
- # @return [Class]
12
- def dup
13
- r = super
14
- @autonyms, @adjusters, @defaults, @aliases,
15
- @setter_validations, @getter_validations,
16
- @conditions, @inferences =
17
- *__floating_attributes__.map(&:dup)
18
- r
19
- end
20
-
21
- private
22
-
23
- def inherited(subclass)
24
- autonyms = @autonyms.dup
25
- attributes = [@conditions, @adjusters, @defaults, @inferences, @aliases, @setter_validations, @getter_validations].map(&:dup)
26
- protect_level = @protect_level
27
-
28
- subclass.class_eval do
29
- original_inherited subclass
30
-
31
- @autonyms = autonyms
32
- @conditions, @adjusters, @defaults, @inferences, @aliases, @setter_validations, @getter_validations = *attributes
33
- @protect_level = protect_level
34
- end
35
- end
36
-
37
- def initialize_copy(original)
38
- ret = super original
39
- @autonyms, @adjusters, @defaults, @aliases,
40
- @setter_validations, @getter_validations,
41
- @conditions, @inferences =
42
- *__floating_attributes__.map(&:dup)
43
- ret
44
- end
45
-
46
- def __floating_attributes__
47
- [@autonyms, @adjusters, @defaults, @aliases,
48
- @setter_validations, @getter_validations,
49
- @conditions, @inferences]
50
- end
51
-
52
- # @endgroup
53
-
54
- end; end
1
+ class Striuct; module ClassMethods
2
+
3
+ # @group Basic Methods for Ruby's Object
4
+
5
+ # @return [self]
6
+ def freeze
7
+ __floating_attributes__.each(&:freeze)
8
+ super
9
+ end
10
+
11
+ # @return [Class]
12
+ def dup
13
+ r = super
14
+ @autonyms, @adjusters, @defaults, @aliases,
15
+ @setter_validations, @getter_validations,
16
+ @conditions, @inferences =
17
+ *__floating_attributes__.map(&:dup)
18
+ r
19
+ end
20
+
21
+ private
22
+
23
+ def inherited(subclass)
24
+ autonyms = @autonyms.dup
25
+ attributes = [@conditions, @adjusters, @defaults, @inferences, @aliases, @setter_validations, @getter_validations].map(&:dup)
26
+ protect_level = @protect_level
27
+
28
+ subclass.class_eval do
29
+ original_inherited subclass
30
+
31
+ @autonyms = autonyms
32
+ @conditions, @adjusters, @defaults, @inferences, @aliases, @setter_validations, @getter_validations = *attributes
33
+ @protect_level = protect_level
34
+ end
35
+ end
36
+
37
+ def initialize_copy(original)
38
+ ret = super original
39
+ @autonyms, @adjusters, @defaults, @aliases,
40
+ @setter_validations, @getter_validations,
41
+ @conditions, @inferences =
42
+ *__floating_attributes__.map(&:dup)
43
+ ret
44
+ end
45
+
46
+ def __floating_attributes__
47
+ [@autonyms, @adjusters, @defaults, @aliases,
48
+ @setter_validations, @getter_validations,
49
+ @conditions, @inferences]
50
+ end
51
+
52
+ # @endgroup
53
+
54
+ end; end