Module: RuboCop::Cop::SurroundingSpace
- Included in:
- SpaceInside, RuboCop::Cop::Style::SpaceAroundEqualsInParameterDefault, RuboCop::Cop::Style::SpaceInsideBlockBraces, RuboCop::Cop::Style::SpaceInsideHashLiteralBraces
- Defined in:
- lib/rubocop/cop/mixin/surrounding_space.rb
Overview
Common functionality for checking surrounding space.
Instance Method Summary collapse
- #index_of_first_token(node) ⇒ Object
- #index_of_last_token(node) ⇒ Object
- #space_between?(t1, t2) ⇒ Boolean
- #token_table ⇒ Object
Instance Method Details
#index_of_first_token(node) ⇒ Object
17 18 19 20 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 17 def index_of_first_token(node) b = node.loc.expression.begin token_table[[b.line, b.column]] end |
#index_of_last_token(node) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 22 def index_of_last_token(node) e = node.loc.expression.end (0...e.column).to_a.reverse.find do |c| ix = token_table[[e.line, c]] return ix if ix end end |
#space_between?(t1, t2) ⇒ Boolean
7 8 9 10 11 12 13 14 15 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 7 def space_between?(t1, t2) between = Parser::Source::Range.new(t1.pos.source_buffer, t1.pos.end_pos, t2.pos.begin_pos).source # Check if the range between the tokens starts with a space. It can # contain other characters, e.g. a unary plus, but it must start with # space. between =~ /^\s/ end |
#token_table ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 30 def token_table @token_table ||= begin table = {} @processed_source.tokens.each_with_index do |t, ix| table[[t.pos.line, t.pos.column]] = ix end table end end |