mor 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ddaa2cec471c5f0c67af4bfabc0ef9753c5f8e36
4
- data.tar.gz: a2fb5a1f529128cefa2890385608faf55154dc5a
3
+ metadata.gz: e9fbaf0c575fa0369f6e9f02d4771b7960685255
4
+ data.tar.gz: b4d48cef64e32ffecb22a05fd529981bff8cf3d7
5
5
  SHA512:
6
- metadata.gz: 74b5fa096acbe7deee0c2a598f62f2dc3337f34a110579a4b869548eafd98cc255cf239e08812085a7eb50d24ff7db4a7e62c361ed8b5623c4a4527e63dd8051
7
- data.tar.gz: 4f0f4675842c82bef9112978d546ca15fefdac8090fc1490f5cd15b96cffa89463e61e43baaed5a5187ecdf4384ebb53b512eab8e84cde2bc3d6b8253880ce26
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
- Mor.cache.set(self.key,self)
128
+ save_to_cache
117
129
  end
118
130
  else
119
131
  run_callbacks :create do
120
- Mor.cache.set(self.key,self)
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
@@ -1,3 +1,3 @@
1
1
  module Mor
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onur Uyar