meta_manager 0.0.6 → 0.0.7
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/app/models/meta_tag.rb +1 -1
- data/lib/meta_manager/taggable.rb +6 -12
- data/lib/meta_manager/version.rb +1 -1
- data/test/dummy/log/test.log +3401 -0
- data/test/models/category_test.rb +13 -2
- data/test/models/meta_tag_test.rb +3 -0
- metadata +8 -8
data/app/models/meta_tag.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class MetaTag < ::ActiveRecord::Base
|
2
2
|
belongs_to :taggable, :polymorphic => true
|
3
3
|
|
4
|
-
validates_presence_of :name, :taggable_type
|
4
|
+
validates_presence_of :name, :taggable_type, :content
|
5
5
|
validates_uniqueness_of :name, :scope => [:taggable_type, :taggable_id, :is_dynamic]
|
6
6
|
|
7
7
|
attr_accessible :name, :content, :is_dynamic
|
@@ -5,20 +5,14 @@ module MetaManager
|
|
5
5
|
included do
|
6
6
|
has_many :meta_tags, :as => :taggable, :dependent => :destroy, :autosave => true
|
7
7
|
|
8
|
-
accepts_nested_attributes_for :meta_tags, :reject_if =>
|
8
|
+
accepts_nested_attributes_for :meta_tags, :reject_if => proc { |tag| tag['content'].blank? }, :allow_destroy => true
|
9
9
|
end
|
10
|
-
|
11
|
-
# Find meta tag by name or build new record
|
12
|
-
def find_or_build_meta_tag(attr_name)
|
13
|
-
key = normalize_meta_tag_name(attr_name)
|
14
|
-
self.meta_tags.where(:name => key).first || self.meta_tags.build(:name => key)
|
15
|
-
end
|
16
|
-
|
10
|
+
|
17
11
|
# Save meta tags records into one hash
|
18
|
-
def meta_tag(attr_name)
|
12
|
+
def meta_tag(attr_name, options={})
|
19
13
|
key = normalize_meta_tag_name(attr_name)
|
20
14
|
@meta_tag ||= {}
|
21
|
-
@meta_tag[key] ||=
|
15
|
+
@meta_tag[key] ||= self.meta_tags.where(:name => key).first || (options[:build] ? self.meta_tags.build(:name => key) : nil)
|
22
16
|
end
|
23
17
|
|
24
18
|
def respond_to?(method_sym, include_private = false)
|
@@ -41,8 +35,8 @@ module MetaManager
|
|
41
35
|
if key =~ meta_match_case
|
42
36
|
attr_name = key.gsub(meta_match_case, '')
|
43
37
|
|
44
|
-
if key =~ /=$/
|
45
|
-
record = meta_tag(attr_name.chop)
|
38
|
+
if key =~ /=$/ && !args.first.blank?
|
39
|
+
record = meta_tag(attr_name.chop, :build => true)
|
46
40
|
record.content = args.first
|
47
41
|
else
|
48
42
|
meta_tag(attr_name).try(:content)
|
data/lib/meta_manager/version.rb
CHANGED