File tree 2 files changed +42
-4
lines changed
2 files changed +42
-4
lines changed Original file line number Diff line number Diff line change @@ -190,11 +190,17 @@ def enum(definitions)
190
190
191
191
value_method_names = [ ]
192
192
_enum_methods_module . module_eval do
193
- enum_prefix = name if enum_prefix == true
194
- prefix = "#{ enum_prefix } _" if enum_prefix
193
+ prefix = if enum_prefix == true
194
+ "#{ name } _"
195
+ elsif enum_prefix
196
+ "#{ enum_prefix } _"
197
+ end
195
198
196
- enum_suffix = name if enum_suffix == true
197
- suffix = "_#{ enum_suffix } " if enum_suffix
199
+ suffix = if enum_suffix == true
200
+ "_#{ name } "
201
+ elsif enum_suffix
202
+ "_#{ enum_suffix } "
203
+ end
198
204
199
205
pairs = values . respond_to? ( :each_pair ) ? values . each_pair : values . each_with_index
200
206
pairs . each do |label , value |
Original file line number Diff line number Diff line change @@ -511,6 +511,38 @@ def self.name; "Book"; end
511
511
assert_predicate book2 , :single?
512
512
end
513
513
514
+ test "declare multiple enums with { _prefix: true }" do
515
+ klass = Class . new ( ActiveRecord ::Base ) do
516
+ self . table_name = "books"
517
+
518
+ enum (
519
+ status : [ :value_1 ] ,
520
+ last_read : [ :value_1 ] ,
521
+ _prefix : true
522
+ )
523
+ end
524
+
525
+ instance = klass . new
526
+ assert_respond_to instance , :status_value_1?
527
+ assert_respond_to instance , :last_read_value_1?
528
+ end
529
+
530
+ test "declare multiple enums with { _suffix: true }" do
531
+ klass = Class . new ( ActiveRecord ::Base ) do
532
+ self . table_name = "books"
533
+
534
+ enum (
535
+ status : [ :value_1 ] ,
536
+ last_read : [ :value_1 ] ,
537
+ _suffix : true
538
+ )
539
+ end
540
+
541
+ instance = klass . new
542
+ assert_respond_to instance , :value_1_status?
543
+ assert_respond_to instance , :value_1_last_read?
544
+ end
545
+
514
546
test "enum with alias_attribute" do
515
547
klass = Class . new ( ActiveRecord ::Base ) do
516
548
self . table_name = "books"
You can’t perform that action at this time.
0 commit comments