@@ -83,22 +83,25 @@ def not_behaves_as_nor?(opts)
83
83
FROZEN_EMPTY_HASH = { } . freeze
84
84
85
85
Relation ::VALUE_METHODS . each do |name |
86
- method_name = \
86
+ method_name , default =
87
87
case name
88
- when *Relation ::MULTI_VALUE_METHODS then "#{ name } _values"
89
- when *Relation ::SINGLE_VALUE_METHODS then "#{ name } _value"
90
- when *Relation ::CLAUSE_METHODS then "#{ name } _clause"
88
+ when *Relation ::MULTI_VALUE_METHODS
89
+ [ "#{ name } _values" , "FROZEN_EMPTY_ARRAY" ]
90
+ when *Relation ::SINGLE_VALUE_METHODS
91
+ [ "#{ name } _value" , name == :create_with ? "FROZEN_EMPTY_HASH" : "nil" ]
92
+ when *Relation ::CLAUSE_METHODS
93
+ [ "#{ name } _clause" , "DEFAULT_VALUES[:#{ name } ]" ]
91
94
end
95
+
92
96
class_eval <<-CODE , __FILE__ , __LINE__ + 1
93
- def #{ method_name } # def includes_values
94
- default = DEFAULT_VALUES[:#{ name } ] # default = DEFAULT_VALUES[:includes]
95
- @values.fetch(:#{ name } , default) # @values.fetch(:includes, default)
96
- end # end
97
-
98
- def #{ method_name } =(value) # def includes_values=(value)
99
- assert_mutability! # assert_mutability!
100
- @values[:#{ name } ] = value # @values[:includes] = value
101
- end # end
97
+ def #{ method_name } # def includes_values
98
+ @values.fetch(:#{ name } , #{ default } ) # @values.fetch(:includes, FROZEN_EMPTY_ARRAY)
99
+ end # end
100
+
101
+ def #{ method_name } =(value) # def includes_values=(value)
102
+ assert_mutability! # assert_mutability!
103
+ @values[:#{ name } ] = value # @values[:includes] = value
104
+ end # end
102
105
CODE
103
106
end
104
107
0 commit comments