module SDoc::Helpers

def each_letter_group(methods, &block)

def each_letter_group(methods, &block)
  group = {:name => '', :methods => []}
  methods.sort{ |a, b| a.name <=> b.name }.each do |method|
    gname = group_name method.name
    if gname != group[:name]
      yield group unless group[:methods].size == 0
      group = {
        :name => gname,
        :methods => []
      }
    end
    group[:methods].push(method)
  end
  yield group unless group[:methods].size == 0
end

def group_name name

def group_name name
  if match = name.match(/^([a-z])/i)
    match[1].upcase
  else
    '#'
  end
end

def strip_tags(text)

strip_tags("Hello world") => "Hello world"

Example:

Strips out HTML tags from a given string.
def strip_tags(text)
  text.gsub(%r{</?[^>]+?>}, "")
end

def truncate(text, options = {})

The only available option is +:length+ which defaults to 200.

a meaningful description for SEO tags.
Truncates a given string. It tries to take whole sentences to have
def truncate(text, options = {})
  if text
    length = options.fetch(:length, 200)
    stop   = text.rindex(".", length - 1) || length
    "#{text[0, stop]}."
  end
end