Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/sem/core_ext/string.rb
Instance Method Summary collapse
-
#strip_heredoc ⇒ Object
This was copied from: activesupport/lib/active_support/core_ext/string/strip.rb.
Instance Method Details
#strip_heredoc ⇒ Object
This was copied from: activesupport/lib/active_support/core_ext/string/strip.rb
Instead of importing the whole activesupport library, we are only importing this one method.
Is this safe? The assumption is that the CLI will not be included in other projects as a gem. That mitigates possible side effects.
Strips indentation in heredocs.
For example in
if [:usage]
puts " This command does such and such.\n\n Supported options are:\n -h This message\n ...\n USAGE\nend\n".strip_heredoc
the user would see the usage message aligned against the left margin.
Technically, it looks for the least indented non-empty line in the whole string, and removes that amount of leading whitespace.
32 33 34 |
# File 'lib/sem/core_ext/string.rb', line 32 def strip_heredoc gsub(/^#{scan(/^[ \t]*(?=\S)/).min}/, "".freeze) end |