Module: DynMeta::Helper
- Defined in:
- lib/dyn_meta.rb
Instance Method Summary collapse
-
#meta(name, interpolations = nil) ⇒ Object
allow setting, getting, and configuration of meta content.
Instance Method Details
#meta(name, interpolations = nil) ⇒ Object
allow setting, getting, and configuration of meta content. utilizes i18n and the current request to build meta content
Usage:
Request 1:
meta(:page_title, "Some String") => "Some String"
meta(:page_title) => "Some String"
Request 2:
assuming t('meta.page_titles.[controller].[action].default') == "Some Page Title"
meta(:page_title) => "Some Page Title"
Request 3:
assuming t('meta.page_titles.[controller].[action].default') == "%{geo_name} Title"
meta(:page_title, :geo_name => "Atlantis")
meta(:page_title) => "Atlantis Title"
Request 4:
assuming t('meta.page_titles.[controller].custom_action.default') == "Special Title"
meta(:page_title, :alt => {:action => 'custom_action'}) => "Special Title"
meta(:page_title) => "Special Title"
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/dyn_meta.rb', line 29 def (name, interpolations = nil) instance_name = "@dyn_meta_#{name}" return instance_variable_get(instance_name) if interpolations.nil? && instance_variable_get(instance_name) return instance_variable_set(instance_name, interpolations) if interpolations.is_a?(String) interpolations ||= {} alt_params = interpolations[:alt] || {} param_hash = params.merge(alt_params) interpolations.except!(:alt) keys = ["#{}.#{name.to_s.pluralize}", "#{}.#{name.to_s.pluralize}.default"] [:controller, :action, :id].each do |param| key = param_hash[param] break if key.blank? prev = keys.first keys.unshift("#{prev}.#{key}.default") keys.unshift("#{prev}.#{key}") end val = (keys, interpolations) instance_variable_set(instance_name, val) end |