Class: LocalizableValue::LocalizedPage

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/localizable_value/app/models/localized_page.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.by_locale(locale, page_uid) ⇒ Object



24
25
26
# File 'lib/localizable_value/app/models/localized_page.rb', line 24

def self.by_locale(locale, page_uid)
  LocalizedPage.find_or_create_by(locale: locale.to_s.downcase, page_uid: page_uid)
end

.current_page(controller_name, action_name) ⇒ Object



20
21
22
# File 'lib/localizable_value/app/models/localized_page.rb', line 20

def self.current_page(controller_name, action_name)
  LocalizedPage.by_locale(I18n.locale.to_s.downcase, controller_name + '#' + action_name)
end

.global_pageObject



16
17
18
# File 'lib/localizable_value/app/models/localized_page.rb', line 16

def self.global_page
  @@global_page ||= LocalizedPage.by_locale(I18n.locale.to_s.downcase, 'GLOBAL')
end

Instance Method Details

#get_grouped_value_list(prefix_key, main_property = 'title') ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/localizable_value/app/models/localized_page.rb', line 47

def get_grouped_value_list(prefix_key, main_property = 'title')
  values = localized_values.where(localized_page: self).where('key like ? and key like ?', prefix_key + '_%', '%_' + main_property.to_s).order('key ASC')
  group = values.map { |item| 
    group = LocalizedGroup.new
    group.page = self
    group.prefix_key = prefix_key + '_' + item.get_grouped_value_order_key(prefix_key)
    group
  }
end

#get_last_grouped_value_order(prefix_key) ⇒ Object



42
43
44
45
# File 'lib/localizable_value/app/models/localized_page.rb', line 42

def get_last_grouped_value_order(prefix_key)
  values = localized_values.where(localized_page: self).where('key like ?', prefix_key + '_%' ).order('key DESC')
  return values.first ? values.first.get_grouped_value_order(prefix_key) : 0
end

#get_value(key, default_value, type = nil) ⇒ Object



28
29
30
31
32
# File 'lib/localizable_value/app/models/localized_page.rb', line 28

def get_value(key, default_value, type = nil)
  value = localized_values.select { |v| v.key == key && v.type == type }.first
  value = localized_values.create(localized_page: self, key: key, type: type, value: default_value) if !value
  value
end

#insert_grouped_values(prefix_key, values) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/localizable_value/app/models/localized_page.rb', line 34

def insert_grouped_values(prefix_key, values)
  new_order = get_last_grouped_value_order(prefix_key) + 1
  values.each do |property, text| 
    key = "%s_%04d_%s" % [prefix_key, new_order, property.to_s]
    get_value(key, text)
  end
end