Class: RuboCop::MagicComment Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/rubocop/magic_comment.rb

Overview

This class is abstract.

parent of three different magic comment handlers

Parse different formats of magic comments.

Direct Known Subclasses

EditorComment, SimpleComment

Defined Under Namespace

Classes: EditorComment, EmacsComment, SimpleComment, VimComment

Constant Summary collapse

TOKEN =
/[[:alnum:]\-_]+/

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(comment) ⇒ MagicComment

Returns a new instance of MagicComment.



25
26
27
# File 'lib/rubocop/magic_comment.rb', line 25

def initialize(comment)
  @comment = comment
end

Class Method Details

.parse(comment) ⇒ RuboCop::MagicComment

Detect magic comment format and pass it to the appropriate wrapper.

Parameters:

  • comment (String)

Returns:



16
17
18
19
20
21
22
23
# File 'lib/rubocop/magic_comment.rb', line 16

def self.parse(comment)
  case comment
  when EmacsComment::FORMAT then EmacsComment.new(comment)
  when VimComment::FORMAT   then VimComment.new(comment)
  else
    SimpleComment.new(comment)
  end
end

Instance Method Details

#frozen_string_literalBoolean, ...

Expose the ‘frozen_string_literal` value coerced to a boolean if possible.

Returns:

  • (Boolean)

    if value is ‘true` or `false`

  • (nil)

    if frozen_string_literal comment isn’t found

  • (String)

    if comment is found but isn’t true or false



53
54
55
56
57
58
59
60
61
62
# File 'lib/rubocop/magic_comment.rb', line 53

def frozen_string_literal
  return unless (setting = extract_frozen_string_literal)

  case setting
  when 'true'  then true
  when 'false' then false
  else
    setting
  end
end

#frozen_string_literal?Boolean

Does the magic comment enable the frozen string literal feature.

Test whether the frozen string literal value is ‘true`. Cannot just return `frozen_string_literal` since an invalid magic comment like `# frozen_string_literal: yes` is possible and the truthy value `’yes’‘ does not actually enable the feature

Returns:

  • (Boolean)


37
38
39
# File 'lib/rubocop/magic_comment.rb', line 37

def frozen_string_literal?
  frozen_string_literal == true
end

#frozen_string_literal_specified?Boolean

Was a magic comment for the frozen string literal found?

Returns:

  • (Boolean)


44
45
46
# File 'lib/rubocop/magic_comment.rb', line 44

def frozen_string_literal_specified?
  !frozen_string_literal.nil?
end