Class: Hone::Patterns::InjectSum
- Defined in:
- lib/hone/patterns/inject_sum.rb
Overview
Pattern: array.inject(0, :+) -> array.sum
sum is optimized for numeric summation with native implementation. Also handles empty arrays correctly (returns 0).
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
Methods inherited from Base
#add_finding, inherited, #initialize, scan_file
Constructor Details
This class inherits a constructor from Hone::Patterns::Base
Instance Method Details
#visit_call_node(node) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/hone/patterns/inject_sum.rb', line 13 def visit_call_node(node) super return unless %i[inject reduce].include?(node.name) return unless sum_pattern?(node) add_finding( node, message: "Use `.sum` instead of `.#{node.name}(:+)` for optimized numeric summation", speedup: "Native C implementation, cleaner code" ) end |