seo_meta 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/seo_meta.rb +28 -23
- data/lib/seo_meta/instance_methods.rb +7 -13
- metadata +2 -2
data/lib/seo_meta.rb
CHANGED
@@ -20,27 +20,32 @@ module SeoMeta
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def is_seo_meta(options = {})
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
23
|
+
if ::SeoMetum.table_exists?
|
24
|
+
# Let the base know about SeoMetum
|
25
|
+
has_one :seo_meta, :class_name => 'SeoMetum',
|
26
|
+
:foreign_key => :seo_meta_id, :dependent => :destroy,
|
27
|
+
:conditions => {:seo_meta_type => self.name}
|
28
|
+
|
29
|
+
# Let SeoMetum know about the base
|
30
|
+
::SeoMetum.send :belongs_to, self.name.underscore.gsub('/', '_').to_sym,
|
31
|
+
:class_name => self.name
|
32
|
+
|
33
|
+
# Include the instance methods and extend with the class methods.
|
34
|
+
self.send :include, ::SeoMeta::InstanceMethods
|
35
|
+
extend ::SeoMeta::ClassMethods
|
36
|
+
|
37
|
+
# Ensure seo_meta is saved when the model is saved.
|
38
|
+
after_save :save_meta_tags
|
39
|
+
|
40
|
+
# Delegate both the accessor and setters for the fields to :seo_meta
|
41
|
+
fields = ::SeoMeta.attributes.keys.reject{|field|
|
42
|
+
self.column_names.map(&:to_sym).include?(field)
|
43
|
+
}.map{|a| [a, :"#{a}="]}.flatten
|
44
|
+
fields << {:to => :seo_meta}
|
45
|
+
|
46
|
+
delegate *fields
|
47
|
+
else
|
48
|
+
warn "[seo_meta] Table does not exist, please create #{::SeoMetum.table_name}."
|
49
|
+
warn "[seo_meta] See https://github.com/parndt/seo_meta#readme for instructions."
|
50
|
+
end
|
46
51
|
end
|
@@ -8,7 +8,7 @@ module SeoMeta
|
|
8
8
|
def seo_meta
|
9
9
|
find_seo_meta_tags || build_seo_meta_tags
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def attributes
|
13
13
|
super.merge(seo_meta_attributes)
|
14
14
|
end
|
@@ -17,9 +17,9 @@ module SeoMeta
|
|
17
17
|
attributes.update(seo_meta_attributes)
|
18
18
|
super
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def update_attributes(attributes, *args)
|
22
|
-
attributes.update(seo_meta_attributes)
|
22
|
+
attributes.update(seo_meta_attributes)
|
23
23
|
super
|
24
24
|
end
|
25
25
|
end
|
@@ -34,23 +34,17 @@ module SeoMeta
|
|
34
34
|
|
35
35
|
protected
|
36
36
|
def build_seo_meta_tags
|
37
|
-
|
38
|
-
@seo_meta ||= ::SeoMetum.new :seo_meta_type => self.class.name
|
39
|
-
end
|
37
|
+
@seo_meta ||= ::SeoMetum.new :seo_meta_type => self.class.name
|
40
38
|
end
|
41
39
|
|
42
40
|
def find_seo_meta_tags
|
43
|
-
|
44
|
-
@seo_meta ||= ::SeoMetum.where(:seo_meta_type => self.class.name,
|
41
|
+
@seo_meta ||= ::SeoMetum.where(:seo_meta_type => self.class.name,
|
45
42
|
:seo_meta_id => self.id).first
|
46
|
-
end
|
47
43
|
end
|
48
44
|
|
49
45
|
def save_meta_tags
|
50
|
-
|
51
|
-
|
52
|
-
seo_meta.save
|
53
|
-
end
|
46
|
+
seo_meta.seo_meta_id ||= self.id
|
47
|
+
seo_meta.save
|
54
48
|
end
|
55
49
|
end
|
56
50
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: seo_meta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Philip Arndt
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-04-04 00:00:00 +12:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|