Sha256: ca5565e1438637b4cd12c2c63096b69cef814d8bcacaa77549dfb533f0068cc7

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

module TranslationCenter
  class Category < ActiveRecord::Base
    has_many :translation_keys, dependent: :destroy

    alias_method :keys, :translation_keys

    # validations
    validates :name, presence: true, uniqueness: true

    # gets how much complete translation of category is in a certain language
    def complete_percentage_in(lang)
      if self.keys.empty?
        100
      else
        accepted_keys = accepted_keys(lang)
        100 * accepted_keys.count / self.keys.count
      end
    end

    # gets the keys accepted in a certain language that belong to a category
    def accepted_keys(lang)
      self.keys.translated(lang)
    end
    alias_method :translated_keys, :accepted_keys

    # gets the keys that have no translations in the language
    def untranslated_keys(lang)
      self.keys.untranslated(lang)
    end

    # gets the keys that have no translations in the language
    def pending_keys(lang)
      self.keys.pending(lang)
    end

    def all_keys(lang)
      self.keys
    end

    # returns a name that is better for presentation
    def view_name
      self.name.titleize
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
afalkear_translation_center-1.8.2 app/models/translation_center/category.rb
afalkear_translation_center-1.8.1 app/models/translation_center/category.rb
afalkear_translation_center-1.8.0 app/models/translation_center/category.rb
afalkear_translation_center-1.7.9 app/models/translation_center/category.rb
afalkear_translation_center-1.7.8 app/models/translation_center/category.rb
afalkear_translation_center-0.0.0 app/models/translation_center/category.rb
afalkear_translation_center-1.7.7 app/models/translation_center/category.rb