Sha256: dd789f3ef0bf992bb3b6e0ff3499dcfd16a3d503c75f5e4837eae58f4e27d28d

Contents?: true

Size: 1.13 KB

Versions: 11

Compression:

Stored size: 1.13 KB

Contents

# 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

11 entries across 11 versions & 2 rubygems

Version Path
dirwatch-0.0.9 vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.8 vendor/bundle/ruby/2.5.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.6 vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.5 vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.4 vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.3 vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
dirwatch-0.0.2 vendor/bundle/ruby/2.3.0/gems/rubocop-0.46.0/lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.46.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.45.0 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.44.1 lib/rubocop/cop/mixin/frozen_string_literal.rb
rubocop-0.44.0 lib/rubocop/cop/mixin/frozen_string_literal.rb