Module: Rubocop::Cop::SurroundingSpace
- Included in:
- SpaceAroundBraces, SpaceAroundEqualsInParameterDefault, SpaceAroundOperators, SpaceInside, SpaceInsideHashLiteralBraces
- Defined in:
- lib/rubocop/cop/surrounding_space.rb
Instance Method Summary collapse
- #build_token_table(tokens) ⇒ Object
- #index_of_first_token(node, tokens) ⇒ Object
- #index_of_last_token(node, tokens) ⇒ Object
- #space_between?(t1, t2) ⇒ Boolean
Instance Method Details
#build_token_table(tokens) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/rubocop/cop/surrounding_space.rb', line 34 def build_token_table(tokens) table = {} tokens.each_with_index do |t, ix| table[[t.pos.line, t.pos.column]] = ix end table end |
#index_of_first_token(node, tokens) ⇒ Object
19 20 21 22 23 |
# File 'lib/rubocop/cop/surrounding_space.rb', line 19 def index_of_first_token(node, tokens) @token_table ||= build_token_table(tokens) b = node.loc.expression.begin @token_table[[b.line, b.column]] end |
#index_of_last_token(node, tokens) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/rubocop/cop/surrounding_space.rb', line 25 def index_of_last_token(node, tokens) @token_table ||= build_token_table(tokens) 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
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/rubocop/cop/surrounding_space.rb', line 8 def space_between?(t1, t2) char_preceding_2nd_token = @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 = @source[t2.pos.line - 1][t2.pos.column - 2] end t2.pos.line > t1.pos.line || char_preceding_2nd_token == ' ' end |