Module: MetaHelper
- Includes:
- ActionView::Helpers::TagHelper
- Defined in:
- app/helpers/meta_helper.rb
Constant Summary collapse
- META_TAG_SYNONYMS =
{ 'title' => %w[og:title], 'description' => %w[description og:description] }.freeze
Instance Method Summary collapse
- #render_local_meta_tags(record) ⇒ Object
- #render_meta_page_description(record = nil, _options = {}) ⇒ Object
- #render_meta_page_title(record = nil, _options = {}) ⇒ Object
Instance Method Details
#render_local_meta_tags(record) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/helpers/meta_helper.rb', line 10 def (record) return if record.nil? dynamic = instance_variable_get('@meta_dynamic') rendered = [] (record, dynamic).each do || tag_name = .name.gsub(/_#{I18n.locale}$/, '') tag_name = 'og:title' if tag_name == 'title' type = tag_name =~ /og:/ ? 'property' : 'name' tag_content = (, name: tag_name) next if tag_content.blank? rendered << tag(:meta, content: tag_content, type => tag_name) rendered << tag(:meta, property: 'og:description', content: tag_content) if tag_name == 'description' end rendered.join("\n\s\s") end |
#render_meta_page_description(record = nil, _options = {}) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/helpers/meta_helper.rb', line 45 def (record = nil, = {}) dynamic = instance_variable_get('@meta_dynamic') = (record, dynamic) title_tag = .detect { |t| t.name == "description_#{I18n.locale}" } title_tag ||= .detect { |t| t.name == "description_#{I18n.default_locale}" } title_tag ||= .detect { |t| t.name == 'title' } title_tag.reload if title_tag&.changed? title_tag ||= MetaTag.new(name: 'title', content: get_page_title(record)) if controller.respond_to?(:render_meta_tag_content_title, true) controller.send(:render_meta_tag_content_title, title_tag) end (title_tag.get_content(self)) end |
#render_meta_page_title(record = nil, _options = {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/helpers/meta_helper.rb', line 29 def (record = nil, = {}) dynamic = instance_variable_get('@meta_dynamic') = (record, dynamic) title_tag = .detect { |t| t.name == "title_#{I18n.locale}" } title_tag ||= .detect { |t| t.name == "title_#{I18n.default_locale}" } title_tag ||= .detect { |t| t.name == 'title' } title_tag.reload if title_tag&.changed? title_tag ||= MetaTag.new(name: 'title', content: get_page_title(record)) if controller.respond_to?(:render_meta_tag_content_title, true) controller.send(:render_meta_tag_content_title, title_tag) end (title_tag.get_content(self)) end |