module Modifiers

Public Class Methods

baseEngModifiers() click to toggle source
# File lib/mods-eng-basic.rb, line 34
def self.baseEngModifiers
    {
        "replace" => lambda do |s, parameters|
            return s.gsub(/#{Regexp.quote(parameters[0])}/, parameters[1])
        end,

        "capitalizeAll" => lambda do |s, parameters|
            return s.gsub(/\w+/) {|word| capitalize word}
        end,
        
        "capitalize" => lambda do |s, parameters|
            return capitalize s
        end,
        
        "a" => lambda do |s, parameters|
            if(s.length > 0) then
                if(s =~ /^u((\wi)|(\W))/) then
                    #catches "university" and "u-boat"
                    return "a #{s}"
                end
                
                if(isVowel(s[0])) then
                    return "an #{s}"
                end
            end
            
            return "a #{s}"
        end,

        "firstS" => lambda do |s, parameters|
            words = s.split(" ")
            if(words.length > 0) then
                words[0] = pluralize words[0]
            end
            return words.join " "
        end,
        
        "s" => lambda do |s, parameters|
            return pluralize(s)
        end,
        
        "ed" => lambda do |s, parameters|
            case(s[-1])
                when 's' then
                    return s + "ed"
                when 'e' then
                    return s + "d"
                when 'h' then
                    return s + "ed"
                when 'x' then
                    return s + "ed"
                when 'y' then
                    if(!isVowel(s[-2])) then
                        return s[0...-1] + "ied"
                    else
                        return s + "d"
                    end
                else
                    return s + "ed"
            end
        end
    }
end
capitalize(s) click to toggle source
# File lib/mods-eng-basic.rb, line 25
def self.capitalize(s)
    head = s[0]
    remainder = s[1..-1]
    return s if(head.nil?)
    head.upcase!
    return head if remainder.nil?
    return head + remainder
end
isVowel(c) click to toggle source
# File lib/mods-eng-basic.rb, line 2
def self.isVowel(c)
    return ['a', 'e', 'i', 'o', 'u'].member?(c.downcase)
end
pluralize(s) click to toggle source
# File lib/mods-eng-basic.rb, line 6
def self.pluralize(s)
    case(s[-1])
    when 's' then
        return s + "es"
    when 'h' then
        return s + "es"
    when 'x' then
        return s + "es"
    when 'y' then
        if(!isVowel(s[-2])) then
            return s[0...-1] + "ies"
        else
            return s + "s"
        end
    else
        return s + "s"
    end
end