Class: RuboCop::MagicComment::SimpleComment

Inherits:
RuboCop::MagicComment show all
Defined in:
lib/rubocop/magic_comment.rb

Overview

Wrapper for regular magic comments not bound to an editor.

Simple comments can only specify one setting per comment.

Examples:

frozen string literal comments

comment1 = RuboCop::MagicComment.parse('# frozen_string_literal: true')
comment1.frozen_string_literal # => true
comment1.encoding              # => nil

encoding comments

comment2 = RuboCop::MagicComment.parse('# encoding: utf-8')
comment2.frozen_string_literal # => nil
comment2.encoding              # => 'utf-8'

Constant Summary collapse

FSTRING_LITERAL_COMMENT =
'frozen_string_literal:\s*(true|false)'

Constants inherited from RuboCop::MagicComment

KEYWORDS, TOKEN

Instance Method Summary collapse

Methods inherited from RuboCop::MagicComment

#any?, #encoding_specified?, #frozen_string_literal, #frozen_string_literal?, #frozen_string_literal_specified?, #initialize, parse, #shareable_constant_value, #shareable_constant_value_specified?, #typed, #typed_specified?, #valid?, #valid_literal_value?, #valid_shareable_constant_value?

Constructor Details

This class inherits a constructor from RuboCop::MagicComment

Instance Method Details

#encodingObject

Match encoding or coding



265
266
267
# File 'lib/rubocop/magic_comment.rb', line 265

def encoding
  extract(/\A\s*\#\s*(#{FSTRING_LITERAL_COMMENT})?\s*#{KEYWORDS[:encoding]}: (#{TOKEN})/io)
end

#without(type) ⇒ Object

Rewrite the comment without a given token type



270
271
272
273
274
275
276
# File 'lib/rubocop/magic_comment.rb', line 270

def without(type)
  if @comment.match?(/\A#\s*#{self.class::KEYWORDS[type.to_sym]}/)
    ''
  else
    @comment
  end
end