Module: RuboCop::Cop::SurroundingSpace
- Included in:
- SpaceInside, RuboCop::Cop::Style::SpaceAroundEqualsInParameterDefault, RuboCop::Cop::Style::SpaceInsideBlockBraces, RuboCop::Cop::Style::SpaceInsideHashLiteralBraces, RuboCop::Cop::Style::TrailingUnderscoreVariable
- 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
15 16 17 18 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 15 def index_of_first_token(node) range = node.source_range token_table[range.line][range.column] end |
#index_of_last_token(node) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 20 def index_of_last_token(node) range = node.source_range table_row = token_table[range.last_line] (0...range.last_column).reverse_each do |c| ix = table_row[c] return ix if ix end end |
#space_between?(t1, _t2) ⇒ Boolean
8 9 10 11 12 13 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 8 def space_between?(t1, _t2) # 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. t1.pos.source_buffer.source.match(/\G\s/, t1.pos.end_pos) end |
#token_table ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 29 def token_table @token_table ||= begin table = {} @processed_source.tokens.each_with_index do |t, ix| table[t.pos.line] ||= {} table[t.pos.line][t.pos.column] = ix end table end end |