Module: BetterSeo::Rails::Helpers::ControllerHelpers
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/better_seo/rails/helpers/controller_helpers.rb
Instance Method Summary collapse
-
#better_seo_data ⇒ Object
Get all SEO data stored in controller.
-
#set_canonical(url) ⇒ Object
Set canonical URL.
-
#set_meta_tags(data = nil, &block) ⇒ Object
Set meta tags data.
-
#set_noindex(nofollow: false) ⇒ Object
Set noindex robot directive.
-
#set_og_tags(data = nil, &block) ⇒ Object
Set Open Graph tags data.
-
#set_page_description(description, max_length: nil) ⇒ Object
Set page description with optional truncation.
-
#set_page_image(url, width: nil, height: nil) ⇒ Object
Set page image for both OG and Twitter.
-
#set_page_keywords(keywords) ⇒ Object
Set page keywords (array or comma-separated string).
-
#set_page_title(title, prefix: nil, suffix: nil) ⇒ Object
Set page title with optional prefix/suffix.
-
#set_twitter_tags(data = nil, &block) ⇒ Object
Set Twitter Card tags data.
Instance Method Details
#better_seo_data ⇒ Object
Get all SEO data stored in controller
104 105 106 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 104 def better_seo_data @_better_seo_data ||= {} end |
#set_canonical(url) ⇒ Object
Set canonical URL
47 48 49 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 47 def set_canonical(url) merge_seo_data(:meta, { canonical: url }) end |
#set_meta_tags(data = nil, &block) ⇒ Object
Set meta tags data
14 15 16 17 18 19 20 21 22 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 14 def (data = nil, &block) if block_given? = {} yield() merge_seo_data(:meta, ) else merge_seo_data(:meta, data) end end |
#set_noindex(nofollow: false) ⇒ Object
Set noindex robot directive
96 97 98 99 100 101 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 96 def set_noindex(nofollow: false) robots = "noindex" robots += ", nofollow" if nofollow merge_seo_data(:meta, { robots: robots }) end |
#set_og_tags(data = nil, &block) ⇒ Object
Set Open Graph tags data
25 26 27 28 29 30 31 32 33 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 25 def (data = nil, &block) if block_given? og_data = {} yield(og_data) merge_seo_data(:og, og_data) else merge_seo_data(:og, data) end end |
#set_page_description(description, max_length: nil) ⇒ Object
Set page description with optional truncation
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 62 def set_page_description(description, max_length: nil) final_description = description # rubocop:disable Style/IfUnlessModifier if max_length && description.length > max_length final_description = "#{description[0...(max_length - 3)]}..." end # rubocop:enable Style/IfUnlessModifier merge_seo_data(:meta, { description: final_description }) end |
#set_page_image(url, width: nil, height: nil) ⇒ Object
Set page image for both OG and Twitter
86 87 88 89 90 91 92 93 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 86 def set_page_image(url, width: nil, height: nil) og_data = { image: url } og_data[:image_width] = width if width og_data[:image_height] = height if height merge_seo_data(:og, og_data) merge_seo_data(:twitter, { image: url }) end |
#set_page_keywords(keywords) ⇒ Object
Set page keywords (array or comma-separated string)
75 76 77 78 79 80 81 82 83 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 75 def set_page_keywords(keywords) keywords_array = if keywords.is_a?(String) keywords.split(",").map(&:strip) else keywords end merge_seo_data(:meta, { keywords: keywords_array }) end |
#set_page_title(title, prefix: nil, suffix: nil) ⇒ Object
Set page title with optional prefix/suffix
52 53 54 55 56 57 58 59 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 52 def set_page_title(title, prefix: nil, suffix: nil) full_title = "" full_title += prefix if prefix full_title += title full_title += suffix if suffix merge_seo_data(:meta, { title: full_title }) end |
#set_twitter_tags(data = nil, &block) ⇒ Object
Set Twitter Card tags data
36 37 38 39 40 41 42 43 44 |
# File 'lib/better_seo/rails/helpers/controller_helpers.rb', line 36 def (data = nil, &block) if block_given? twitter_data = {} yield(twitter_data) merge_seo_data(:twitter, twitter_data) else merge_seo_data(:twitter, data) end end |