class Petrovich::Inflector
Public Class Methods
new(name, gender, name_case)
click to toggle source
# File lib/petrovich/inflector.rb, line 3 def initialize(name, gender, name_case) Petrovich.assert_name!(name) @name = Petrovich.normalize_name(name) @gender = gender @name_case = name_case end
Public Instance Methods
inflect_firstname(rules)
click to toggle source
# File lib/petrovich/inflector.rb, line 15 def inflect_firstname(rules) inflect(@name.firstname, rules) end
inflect_lastname(rules)
click to toggle source
# File lib/petrovich/inflector.rb, line 11 def inflect_lastname(rules) inflect(@name.lastname, rules) end
inflect_middlename(rules)
click to toggle source
# File lib/petrovich/inflector.rb, line 19 def inflect_middlename(rules) inflect(@name.middlename, rules) end
Private Instance Methods
inflect(name, rules)
click to toggle source
# File lib/petrovich/inflector.rb, line 25 def inflect(name, rules) return name if rules.size == 0 parts = name.split('-') parts.map! do |part| rule = rules.shift if rule && (modifier = rule.get_modifier(@name_case)) part.slice(0, part.size - modifier.offset) + modifier.suffix else part end end parts.join('-') end