model_cached 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/model_cached.rb CHANGED
@@ -8,6 +8,7 @@ module ModelCached
8
8
  options = {logical_delete: nil, scope: nil}.merge(column_names.extract_options!)
9
9
  options[:columns] = column_names
10
10
  after_save :refresh_mc_keys
11
+ after_touch :refresh_mc_keys
11
12
  after_destroy :expire_mc_keys
12
13
  class_eval %{ def self.mc_options; #{options}; end }
13
14
  column_names.each do |column|
Binary file
data/model_cached.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'model_cached'
3
- s.version = '0.1.1'
3
+ s.version = '0.1.2'
4
4
  s.authors = ['Ary Djmal']
5
5
  s.email = ['arydjmal@gmail.com']
6
6
  s.summary = 'Rails gem that gives you the ability to transparently cache single active record objects using memcached.'
data/test/helper.rb CHANGED
@@ -13,12 +13,14 @@ ActiveRecord::Base.establish_connection({
13
13
  ActiveRecord::Schema.define do
14
14
  create_table :accounts do |t|
15
15
  t.string :name
16
+ t.timestamps
16
17
  end
17
18
 
18
19
  create_table :users do |t|
19
20
  t.string :email
20
21
  t.integer :account_id
21
22
  t.boolean :deleted
23
+ t.timestamps
22
24
  end
23
25
  end
24
26
 
@@ -81,9 +81,12 @@ end
81
81
 
82
82
  class ModelCachedWithScopeTest < Test::Unit::TestCase
83
83
  def setup
84
+ Account.delete_all
84
85
  User.delete_all
85
- User.send(:cache_by, :id, :email, :scope => :account_id)
86
- @account = Account.create!(:name => 'Natural Bits')
86
+ Account.send(:cache_by, :name)
87
+ User.send(:belongs_to, :account, touch: true)
88
+ User.send(:cache_by, :id, :email, scope: :account_id)
89
+ @account = Account.create!(:name => 'NaturalBits')
87
90
  @ary = @account.users.create!(:email => 'Ary')
88
91
  @nati = @account.users.create!(:email => 'Nati')
89
92
  Rails.cache.clear
@@ -138,6 +141,15 @@ class ModelCachedWithScopeTest < Test::Unit::TestCase
138
141
  assert_equal nil, Rails.cache.read("users/email/Ary/account_id:#{@account.id}")
139
142
  assert_equal @ary, Rails.cache.read("users/email/new_email/account_id:#{@account.id}")
140
143
  end
144
+
145
+ def test_refresh_on_parent_touch
146
+ assert_equal nil, Rails.cache.read('accounts/name/NaturalBits')
147
+ @account = Account.find_by_name('NaturalBits')
148
+ assert_equal @account.cache_key, Rails.cache.read('accounts/name/NaturalBits').cache_key
149
+ sleep 1.second
150
+ @ary.save!
151
+ assert_not_equal @account.cache_key, Rails.cache.read('accounts/name/NaturalBits').cache_key
152
+ end
141
153
  end
142
154
 
143
155
  class ModelCachedWithLogicalDeleteTest < Test::Unit::TestCase
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_cached
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-28 00:00:00.000000000Z
12
+ date: 2012-08-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70242198005580 !ruby/object:Gem::Requirement
16
+ requirement: &70278648773480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70242198005580
24
+ version_requirements: *70278648773480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70242198004980 !ruby/object:Gem::Requirement
27
+ requirement: &70278648772620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70242198004980
35
+ version_requirements: *70278648772620
36
36
  description:
37
37
  email:
38
38
  - arydjmal@gmail.com
@@ -43,6 +43,7 @@ files:
43
43
  - ./lib/model_cached.rb
44
44
  - ./MIT-LICENSE
45
45
  - ./model_cached-0.1.0.gem
46
+ - ./model_cached-0.1.1.gem
46
47
  - ./model_cached.gemspec
47
48
  - ./Rakefile
48
49
  - ./README.rdoc