Sha256: 98772c1e017c91994074facdd047f0e7122dbdabd8981e0d41f1ecb569e47791
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
module Genderize class Gender include I18n attr_reader :abbr def initialize(abbr) unless abbr.blank? or abbr.to_s =~ /\A(f|m|female|male)\Z/i raise "Invalid abbreviation: '#{abbr}'" end @abbr = abbr.blank? ? nil : abbr.to_s.first.downcase end def name @name ||= translation_for("name") end def subject @subject ||= translation_for("subject") end def object @object ||= translation_for("object") end def possessive @possessive ||= translation_for("possessive") end def casual @casual ||= translation_for("casual") end def capital_abbr abbr.capitalize end def male? abbr == 'm' end def female? abbr == 'f' end def to_s abbr end def ==(val) abbr.to_s == val.to_s end private def translation_for(key) case when male? then I18n.t("genderize.#{key}.masculine") when female? then I18n.t("genderize.#{key}.feminine") else nil end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
genderize-0.0.7 | lib/genderize/gender.rb |
genderize-0.0.6 | lib/genderize/gender.rb |