Module: Gluttonberg::Content::Localization::Model::InstanceMethods
- Defined in:
- lib/gluttonberg/content/localization.rb
Instance Method Summary collapse
-
#create_localization(locale) ⇒ Object
create localization for given locale (locale id or object both are acceptable) if it does not exist.
-
#current_localization ⇒ Object
returns current localization if current localization does not exist then init it with default localization.
- #current_localization=(localization) ⇒ Object
-
#load_localization(locale, fallback = true) ⇒ Object
load locaization for given locale (locale id or locale objects both are acceptable) if localization for given locale does not exist then create localization for it and if creation of localization failed then return default localization.
- #localized? ⇒ Boolean
Instance Method Details
#create_localization(locale) ⇒ Object
create localization for given locale (locale id or object both are acceptable) if it does not exist
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'lib/gluttonberg/content/localization.rb', line 178 def create_localization(locale) locale_id = locale.kind_of?(Gluttonberg::Locale) ? locale.id: locale unless locale.blank? loc = self.class.localized_model.where(:locale_id => locale_id, :parent_id => self.id).first if loc.blank? tmp_current = self.current_localization tmp_attributes = tmp_current.attributes tmp_attributes[:locale_id] = locale_id loc = self.class.localized_model.new(:locale_id => locale_id) loc.attributes = tmp_attributes if loc.save loc else nil end end end end |
#current_localization ⇒ Object
returns current localization if current localization does not exist then init it with default localization
144 145 146 147 148 149 |
# File 'lib/gluttonberg/content/localization.rb', line 144 def current_localization if @current_localization.blank? @current_localization = self.default_localization end @current_localization end |
#current_localization=(localization) ⇒ Object
151 152 153 |
# File 'lib/gluttonberg/content/localization.rb', line 151 def current_localization=(localization) self.instance_variable_set(:@current_localization, localization) end |
#load_localization(locale, fallback = true) ⇒ Object
load locaization for given locale (locale id or locale objects both are acceptable) if localization for given locale does not exist then create localization for it and if creation of localization failed then return default localization
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/gluttonberg/content/localization.rb', line 158 def load_localization(locale, fallback = true) opts = {} opts[:locale_id] = locale.kind_of?(Gluttonberg::Locale) ? locale.id: locale opts[:parent_id] = self.id # Go and find the localization self.current_localization = nil self.current_localization = self.class.localized_model.where(opts).first if @current_localization.blank? && !locale.blank? self.current_localization = self.create_localization(locale) end # Check to see if we missed the load and if we also need the fallback if self.current_localization.blank? && fallback self.current_localization = self.default_localization end self.current_localization end |
#localized? ⇒ Boolean
139 140 141 |
# File 'lib/gluttonberg/content/localization.rb', line 139 def localized? self.class.is_localized? end |