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 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