second_level_cache 2.0.0 → 2.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in second_level_cache.gemspec
4
4
  gemspec
5
+ gem 'rails', '4.1.0.rc1'
data/README.md CHANGED
@@ -79,7 +79,7 @@ Only `SELECT *` query will be cached:
79
79
  User.select("id, name").find(1)
80
80
  ```
81
81
 
82
- Notice:
82
+ ## Notice
83
83
 
84
84
  * SecondLevelCache cache by model name and id, so only find_one query will work.
85
85
  * Only equal conditions query WILL get cache; and SQL string query like `User.where("name = 'Hooopo'").find(1)` WILL NOT work.
@@ -101,6 +101,12 @@ end # <- Cache write
101
101
  Rails.logger.info "info"
102
102
  ```
103
103
 
104
+ * If you are using SecondLevelCache with database_cleaner, you should set cleaning strategy to `:truncation`:
105
+
106
+ ```ruby
107
+ DatabaseCleaner.strategy = :truncation
108
+ ```
109
+
104
110
  ## Configure
105
111
 
106
112
  In production env, we recommend to use [Dalli](https://github.com/mperham/dalli) as Rails cache store.
@@ -17,12 +17,11 @@ module SecondLevelCache
17
17
 
18
18
  map_cache_keys = ids.map{|id| klass.second_level_cache_key(id)}
19
19
  records_from_cache = ::SecondLevelCache.cache_store.read_multi(*map_cache_keys)
20
-
21
20
  # NOTICE
22
21
  # Rails.cache.read_multi return hash that has keys only hitted.
23
22
  # eg. Rails.cache.read_multi(1,2,3) => {2 => hit_value, 3 => hit_value}
24
- hitted_ids = records_from_cache.map{|key, _| key.split("/")[2]}
25
- missed_ids = ids - hitted_ids
23
+ hitted_ids = records_from_cache.map{|key, _| key.split("/")[2].to_i}
24
+ missed_ids = ids.map{|x| x.to_i} - hitted_ids
26
25
 
27
26
  ::SecondLevelCache::Config.logger.info "missed ids -> #{missed_ids.inspect} | hitted ids -> #{hitted_ids.inspect}"
28
27
 
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module SecondLevelCache
3
- VERSION = "2.0.0"
3
+ VERSION = "2.1.0.rc1"
4
4
  end
@@ -30,10 +30,10 @@ Gem::Specification.new do |gem|
30
30
  gem.require_paths = ["lib"]
31
31
  gem.version = SecondLevelCache::VERSION
32
32
 
33
- gem.add_runtime_dependency "activesupport", ["~> 4.0.0.beta1"]
33
+ gem.add_runtime_dependency "activesupport", ["> 4.0.0", "< 5.0"]
34
34
 
35
- gem.add_development_dependency "activerecord", ["~> 4.0.0.beta1"]
35
+ gem.add_development_dependency "activerecord", ["> 4.0.0", "< 5.0"]
36
36
  gem.add_development_dependency "sqlite3"
37
37
  gem.add_development_dependency "rake"
38
- gem.add_development_dependency "database_cleaner", "~> 1.0.0.RC1"
38
+ gem.add_development_dependency "database_cleaner", "~> 1.2.0"
39
39
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::BaseTest < Test::Unit::TestCase
4
+ class ActiveRecord::BaseTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::BelongsToAssociationTest < Test::Unit::TestCase
4
+ class ActiveRecord::BelongsToAssociationTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::FetchByUinqKeyTest < Test::Unit::TestCase
4
+ class ActiveRecord::FetchByUinqKeyTest < Minitest::Test
5
5
  def setup
6
6
  DatabaseCleaner[:active_record].start
7
7
  @user = User.create :name => 'hooopo', :email => 'hoooopo@gmail.com'
@@ -23,7 +23,7 @@ class ActiveRecord::FetchByUinqKeyTest < Test::Unit::TestCase
23
23
  end
24
24
 
25
25
  def test_should_fail_when_fetch_by_uniq_key_with_bang_method
26
- assert_raise(ActiveRecord::RecordNotFound) do
26
+ assert_raises(ActiveRecord::RecordNotFound) do
27
27
  User.fetch_by_uniq_key!(@user.name + "not_exist", :name)
28
28
  end
29
29
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::FinderMethodsTest < Test::Unit::TestCase
4
+ class ActiveRecord::FinderMethodsTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
@@ -28,7 +28,7 @@ class ActiveRecord::FinderMethodsTest < Test::Unit::TestCase
28
28
  def test_should_NOT_find_from_cache_when_select_speical_columns
29
29
  @user.write_second_level_cache
30
30
  only_id_user = User.select("id").find(@user.id)
31
- assert_raise(ActiveModel::MissingAttributeError) do
31
+ assert_raises(ActiveModel::MissingAttributeError) do
32
32
  only_id_user.name
33
33
  end
34
34
  end
@@ -39,6 +39,6 @@ class ActiveRecord::FinderMethodsTest < Test::Unit::TestCase
39
39
  User.without_second_level_cache do
40
40
  @from_db = User.find(@user.id)
41
41
  end
42
- assert_not_equal @user.name, @from_db.name
42
+ refute_equal @user.name, @from_db.name
43
43
  end
44
44
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::HasOneAssociationTest < Test::Unit::TestCase
4
+ class ActiveRecord::HasOneAssociationTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'hooopo', :email => 'hoooopo@gmail.com'
7
7
  @account = @user.create_account
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::PersistenceTest < Test::Unit::TestCase
4
+ class ActiveRecord::PersistenceTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  @topic = Topic.create :title => "csdn"
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::PolymorphicAssociationTest < Test::Unit::TestCase
4
+ class ActiveRecord::PolymorphicAssociationTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::PreloaderTest < Test::Unit::TestCase
4
+ class ActiveRecord::PreloaderTest < Minitest::Test
5
5
  def setup
6
6
  DatabaseCleaner[:active_record].start
7
7
  @topic1 = Topic.create :title => "title1", :body => "body1"
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class ActiveRecord::SecondLevelCacheTest < Test::Unit::TestCase
4
+ class ActiveRecord::SecondLevelCacheTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
@@ -12,7 +12,7 @@ class ActiveRecord::SecondLevelCacheTest < Test::Unit::TestCase
12
12
 
13
13
  def test_should_write_and_read_cache
14
14
  @user.write_second_level_cache
15
- assert_not_nil User.read_second_level_cache(@user.id)
15
+ refute_nil User.read_second_level_cache(@user.id)
16
16
  @user.expire_second_level_cache
17
17
  assert_nil User.read_second_level_cache(@user.id)
18
18
  end
@@ -15,13 +15,18 @@ def close_test_db_connect
15
15
  ActiveRecord::Base.connection.disconnect!
16
16
  end
17
17
 
18
- class Test::Unit::TestCase
18
+ class Minitest::Test
19
19
  def no_connection
20
20
  close_test_db_connect
21
21
  assert_nothing_raised { yield }
22
22
  ensure
23
23
  open_test_db_connect
24
24
  end
25
+
26
+
27
+ def assert_nothing_raised(*)
28
+ yield
29
+ end
25
30
 
26
31
  def teardown
27
32
  $sql_logger = nil
@@ -1,7 +1,7 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  require 'active_record/test_helper'
3
3
 
4
- class RecordMarshalTest < Test::Unit::TestCase
4
+ class RecordMarshalTest < Minitest::Test
5
5
  def setup
6
6
  @user = User.create :name => 'csdn', :email => 'test@csdn.com'
7
7
  end
data/test/require_test.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  require 'test_helper'
3
3
  require 'active_record'
4
4
 
5
- class RequireTest < Test::Unit::TestCase
5
+ class RequireTest < Minitest::Test
6
6
  def setup
7
7
  ActiveRecord::Relation
8
8
  require 'active_record/test_helper'
data/test/test_helper.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  require 'rubygems'
3
3
  require 'bundler/setup'
4
4
  require 'second_level_cache'
5
- require 'test/unit'
5
+ require 'minitest/autorun'
6
6
  require 'database_cleaner'
7
7
 
8
8
  DatabaseCleaner[:active_record].strategy = :transaction
metadata CHANGED
@@ -1,48 +1,60 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: second_level_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
5
- prerelease:
4
+ version: 2.1.0.rc1
5
+ prerelease: 6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Hooopo
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-14 00:00:00.000000000 Z
12
+ date: 2014-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>'
20
+ - !ruby/object:Gem::Version
21
+ version: 4.0.0
22
+ - - <
20
23
  - !ruby/object:Gem::Version
21
- version: 4.0.0.beta1
24
+ version: '5.0'
22
25
  type: :runtime
23
26
  prerelease: false
24
27
  version_requirements: !ruby/object:Gem::Requirement
25
28
  none: false
26
29
  requirements:
27
- - - ~>
30
+ - - ! '>'
28
31
  - !ruby/object:Gem::Version
29
- version: 4.0.0.beta1
32
+ version: 4.0.0
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: '5.0'
30
36
  - !ruby/object:Gem::Dependency
31
37
  name: activerecord
32
38
  requirement: !ruby/object:Gem::Requirement
33
39
  none: false
34
40
  requirements:
35
- - - ~>
41
+ - - ! '>'
36
42
  - !ruby/object:Gem::Version
37
- version: 4.0.0.beta1
43
+ version: 4.0.0
44
+ - - <
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
38
47
  type: :development
39
48
  prerelease: false
40
49
  version_requirements: !ruby/object:Gem::Requirement
41
50
  none: false
42
51
  requirements:
43
- - - ~>
52
+ - - ! '>'
53
+ - !ruby/object:Gem::Version
54
+ version: 4.0.0
55
+ - - <
44
56
  - !ruby/object:Gem::Version
45
- version: 4.0.0.beta1
57
+ version: '5.0'
46
58
  - !ruby/object:Gem::Dependency
47
59
  name: sqlite3
48
60
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +94,7 @@ dependencies:
82
94
  requirements:
83
95
  - - ~>
84
96
  - !ruby/object:Gem::Version
85
- version: 1.0.0.RC1
97
+ version: 1.2.0
86
98
  type: :development
87
99
  prerelease: false
88
100
  version_requirements: !ruby/object:Gem::Requirement
@@ -90,7 +102,7 @@ dependencies:
90
102
  requirements:
91
103
  - - ~>
92
104
  - !ruby/object:Gem::Version
93
- version: 1.0.0.RC1
105
+ version: 1.2.0
94
106
  description: Write Through and Read Through caching library inspired by CacheMoney
95
107
  and cache_fu, support ActiveRecord 4.
96
108
  email:
@@ -151,12 +163,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
163
  required_rubygems_version: !ruby/object:Gem::Requirement
152
164
  none: false
153
165
  requirements:
154
- - - ! '>='
166
+ - - ! '>'
155
167
  - !ruby/object:Gem::Version
156
- version: '0'
168
+ version: 1.3.1
157
169
  requirements: []
158
170
  rubyforge_project:
159
- rubygems_version: 1.8.25
171
+ rubygems_version: 1.8.23
160
172
  signing_key:
161
173
  specification_version: 3
162
174
  summary: ! 'SecondLevelCache is a write-through and read-through caching library inspired
@@ -185,4 +197,3 @@ test_files:
185
197
  - test/record_marshal_test.rb
186
198
  - test/require_test.rb
187
199
  - test/test_helper.rb
188
- has_rdoc: