Sha256: 554796308fa5305d3b6811c624f7d5ac27b4cfef11a5a4fd8f31b2c3186995bc

Contents?: true

Size: 763 Bytes

Versions: 8

Compression:

Stored size: 763 Bytes

Contents

module Lolita
  class ModelName
    def initialize(given_class)
      @klass = given_class
      @class_name = @klass.to_s
    end

    def human(options={})
      name = if defined?(ActiveRecord::Base) && @klass.ancestors.include?(ActiveRecord::Base)
        "activerecord.models.#{@class_name.underscore}"
      else
        "lolita.models.#{@class_name.underscore.gsub("/",".")}"
      end
      ::I18n.t("#{name}.#{prefix(options)}")
    end

    private

    def prefix options
      if options[:count]
        if options[:count] == 1
          "one"
        else
          "other"
        end
      else
        "one"
      end
    end
  end
end

Object.class_eval do 
  def lolita_model_name
    @lolita_model_name ||= Lolita::ModelName.new(self)
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
lolita-3.2.0.rc.17 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.16 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.14 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.13 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.12 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.11 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.10 lib/lolita/ruby_ext/lolita_model_name.rb
lolita-3.2.0.rc.9 lib/lolita/ruby_ext/lolita_model_name.rb