123456789_123456789_123456789_123456789_123456789_

Class: RuboCop::Cop::Style::MagicCommentFormat::CommentRange

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, SimpleForwardable
Inherits: Object
Defined in: lib/rubocop/cop/style/magic_comment_format.rb

Overview

Value object to extract source ranges for the different parts of a magic comment

Constant Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

  • #directives

    A magic comment can contain one directive (normal style) or multiple directives (emacs style).

  • #values

    A magic comment can contain one value (normal style) or multiple directives (emacs style).

Constructor Details

.new(comment) ⇒ CommentRange

[ GitHub ]

  
# File 'lib/rubocop/cop/style/magic_comment_format.rb', line 119

def initialize(comment)
  @comment = comment
end

Instance Attribute Details

#comment (readonly)

[ GitHub ]

  
# File 'lib/rubocop/cop/style/magic_comment_format.rb', line 117

attr_reader :comment

Instance Method Details

#directives

A magic comment can contain one directive (normal style) or multiple directives (emacs style)

[ GitHub ]

  
# File 'lib/rubocop/cop/style/magic_comment_format.rb', line 125

def directives
  @directives ||= begin
    matches = []

    text.scan(DIRECTIVE_REGEXP) do
      offset = Regexp.last_match.offset(0)
      matches << loc.expression.adjust(begin_pos: offset.first)
                    .with(end_pos: loc.expression.begin_pos + offset.last)
    end

    matches
  end
end

#values

A magic comment can contain one value (normal style) or multiple directives (emacs style)

[ GitHub ]

  
# File 'lib/rubocop/cop/style/magic_comment_format.rb', line 141

def values
  @values ||= begin
    matches = []

    text.scan(VALUE_REGEXP) do
      offset = Regexp.last_match.offset(1)
      matches << loc.expression.adjust(begin_pos: offset.first)
                    .with(end_pos: loc.expression.begin_pos + offset.last)
    end

    matches
  end
end