mor 0.0.2 → 0.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.
- checksums.yaml +4 -4
 - data/lib/mor/model.rb +23 -5
 - data/lib/mor/version.rb +1 -1
 - data/spec/model_spec.rb +7 -1
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e9fbaf0c575fa0369f6e9f02d4771b7960685255
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b4d48cef64e32ffecb22a05fd529981bff8cf3d7
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f9e94f7868f652cb693b4fbd0d639cad8979d711a116318d66d354f9bb4f1e73b5ce2295002fe5dce43aba33efb8e20e848e781d9b8385f4df2968ded03310ab
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 6257094de067da43fa0aa5ff90ba371264f95b7a456e061c78f20834786d71866f917868d1b3bf78cabb9204a3dcf2d7041da2b2d23c5aaae9758f3b516ad48e
         
     | 
    
        data/lib/mor/model.rb
    CHANGED
    
    | 
         @@ -38,22 +38,34 @@ module Mor 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                  def find id
         
     | 
| 
       41 
     | 
    
         
            -
                    Mor.cache.get(key(id))
         
     | 
| 
      
 41 
     | 
    
         
            +
                    self.deserialize(Mor.cache.get(key(id)))
         
     | 
| 
       42 
42 
     | 
    
         
             
                  end
         
     | 
| 
       43 
43 
     | 
    
         | 
| 
       44 
44 
     | 
    
         
             
                  def all
         
     | 
| 
       45 
45 
     | 
    
         
             
                    self.index.map{|id| find(id) }
         
     | 
| 
       46 
46 
     | 
    
         
             
                  end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
      
 48 
     | 
    
         
            +
                  def serialize object
         
     | 
| 
      
 49 
     | 
    
         
            +
                    object
         
     | 
| 
      
 50 
     | 
    
         
            +
                  end
         
     | 
| 
      
 51 
     | 
    
         
            +
                  
         
     | 
| 
      
 52 
     | 
    
         
            +
                  def deserialize object
         
     | 
| 
      
 53 
     | 
    
         
            +
                    object
         
     | 
| 
      
 54 
     | 
    
         
            +
                  end      
         
     | 
| 
      
 55 
     | 
    
         
            +
                  
         
     | 
| 
       48 
56 
     | 
    
         
             
                end
         
     | 
| 
       49 
57 
     | 
    
         | 
| 
       50 
58 
     | 
    
         
             
                extend ActiveSupport::Concern
         
     | 
| 
       51 
59 
     | 
    
         | 
| 
       52 
60 
     | 
    
         
             
                included do
         
     | 
| 
       53 
61 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
                  include ActiveModel::Model
         
     | 
| 
      
 62 
     | 
    
         
            +
                  include ActiveModel::Model      
         
     | 
| 
      
 63 
     | 
    
         
            +
                  extend ActiveModel::Callbacks     
         
     | 
| 
      
 64 
     | 
    
         
            +
                  include ActiveModel::Validations      
         
     | 
| 
      
 65 
     | 
    
         
            +
                  include ActiveModel::Validations::Callbacks
         
     | 
| 
      
 66 
     | 
    
         
            +
                            
         
     | 
| 
      
 67 
     | 
    
         
            +
                  define_model_callbacks :save, :create, :update, :destroy
         
     | 
| 
       55 
68 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
                  define_model_callbacks :create, :update, :destroy
         
     | 
| 
       57 
69 
     | 
    
         
             
                  validates_presence_of :id
         
     | 
| 
       58 
70 
     | 
    
         
             
                  validate :validate_uniqueness_of_id, unless: "persisted?"
         
     | 
| 
       59 
71 
     | 
    
         
             
                  after_create :add_to_index
         
     | 
| 
         @@ -113,11 +125,11 @@ module Mor 
     | 
|
| 
       113 
125 
     | 
    
         
             
                def save_or_update
         
     | 
| 
       114 
126 
     | 
    
         
             
                  if self.persisted?
         
     | 
| 
       115 
127 
     | 
    
         
             
                    run_callbacks :update do
         
     | 
| 
       116 
     | 
    
         
            -
                       
     | 
| 
      
 128 
     | 
    
         
            +
                      save_to_cache
         
     | 
| 
       117 
129 
     | 
    
         
             
                    end
         
     | 
| 
       118 
130 
     | 
    
         
             
                  else
         
     | 
| 
       119 
131 
     | 
    
         
             
                    run_callbacks :create do
         
     | 
| 
       120 
     | 
    
         
            -
                       
     | 
| 
      
 132 
     | 
    
         
            +
                      save_to_cache
         
     | 
| 
       121 
133 
     | 
    
         
             
                    end
         
     | 
| 
       122 
134 
     | 
    
         
             
                  end
         
     | 
| 
       123 
135 
     | 
    
         
             
                end
         
     | 
| 
         @@ -130,5 +142,11 @@ module Mor 
     | 
|
| 
       130 
142 
     | 
    
         
             
                  self.class.index = self.class.index.tap{ |ids| ids.delete(self.id) } 
         
     | 
| 
       131 
143 
     | 
    
         
             
                end
         
     | 
| 
       132 
144 
     | 
    
         | 
| 
      
 145 
     | 
    
         
            +
                def save_to_cache
         
     | 
| 
      
 146 
     | 
    
         
            +
                  run_callbacks :save do
         
     | 
| 
      
 147 
     | 
    
         
            +
                    Mor.cache.set(self.key,self.class.serialize(self))
         
     | 
| 
      
 148 
     | 
    
         
            +
                  end
         
     | 
| 
      
 149 
     | 
    
         
            +
                end
         
     | 
| 
      
 150 
     | 
    
         
            +
                
         
     | 
| 
       133 
151 
     | 
    
         
             
              end
         
     | 
| 
       134 
152 
     | 
    
         
             
            end
         
     | 
    
        data/lib/mor/version.rb
    CHANGED
    
    
    
        data/spec/model_spec.rb
    CHANGED
    
    | 
         @@ -3,7 +3,13 @@ require 'mor/model' 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            class TestModel
         
     | 
| 
       5 
5 
     | 
    
         
             
              include Mor::Model
         
     | 
| 
       6 
     | 
    
         
            -
              attr_accessor :id, :title, :body
         
     | 
| 
      
 6 
     | 
    
         
            +
              attr_accessor :id, :title, :body, :slug
         
     | 
| 
      
 7 
     | 
    
         
            +
              validates_presence_of :slug
         
     | 
| 
      
 8 
     | 
    
         
            +
              before_validation :set_slug 
         
     | 
| 
      
 9 
     | 
    
         
            +
              private
         
     | 
| 
      
 10 
     | 
    
         
            +
              def set_slug
         
     | 
| 
      
 11 
     | 
    
         
            +
                self.slug = title.downcase
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
       7 
13 
     | 
    
         
             
            end
         
     | 
| 
       8 
14 
     | 
    
         | 
| 
       9 
15 
     | 
    
         
             
            describe Mor::Model do
         
     |