Class: Lit::LocalizationKey

Inherits:
Base
  • Object
show all
Defined in:
app/models/lit/localization_key.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#retried_created, #retried_updated

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#mark_for_retry, #rolledback_after_insert?, #rolledback_after_update?

Instance Attribute Details

#interpolated_keyObject

Returns the value of attribute interpolated_key.



3
4
5
# File 'app/models/lit/localization_key.rb', line 3

def interpolated_key
  @interpolated_key
end

Class Method Details

.default_search_optionsObject

it can be overridden in parent application, for example: => “created_at desc”



60
61
62
# File 'app/models/lit/localization_key.rb', line 60

def self.default_search_options
  {}
end

.order_optionsObject



53
54
55
56
# File 'app/models/lit/localization_key.rb', line 53

def self.order_options
  ['localization_key asc', 'localization_key desc', 'created_at asc',
   'created_at desc', 'updated_at asc', 'updated_at desc']
end

.search(options = {}) ⇒ Object



64
65
66
# File 'app/models/lit/localization_key.rb', line 64

def self.search(options = {})
  LocalizationKeySearchQuery.new(self, options).perform
end

Instance Method Details

#change_all_completedObject



68
69
70
71
72
73
# File 'app/models/lit/localization_key.rb', line 68

def change_all_completed
  self.class.transaction do
    toggle(:is_completed).save!
    localizations.update_all is_changed: is_completed
  end
end

#clone_localizationsObject



40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/lit/localization_key.rb', line 40

def clone_localizations
  new_created = false
  Lit::Locale.find_each do |locale|
    localizations.where(locale_id: locale.id).first_or_create do |l|
      l.default_value = interpolated_key
      new_created = true
    end
  end
  return unless new_created
  Lit::LocalizationKey.update_all ['is_completed=?', false],
                                  ['id=? and is_completed=?', id, false]
end

#completedObject

SCOPES



6
# File 'app/models/lit/localization_key.rb', line 6

scope :completed, -> { where(is_completed: true) }

#localization_keyObject

VALIDATIONS



23
24
25
# File 'app/models/lit/localization_key.rb', line 23

validates :localization_key,
presence: true,
uniqueness: { if: :localization_key_changed? }

#localizationsObject

ASSOCIATIONS



20
# File 'app/models/lit/localization_key.rb', line 20

has_many :localizations, dependent: :destroy

#remove_from_cacheObject



83
84
85
86
87
# File 'app/models/lit/localization_key.rb', line 83

def remove_from_cache
  Lit::Locale.pluck(:locale).each do |l|
    Lit.init.cache.delete_key "#{l}.#{localization_key}"
  end
end

#restoreObject



89
90
91
92
93
94
# File 'app/models/lit/localization_key.rb', line 89

def restore
  ActiveRecord::Base.transaction do
    update is_deleted: false, is_completed: false, is_visited_again: false
    localizations.update_all is_changed: false
  end
end

#soft_destroyObject



75
76
77
78
79
80
81
# File 'app/models/lit/localization_key.rb', line 75

def soft_destroy
  ActiveRecord::Base.transaction do
    update is_deleted: true
    change_all_completed
    remove_from_cache
  end
end

#to_sObject



36
37
38
# File 'app/models/lit/localization_key.rb', line 36

def to_s
  localization_key
end