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
18 19 20 21 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 18 def index_of_first_token(node) b = node.loc.expression.begin token_table[[b.line, b.column]] end |
#index_of_last_token(node) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 23 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 16 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 7 def space_between?(t1, t2) char_preceding_2nd_token = @processed_source[t2.pos.line - 1][t2.pos.column - 1] if char_preceding_2nd_token == '+' && t1.type != :tPLUS # Special case. A unary plus is not present in the tokens. char_preceding_2nd_token = @processed_source[t2.pos.line - 1][t2.pos.column - 2] end t2.pos.line > t1.pos.line || char_preceding_2nd_token =~ /[ \t]/ end |
#token_table ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/rubocop/cop/mixin/surrounding_space.rb', line 31 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 |