Module: Rubocop::Cop::Style::SurroundingSpace
- Included in:
- SpaceAroundBlockBraces, SpaceAroundEqualsInParameterDefault, SpaceAroundOperators, SpaceInside, SpaceInsideHashLiteralBraces
- Defined in:
- lib/rubocop/cop/style/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
21 22 23 24 |
# File 'lib/rubocop/cop/style/surrounding_space.rb', line 21 def index_of_first_token(node) b = node.loc.expression.begin token_table[[b.line, b.column]] end |
#index_of_last_token(node) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/rubocop/cop/style/surrounding_space.rb', line 26 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
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/rubocop/cop/style/surrounding_space.rb', line 10 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 == ' ' end |
#token_table ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/rubocop/cop/style/surrounding_space.rb', line 34 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 |