Sha256: a2c572fa49b56d9bd300e085a751553db4498ae3f66f14e7600d524bd1b8be5a
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
module Genderize class Gender include I18n attr_reader :abbr def initialize(abbr) raise "Invalid abbreviation: '#{abbr}'" unless abbr.blank? or abbr.to_s =~ /\A(f|m)\Z/i @abbr = abbr.blank? ? nil : abbr.to_s.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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
genderize-0.0.5 | lib/genderize/gender.rb |
genderize-0.0.4 | lib/genderize/gender.rb |
genderize-0.0.3 | lib/genderize/gender.rb |