module RuboCop::Cop::PercentLiteral

Common functionality for handling percent literals.

Private Instance Methods

begin_source(node) click to toggle source
# File lib/rubocop/cop/mixin/percent_literal.rb, line 23
def begin_source(node)
  node.loc.begin.source if node.loc.respond_to?(:begin) && node.loc.begin
end
contents_range(node) click to toggle source

A range containing only the contents of the percent literal (e.g. in %i{1 2 3} this will be the range covering '1 2 3' only)

# File lib/rubocop/cop/mixin/percent_literal.rb, line 33
def contents_range(node)
  range_between(node.loc.begin.end_pos, node.loc.end.begin_pos)
end
percent_literal?(node) click to toggle source
# File lib/rubocop/cop/mixin/percent_literal.rb, line 11
def percent_literal?(node)
  return unless (begin_source = begin_source(node))

  begin_source.start_with?('%')
end
process(node, *types) click to toggle source
# File lib/rubocop/cop/mixin/percent_literal.rb, line 17
def process(node, *types)
  return unless percent_literal?(node) && types.include?(type(node))

  on_percent_literal(node)
end
type(node) click to toggle source
# File lib/rubocop/cop/mixin/percent_literal.rb, line 27
def type(node)
  node.loc.begin.source[0..-2]
end