module Possessify

Constants

VERSION

Public Instance Methods

non_possessive → new_str click to toggle source

Returns a new string that is the non-possessive form of str.

"Dave's".non_possessive     #=> "Dave"
"Xerxes'".non_possessive    #=> "Xerxes"
# File lib/possessify/possessify.rb, line 25
def non_possessive
  if self.possessive?
    unless self.chomp!("'s")
      self.chomp!("'")
    end
  end
  self
end
non_possessive? → true or false click to toggle source

Returns true if str is not in possessive form.

"Dave's".non_possessive?     #=> false
"Dave".non_possessive?       #=> true
# File lib/possessify/possessify.rb, line 52
def non_possessive?
  !self.possessive?
end
possessive → new_str click to toggle source

Returns a new string that is the possessive form of str.

"Dave".possessive     #=> "Dave's"
"Xerxes".possessive   #=> "Xerxes'"
# File lib/possessify/possessify.rb, line 11
def possessive
  unless self.possessive? || self.empty?
    str = self + self.possessive_suffix
  end
  str || self
end
possessive? → true or false click to toggle source

Returns true if str is possessive.

"Dave's".possessive?     #=> true
"Dave".possessive?       #=> false
# File lib/possessify/possessify.rb, line 41
def possessive?
  self[-2,2] && (self[-2,2].downcase == "'s" || self[-2,2].downcase == "s'")
end
possessive_suffix → new_str click to toggle source

Returns a new string of the possessive suffix regardless of wehether the string is already in possessive form or not.

"Dave's".possessive_suffix     #=> "'s"
"Dave".possessive_suffix       #=> "'s"
"Xerxes'".possessive_suffix    #=> "'"
# File lib/possessify/possessify.rb, line 65
def possessive_suffix
  str = self.non_possessive
  (str[-1,1] && str[-1,1].downcase == "s") ? "'" : "'s"
end