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