Sha256: f9efcdc91545ae9d42e0054b7c4dc3a3653933cf44154021c9eb7d9fb2ac3c29

Contents?: true

Size: 666 Bytes

Versions: 439

Compression:

Stored size: 666 Bytes

Contents

require 'active_support/core_ext/object/try'

class String
  # Strips indentation in heredocs.
  #
  # For example in
  #
  #   if options[:usage]
  #     puts <<-USAGE.strip_heredoc
  #       This command does such and such.
  #
  #       Supported options are:
  #         -h         This message
  #         ...
  #     USAGE
  #   end
  #
  # the user would see the usage message aligned against the left margin.
  #
  # Technically, it looks for the least indented line in the whole string, and removes
  # that amount of leading whitespace.
  def strip_heredoc
    indent = scan(/^[ \t]*(?=\S)/).min.try(:size) || 0
    gsub(/^[ \t]{#{indent}}/, '')
  end
end

Version data entries

439 entries across 390 versions & 37 rubygems

Version Path
activesupport-3.1.0.rc2 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.8 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.8.rc4 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.8.rc2 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.8.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.1.0.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.1.0.beta1 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.7 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.7.rc2 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.7.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.6 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.6.rc2 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.6.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.5 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.5.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.4 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.4.rc1 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.3 lib/active_support/core_ext/string/strip.rb
activesupport-3.0.2 lib/active_support/core_ext/string/strip.rb