Module: HasSetting
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/has_setting/version.rb,
lib/has_setting/formatters.rb,
lib/has_setting/ar_extensions.rb
Defined Under Namespace
Modules: ClassMethods, Formatters
Classes: Setting
Constant Summary
collapse
- VERSION =
"1.0.2"
Instance Method Summary
collapse
Instance Method Details
#has_setting_option(name) ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/has_setting/ar_extensions.rb', line 87
def has_setting_option name
klass = self.class
option = klass.has_setting_options ? klass.has_setting_options[name] : nil
while option.nil? and
klass.superclass != ActiveRecord::Base and
klass.superclass.respond_to?(:has_setting_options) and
klass.superclass.has_setting_options
klass = klass.superclass
option = klass.has_setting_options[name]
end
option
end
|
#localize?(name) ⇒ Boolean
77
78
79
80
|
# File 'lib/has_setting/ar_extensions.rb', line 77
def localize? name
options = has_setting_option name
options ? options[:localize] : false
end
|
#no_fallback?(name) ⇒ Boolean
82
83
84
85
|
# File 'lib/has_setting/ar_extensions.rb', line 82
def no_fallback? name
options = has_setting_option name
options ? options[:no_fallback] : false
end
|
#read_setting(name) ⇒ Object
68
69
70
71
72
73
74
75
|
# File 'lib/has_setting/ar_extensions.rb', line 68
def read_setting(name)
locale = localize?(name) ? I18n.locale.to_s : ""
s = self.settings.detect() {|item| item.name == name and item.locale.to_s == locale} s ||= self.settings.detect() {|item| item.name == name} unless no_fallback?(name) s
end
|
#write_setting(name, value) ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/has_setting/ar_extensions.rb', line 57
def write_setting(name, value)
locale = localize?(name) ? I18n.locale : nil
setting = self.settings.detect() {|item| item.name == name and item.locale.to_s == locale.to_s }
setting = self.settings.build(:name => name, locale: locale) if setting.blank?
setting.value = value
self.updated_at = Time.now if self.respond_to?(:updated_at)
end
|