class RuboCop::Cop::Layout::SpaceInsideRangeLiteral
Checks for spaces inside range literals.
@example
# bad 1 .. 3 # good 1..3 # bad 'a' .. 'z' # good 'a'..'z'
Constants
- MSG
Public Instance Methods
on_erange(node)
click to toggle source
# File lib/rubocop/cop/layout/space_inside_range_literal.rb, line 29 def on_erange(node) check(node) end
on_irange(node)
click to toggle source
# File lib/rubocop/cop/layout/space_inside_range_literal.rb, line 25 def on_irange(node) check(node) end
Private Instance Methods
check(node)
click to toggle source
# File lib/rubocop/cop/layout/space_inside_range_literal.rb, line 35 def check(node) expression = node.source op = node.loc.operator.source escaped_op = op.gsub(/\./, '\.') # account for multiline range literals expression.sub!(/#{escaped_op}\n\s*/, op) return unless /(\s#{escaped_op})|(#{escaped_op}\s)/.match?(expression) add_offense(node) do |corrector| corrector.replace( node, expression.sub(/\s+#{escaped_op}/, op).sub(/#{escaped_op}\s+/, op) ) end end