Sha256: 870ccaaf007e6d42782b1f48a1a3613560bc0504f1781ae2cd2db48460cdc131

Contents?: true

Size: 1.17 KB

Versions: 24

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

# Extensions to the core String class
class String
  unless method_defined? :blank?
    # Checks whether a string is blank. A string is considered blank if it
    # is either empty or contains only whitespace characters.
    #
    # @return [Boolean] true is the string is blank, false otherwise
    #
    # @example
    #   ''.blank? #=> true
    #
    # @example
    #   '    '.blank? #=> true
    #
    # @example
    #   '  test'.blank? #=> false
    def blank?
      empty? || strip.empty?
    end
  end

  unless method_defined? :strip_indent
    # The method strips the whitespace preceding the base indentation.
    # Useful for HEREDOCs and other multi-line strings.
    #
    # @example
    #
    #   code = <<~END
    #     def test
    #       some_method
    #       other_method
    #     end
    #   END
    #
    #   #=> "def\n  some_method\n  \nother_method\nend"
    #
    # @todo Replace call sites with squiggly heredocs when required Ruby
    #   version is >= 2.3.0
    def strip_indent
      leading_space = scan(/^[ \t]*(?=\S)/).min
      indent = leading_space ? leading_space.size : 0
      gsub(/^[ \t]{#{indent}}/, '')
    end
  end
end

Version data entries

24 entries across 16 versions & 2 rubygems

Version Path
rubocop-0.72.0 lib/rubocop/core_ext/string.rb
rubocop-0.71.0 lib/rubocop/core_ext/string.rb
rubocop-0.70.0 lib/rubocop/core_ext/string.rb
rubocop-0.69.0 lib/rubocop/core_ext/string.rb