Skip to content

Commit bd12f1f

Browse files
committed
Avoid Kernel.dup when parsing options
- Buys another ~10% of performance gain
1 parent ffda6e6 commit bd12f1f

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

lib/grape_entity/entity.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,10 @@ def valid_exposure?(attribute, exposure_options)
479479
end
480480

481481
def conditions_met?(exposure_options, options)
482-
if_conditions = (exposure_options[:if_extras] || []).dup
482+
if_conditions = []
483+
unless exposure_options[:if_extras].nil?
484+
if_conditions.concat(exposure_options[:if_extras])
485+
end
483486
if_conditions << exposure_options[:if] unless exposure_options[:if].nil?
484487

485488
if_conditions.each do |if_condition|
@@ -490,7 +493,10 @@ def conditions_met?(exposure_options, options)
490493
end
491494
end
492495

493-
unless_conditions = (exposure_options[:unless_extras] || []).dup
496+
unless_conditions = []
497+
unless exposure_options[:unless_extras].nil?
498+
unless_conditions.concat(exposure_options[:unless_extras])
499+
end
494500
unless_conditions << exposure_options[:unless] unless exposure_options[:unless].nil?
495501

496502
unless_conditions.each do |unless_condition|

0 commit comments

Comments
 (0)