18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/showcase/traits/seo.rb', line 18
def seo(name = nil, options = {}, &block)
define_module_method [name, :seo_tags] do |options = {}|
meta = respond_to?(:default_seo_options) ? default_seo_options : {}
meta.merge!(Helpers::ConfigObject.new(self, &block).to_hash)
meta.merge!(options.symbolize_keys) if options
builder = Helpers::SeoMetaBuilder.new(view_context)
parts = %w(
title description site_name
card_type
canonical_url
image_url
iframe_video_url stream_video_url video_size
).map(&:to_sym)
parts.map do |tag|
builder.send(tag, meta[tag], meta.except(*parts)) if meta[tag]
end.compact.join.html_safe
end
end
|