Sha256: 56f219e66125ce9942fc7658f3bd989cfc204f826965e073a38f9237b56906e3

Contents?: true

Size: 1.14 KB

Versions: 13

Compression:

Stored size: 1.14 KB

Contents

# encoding: utf-8
# frozen_string_literal: true

module RuboCop
  module Cop
    # Common functionality for dealing with frozen string literals.
    module FrozenStringLiteral
      module_function

      FROZEN_STRING_LITERAL = '# frozen_string_literal:'.freeze
      FROZEN_STRING_LITERAL_ENABLED = '# frozen_string_literal: true'.freeze
      FROZEN_STRING_LITERAL_TYPES = [:str, :dstr].freeze

      def frozen_string_literal_comment_exists?(processed_source,
                                                comment = FROZEN_STRING_LITERAL)
        first_three_lines =
          [processed_source[0], processed_source[1], processed_source[2]]
        first_three_lines.compact!
        first_three_lines.any? do |line|
          line.start_with?(comment)
        end
      end

      def frozen_string_literals_enabled?(processed_source)
        ruby_version = processed_source.ruby_version
        return false unless ruby_version
        return true if ruby_version >= 3.0
        return false unless ruby_version >= 2.3
        frozen_string_literal_comment_exists?(
          processed_source, FROZEN_STRING_LITERAL_ENABLED
        )
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
fluent-plugin-detect-memb-exceptions-0.0.2 vendor/bundle/ruby/2.0.0/gems/rubocop-0.42.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
fluent-plugin-detect-memb-exceptions-0.0.1 vendor/bundle/ruby/2.0.0/gems/rubocop-0.42.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.43.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.42.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.41.2 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.41.1 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.41.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.40.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.39.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.38.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.37.2 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.37.1 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.37.0 lib/rubocop/cop/mixin/frozen_string_literal.rb