class String

Monkeypatch some convenience methods in to the String class.

Monkeypatch some convenience methods in to the String class.

Public Instance Methods

comment(indent_empty_lines = true) click to toggle source

Returns a copy of a string with a comment (`“# ”`) after every newline in a string.

@param indent_empty_lines [Boolean] @return [String]

# File lib/food_truck/string/comment.rb, line 16
def comment(indent_empty_lines = true)
  dup.tap { |s| s.comment!(indent_empty_lines) }
end
comment!(indent_empty_lines = true) click to toggle source

Adds a comment string (`“# ”`) after every newline in a string.

@param indent_empty_lines [Boolean] @return [void]

# File lib/food_truck/string/comment.rb, line 7
def comment!(indent_empty_lines = true)
  re = indent_empty_lines ? /^/ : /^(?!$)/
  gsub!(re, "# ")
end
indent(amount, indent_string = nil, indent_empty_lines = false) click to toggle source

Indents the lines in the receiver.

The second argument, `indent_string`, specifies which indent string to use. The default is `nil`, which tells the method to make a guess by peeking at the first indented line, and fallback to a space if there is none.

While `indent_string` is typically one space or tab, it may be any string.

The third argument, `indent_empty_lines`, is a flag that says whether empty lines should be indented. Default is `false`.

@param amount [Integer] The level of indentation to add. @param indent_string [String] Defaults to tab if a tab is present in the string, and `“ ”` otherwise. @param indent_empty_lines [Boolean]

@return [String]

# File lib/food_truck/string/indent.rb, line 48
def indent(amount, indent_string = nil, indent_empty_lines = false)
  dup.tap { |s| s.indent!(amount, indent_string, indent_empty_lines) }
end
indent!(amount, indent_string = nil, indent_empty_lines = false) click to toggle source

Same as {indent}, except it indents the receiver in-place.

Returns the indented string, or `nil` if there was nothing to indent.

@param amount [Integer] The level of indentation to add. @param indent_string [String] Defaults to tab if a tab is present in the string, and `“ ”` otherwise. @param indent_empty_lines [Boolean]

@return [void]

# File lib/food_truck/string/indent.rb, line 25
def indent!(amount, indent_string = nil, indent_empty_lines = false)
  indent_string = indent_string || self[/^[ \t]/] || " "
  re = indent_empty_lines ? /^/ : /^(?!$)/
  gsub!(re, indent_string * amount)
end