metamagic 1.0.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/metamagic.rb +0 -2
- data/lib/metamagic/helper_methods.rb +40 -26
- metadata +5 -5
data/lib/metamagic.rb
CHANGED
@@ -1,38 +1,52 @@
|
|
1
1
|
module Metamagic
|
2
2
|
module HelperMethods
|
3
|
-
def
|
4
|
-
@meta_tags
|
3
|
+
def meta_tags
|
4
|
+
@meta_tags ||= []
|
5
|
+
end
|
6
|
+
|
7
|
+
def meta(*options)
|
8
|
+
# add page specific meta tags
|
9
|
+
add_meta_tags options
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_tag_if_not_existing(new_tag)
|
13
|
+
# add meta tag if it's not existing
|
14
|
+
unless meta_tags.find { |tag| tag[:name] && new_tag[:name] && tag[:name] == new_tag[:name] }
|
15
|
+
meta_tags << new_tag
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_meta_tags(options)
|
20
|
+
options.each do |option|
|
21
|
+
if option.is_a?(Hash)
|
22
|
+
option.each_pair do |key, value|
|
23
|
+
add_tag_if_not_existing :name => key, :content => value
|
24
|
+
end
|
25
|
+
elsif option.is_a?(Array)
|
26
|
+
option.each do |tag|
|
27
|
+
add_tag_if_not_existing tag
|
28
|
+
end
|
29
|
+
else
|
30
|
+
raise TypeError, "Unknown tag type #{tag.class.name}. Use either Hash or Array."
|
31
|
+
end
|
32
|
+
end
|
5
33
|
end
|
6
34
|
|
7
|
-
def metamagic(options
|
8
|
-
|
9
|
-
|
35
|
+
def metamagic(*options)
|
36
|
+
# apply default meta tags if they don't exist
|
37
|
+
add_meta_tags options
|
38
|
+
|
39
|
+
# loop through the added tags
|
10
40
|
out = []
|
11
|
-
|
12
|
-
if
|
13
|
-
out << content_tag(:title,
|
41
|
+
meta_tags.each do |tag|
|
42
|
+
if tag[:name] == :title
|
43
|
+
out << content_tag(:title, tag[:content])
|
14
44
|
else
|
15
|
-
|
16
|
-
|
17
|
-
if value.is_a?(Hash)
|
18
|
-
props.merge! value
|
19
|
-
else
|
20
|
-
props[:content] = value
|
21
|
-
end
|
22
|
-
|
23
|
-
# loop through each property to find
|
24
|
-
# arrays that need to be joined
|
25
|
-
props.each_pair do |propkey, propvalue|
|
26
|
-
if propvalue.is_a?(Array)
|
27
|
-
propvalue = propvalue.join(", ")
|
28
|
-
end
|
29
|
-
props[propkey] = propvalue
|
30
|
-
end
|
31
|
-
|
32
|
-
out << tag("meta", props) if value
|
45
|
+
out << tag(:meta, tag)
|
33
46
|
end
|
34
47
|
end
|
35
48
|
|
49
|
+
# return tags
|
36
50
|
out.join.html_safe
|
37
51
|
end
|
38
52
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metamagic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version:
|
9
|
+
- 0
|
10
|
+
version: 2.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Lasse Bunk
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-05-
|
18
|
+
date: 2012-05-28 00:00:00 Z
|
19
19
|
dependencies: []
|
20
20
|
|
21
21
|
description: Metamagic is a simple Ruby on Rails plugin for creating meta tags.
|