class CleanCut

Constants

DEFAULT_Options

Public Class Methods

cut(user_options={}) click to toggle source
# File lib/clean-cut.rb, line 9
def cut(user_options={})
  options = DEFAULT_Options.merge(user_options)

  @string_to_cut   = options[:string_to_cut]
  @character_limit = options[:character_limit]

  raise "character limit must be >= 0." if @character_limit == nil
  raise "string must have a length >= 1" if @string_to_cut.length < 1

  cut_index = find_clean(@string_to_cut, @character_limit)

  if cut_index == 0
    first_part = ""
    second_part = @string_to_cut[(cut_index..@string_to_cut.length - 1)]
  elsif cut_index > 0
    first_part = @string_to_cut[(0..cut_index)].chomp " "
    second_part = @string_to_cut[(cut_index + 1..@string_to_cut.length - 1)]
  end

  [first_part, second_part].map do |string|
    if string == nil
      string = ""
    else
      string = string
    end
  end
end

Private Class Methods

find_clean(string, limit) click to toggle source
# File lib/clean-cut.rb, line 39
def find_clean(string, limit)
  return limit if limit == 0 || !string[limit] || string[limit] == " "
  find_clean(string, limit-= 1)
end