class String

Public Instance Methods

color(marker) click to toggle source
# File lib/bashly/extensions/string.rb, line 45
def color(marker)
  color = Bashly::Settings.usage_colors[marker.to_s]
  return self unless color

  text, spaces = match(/(.*?)(\s*)$/).captures
  %[$(#{color} "#{text}")#{spaces}]
end
expand_tabs(tabstop = 2) click to toggle source
# File lib/bashly/extensions/string.rb, line 39
def expand_tabs(tabstop = 2)
  gsub(/^( {#{tabstop}}+)/) do
    "\t" * (::Regexp.last_match(1).size / tabstop)
  end
end
indent(offset) click to toggle source
# File lib/bashly/extensions/string.rb, line 6
def indent(offset)
  return self unless offset.positive?

  lines.indent(offset).join
end
lint() click to toggle source
# File lib/bashly/extensions/string.rb, line 31
def lint
  gsub(/\s+\n/m, "\n\n").lines.grep_v(/^\s*##/).join
end
remove_front_matter() click to toggle source
# File lib/bashly/extensions/string.rb, line 35
def remove_front_matter
  split(/^---\s*/).last
end
sanitize_for_print() click to toggle source
# File lib/bashly/extensions/string.rb, line 2
def sanitize_for_print
  gsub("\n", '\\n').gsub('"', '\"')
end
to_path() click to toggle source
# File lib/bashly/extensions/string.rb, line 16
def to_path
  tr(' ', '/').downcase
end
to_underscore() click to toggle source
# File lib/bashly/extensions/string.rb, line 12
def to_underscore
  gsub(/(.)([A-Z])/, '\1_\2').gsub(/[- ]/, '_').downcase
end
wrap(length = 80) click to toggle source
# File lib/bashly/extensions/string.rb, line 20
def wrap(length = 80)
  strip!
  split("\n").collect! do |line|
    if line.length > length
      line.gsub(/(.{1,#{length}})(\s+|$)/, "\\1\n").rstrip
    else
      line
    end
  end * "\n"
end