27
28
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
56
57
58
59
60
|
# File 'lib/meta_tags_helpers.rb', line 27
def meta_tags(opts = {})
opts = normalize_meta_hash(opts)
default = {
:charset => "utf-8",
:"X-UA-Compatible" => "IE=edge,chrome=1",
:viewport => "width=device-width",
:"og:url" => "#{request.url}",
:"og:type" => "article",
:"og:title" => opts[:title],
:"og:description" => opts[:description],
:"og:image" => opts[:"og:image"],
:"csrf-param" => request_forgery_protection_token,
:"csrf-token" => form_authenticity_token
}
override_hash = controller.instance_variable_get("@_meta_tags_hash") || {}
meta_hash = default.deep_merge(opts).deep_merge(override_hash)
html = ""
html << "<title>#{h(meta_hash.delete(:title)) }</title>\n"
meta_hash.each {|k,value_or_array|
values = value_or_array.is_a?(Array) ? value_or_array : [value_or_array]
values.each { |v|
if k.to_s =~ /[a-zA-Z_][-a-zA-Z0-9_.]\:/
html << "<meta property=\"#{h(k)}\" content=\"#{h(v)}\" />\n"
else
html << "<meta name=\"#{h(k)}\" content=\"#{h(v)}\" />\n"
end
}
}
html.html_safe
end
|