Module: Genderizr
Defined Under Namespace
Modules: StringMethods
Constant Summary collapse
- VERSION =
'0.1.5'
Instance Method Summary collapse
- #feminize(string) ⇒ Object
- #genderize(string, turn_feminine) ⇒ Object
- #m2f_forms ⇒ Object
- #m2f_forms=(hash) ⇒ Object
- #masculize(string) ⇒ Object
- #monkey_patch(mod) ⇒ Object
Instance Method Details
#feminize(string) ⇒ Object
16 17 18 |
# File 'lib/genderizr.rb', line 16 def feminize(string) genderize(string, true) end |
#genderize(string, turn_feminine) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/genderizr.rb', line 21 def genderize(string,turn_feminine) return if string.nil? result = "" s = StringScanner.new(string) lookup = turn_feminine ? masculine_to_feminine : feminine_to_masculine until s.eos? do word = s.scan(/\w+|\W+/) result << word && next if word =~ /^\W+$/ # Short circuit if not a word result << word && next if lookup[word.downcase].nil? capitalized = (word == word.capitalize) upcased = (word == word.upcase) genderized = lookup[word.downcase] genderized = genderized.capitalize if capitalized genderized = genderized.upcase if upcased result << genderized end result end |
#m2f_forms ⇒ Object
46 47 48 |
# File 'lib/genderizr.rb', line 46 def m2f_forms @m2f_forms ||= masculine_to_feminine end |
#m2f_forms=(hash) ⇒ Object
51 52 53 54 |
# File 'lib/genderizr.rb', line 51 def m2f_forms=(hash) @f2m_forms = hash.invert @m2f_forms = hash end |
#masculize(string) ⇒ Object
57 58 59 |
# File 'lib/genderizr.rb', line 57 def masculize(string) genderize(string, false) end |
#monkey_patch(mod) ⇒ Object
62 63 64 |
# File 'lib/genderizr.rb', line 62 def monkey_patch(mod) mod.send(:include, Genderizr::StringMethods) end |