class RubbyCop::Cop::Style::MultilineMemoization
This cop checks expressions wrapping styles for multiline memoization.
@example
# EnforcedStyle: keyword (default) @bad foo ||= ( bar baz ) @good foo ||= begin bar baz end
@example
# EnforcedStyle: braces @bad foo ||= begin bar baz end @good foo ||= ( bar baz )
Constants
- MSG
Public Instance Methods
on_or_asgn(node)
click to toggle source
# File lib/rubbycop/cop/style/multiline_memoization.rb, line 44 def on_or_asgn(node) _lhs, rhs = *node return unless bad_rhs?(rhs) add_offense(rhs, node.source_range, MSG) end
Private Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubbycop/cop/style/multiline_memoization.rb, line 54 def autocorrect(node) lambda do |corrector| if style == :keyword corrector.replace(node.loc.begin, 'begin') corrector.replace(node.loc.end, 'end') else corrector.replace(node.loc.begin, '(') corrector.replace(node.loc.end, ')') end end end
bad_rhs?(rhs)
click to toggle source
# File lib/rubbycop/cop/style/multiline_memoization.rb, line 66 def bad_rhs?(rhs) return false unless rhs.multiline? if style == :keyword rhs.begin_type? else rhs.kwbegin_type? end end