second_level_cache 2.3.3 → 2.4.0

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.
Files changed (47) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +29 -22
  3. data/Gemfile +4 -2
  4. data/README.md +7 -1
  5. data/Rakefile +6 -4
  6. data/lib/second_level_cache.rb +7 -5
  7. data/lib/second_level_cache/active_record.rb +15 -10
  8. data/lib/second_level_cache/active_record/base.rb +2 -0
  9. data/lib/second_level_cache/active_record/belongs_to_association.rb +2 -0
  10. data/lib/second_level_cache/active_record/core.rb +2 -0
  11. data/lib/second_level_cache/active_record/fetch_by_uniq_key.rb +5 -3
  12. data/lib/second_level_cache/active_record/finder_methods.rb +3 -1
  13. data/lib/second_level_cache/active_record/has_one_association.rb +2 -0
  14. data/lib/second_level_cache/active_record/persistence.rb +2 -0
  15. data/lib/second_level_cache/active_record/preloader.rb +7 -4
  16. data/lib/second_level_cache/config.rb +3 -1
  17. data/lib/second_level_cache/mixin.rb +3 -1
  18. data/lib/second_level_cache/record_marshal.rb +2 -0
  19. data/lib/second_level_cache/record_relation.rb +2 -0
  20. data/lib/second_level_cache/version.rb +1 -1
  21. data/second_level_cache.gemspec +4 -4
  22. data/test/active_record_test_case_helper.rb +7 -5
  23. data/test/base_test.rb +6 -4
  24. data/test/belongs_to_association_test.rb +4 -2
  25. data/test/enum_attr_test.rb +6 -4
  26. data/test/fetch_by_uniq_key_test.rb +15 -13
  27. data/test/finder_methods_test.rb +6 -4
  28. data/test/has_one_association_test.rb +10 -8
  29. data/test/model/account.rb +2 -0
  30. data/test/model/animal.rb +2 -0
  31. data/test/model/book.rb +2 -0
  32. data/test/model/image.rb +2 -0
  33. data/test/model/order.rb +2 -0
  34. data/test/model/order_item.rb +2 -0
  35. data/test/model/post.rb +2 -0
  36. data/test/model/topic.rb +2 -0
  37. data/test/model/user.rb +6 -4
  38. data/test/persistence_test.rb +12 -10
  39. data/test/polymorphic_association_test.rb +4 -2
  40. data/test/preloader_non_integer_test.rb +17 -14
  41. data/test/preloader_test.rb +13 -10
  42. data/test/record_marshal_test.rb +17 -15
  43. data/test/require_test.rb +7 -5
  44. data/test/second_level_cache_test.rb +5 -3
  45. data/test/single_table_inheritance_test.rb +3 -1
  46. data/test/test_helper.rb +19 -17
  47. metadata +19 -19
@@ -1,19 +1,21 @@
1
- require 'test_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
2
4
 
3
5
  class RecordMarshalTest < ActiveSupport::TestCase
4
6
  def setup
5
- if ::ActiveRecord::VERSION::STRING >= '4.1.0'
6
- @json_options = { 'name' => 'Test', 'age' => 18, 'hash' => { 'name' => 'dup' } }
7
- @extras = { 'tagline' => 'Hello world', 'gender' => 1 }
8
- @user = User.create name: 'csdn',
9
- email: 'test@csdn.com',
7
+ if ::ActiveRecord::VERSION::STRING >= "4.1.0"
8
+ @json_options = { "name" => "Test", "age" => 18, "hash" => { "name" => "dup" } }
9
+ @extras = { "tagline" => "Hello world", "gender" => 1 }
10
+ @user = User.create name: "csdn",
11
+ email: "test@csdn.com",
10
12
  options: [1, 2],
11
13
  extras: @extras,
12
14
  json_options: @json_options,
13
15
  status: :active
14
16
  else
15
- @user = User.create name: 'csdn',
16
- email: 'test@csdn.com',
17
+ @user = User.create name: "csdn",
18
+ email: "test@csdn.com",
17
19
  extras: @extras,
18
20
  options: [1, 2]
19
21
  end
@@ -22,7 +24,7 @@ class RecordMarshalTest < ActiveSupport::TestCase
22
24
  def test_should_dump_active_record_object
23
25
  dumped = RecordMarshal.dump(@user)
24
26
  assert dumped.is_a?(Array)
25
- assert_equal 'User', dumped[0]
27
+ assert_equal "User", dumped[0]
26
28
  assert_equal @user.attributes, dumped[1]
27
29
  end
28
30
 
@@ -34,11 +36,11 @@ class RecordMarshalTest < ActiveSupport::TestCase
34
36
  assert_equal User.read_second_level_cache(@user.id).changed?, false
35
37
  assert_equal [1, 2], User.read_second_level_cache(@user.id).options
36
38
  assert_equal @extras, User.read_second_level_cache(@user.id).extras
37
- assert_equal 'Hello world', User.read_second_level_cache(@user.id).tagline
39
+ assert_equal "Hello world", User.read_second_level_cache(@user.id).tagline
38
40
  assert_equal 1, User.read_second_level_cache(@user.id).gender
39
- if ::ActiveRecord::VERSION::STRING >= '4.1.0'
41
+ if ::ActiveRecord::VERSION::STRING >= "4.1.0"
40
42
  result = User.read_second_level_cache(@user.id)
41
- assert_equal @json_options['name'], result.json_options['name']
43
+ assert_equal @json_options["name"], result.json_options["name"]
42
44
  assert_equal @json_options, result.json_options
43
45
  end
44
46
  assert User.read_second_level_cache(@user.id).persisted?
@@ -52,13 +54,13 @@ class RecordMarshalTest < ActiveSupport::TestCase
52
54
  def test_should_load_active_record_object_without_association_cache
53
55
  @user.books
54
56
  @user.write_second_level_cache
55
- assert_equal false, User.read_second_level_cache(@user.id).association_cached?('id')
57
+ assert_equal false, User.read_second_level_cache(@user.id).association_cached?("id")
56
58
  end
57
59
 
58
60
  def test_should_thread_safe_load
59
61
  user = User.find @user.id
60
- assert_equal 'active', user.status
62
+ assert_equal "active", user.status
61
63
  user = User.find @user.id
62
- assert_equal 'active', user.status
64
+ assert_equal "active", user.status
63
65
  end
64
66
  end
@@ -1,11 +1,13 @@
1
- require 'test_helper'
2
- require 'active_record'
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+ require "active_record"
3
5
 
4
6
  class RequireTest < ActiveSupport::TestCase
5
7
  def setup
6
- ActiveRecord::Relation.new(nil, nil, nil)
7
- require 'test_helper'
8
- @user = User.create name: 'Dingding Ye', email: 'yedingding@gmail.com'
8
+ ActiveRecord::Relation.new(nil, table: nil, predicate_builder: nil)
9
+ require "test_helper"
10
+ @user = User.create name: "Dingding Ye", email: "yedingding@gmail.com"
9
11
  end
10
12
 
11
13
  def test_should_find_the_user
@@ -1,12 +1,14 @@
1
- require 'test_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
2
4
 
3
5
  class SecondLevelCacheTest < ActiveSupport::TestCase
4
6
  def setup
5
- @user = User.create name: 'csdn', email: 'test@csdn.com'
7
+ @user = User.create name: "csdn", email: "test@csdn.com"
6
8
  end
7
9
 
8
10
  def test_should_get_cache_key
9
- attr_list = User.attribute_types.map { |name, type| "#{name}: #{type.type}" } * ', '
11
+ attr_list = User.attribute_types.map { |name, type| "#{name}: #{type.type}" } * ", "
10
12
  table_digest = Digest::MD5.hexdigest(attr_list)
11
13
  refute_nil table_digest
12
14
  assert_equal "slc/users/#{@user.id}/#{User::CACHE_VERSION}/#{table_digest}", @user.second_level_cache_key
@@ -1,4 +1,6 @@
1
- require 'test_helper'
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
2
4
 
3
5
  class SingleTableInheritanceTest < ActiveSupport::TestCase
4
6
  def test_superclass_find__caches_superclass_record
@@ -1,27 +1,29 @@
1
- require 'bundler/setup'
2
- require 'minitest/autorun'
3
- require 'active_support/test_case'
4
- require 'active_record_test_case_helper'
5
- require 'database_cleaner'
6
- require 'active_record'
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/setup"
4
+ require "minitest/autorun"
5
+ require "active_support/test_case"
6
+ require "active_record_test_case_helper"
7
+ require "database_cleaner"
8
+ require "active_record"
7
9
 
8
10
  ActiveSupport.test_order = :sorted if ActiveSupport.respond_to?(:test_order=)
9
11
  # Force hook :active_record on_load event to make sure loader can work.
10
12
  ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
11
13
 
12
- require 'second_level_cache'
14
+ require "second_level_cache"
13
15
 
14
- ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
16
+ ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
15
17
 
16
- require 'model/user'
17
- require 'model/book'
18
- require 'model/image'
19
- require 'model/topic'
20
- require 'model/post'
21
- require 'model/order'
22
- require 'model/order_item'
23
- require 'model/account'
24
- require 'model/animal'
18
+ require "model/user"
19
+ require "model/book"
20
+ require "model/image"
21
+ require "model/topic"
22
+ require "model/post"
23
+ require "model/order"
24
+ require "model/order_item"
25
+ require "model/account"
26
+ require "model/animal"
25
27
 
26
28
  DatabaseCleaner[:active_record].strategy = :truncation
27
29
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: second_level_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.3
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hooopo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-28 00:00:00.000000000 Z
11
+ date: 2018-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,40 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 5.2.0.rc
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '5.2'
22
+ version: '6'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.0.0
29
+ version: 5.2.0.rc
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '5.2'
32
+ version: '6'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: activerecord
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 5.0.0
39
+ version: 5.2.0.rc
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '5.2'
42
+ version: '6'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 5.0.0
49
+ version: 5.2.0.rc
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '5.2'
52
+ version: '6'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: sqlite3
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -96,30 +96,30 @@ dependencies:
96
96
  name: database_cleaner
97
97
  requirement: !ruby/object:Gem::Requirement
98
98
  requirements:
99
- - - "~>"
99
+ - - ">="
100
100
  - !ruby/object:Gem::Version
101
- version: 1.3.0
101
+ version: '0'
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  requirements:
106
- - - "~>"
106
+ - - ">="
107
107
  - !ruby/object:Gem::Version
108
- version: 1.3.0
108
+ version: '0'
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: rubocop
111
111
  requirement: !ruby/object:Gem::Requirement
112
112
  requirements:
113
- - - ">="
113
+ - - "~>"
114
114
  - !ruby/object:Gem::Version
115
- version: '0'
115
+ version: 0.52.0
116
116
  type: :development
117
117
  prerelease: false
118
118
  version_requirements: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ">="
120
+ - - "~>"
121
121
  - !ruby/object:Gem::Version
122
- version: '0'
122
+ version: 0.52.0
123
123
  description: Write Through and Read Through caching library inspired by CacheMoney
124
124
  and cache_fu, support ActiveRecord 4.
125
125
  email:
@@ -192,7 +192,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
192
  version: '0'
193
193
  requirements: []
194
194
  rubyforge_project:
195
- rubygems_version: 2.5.1
195
+ rubygems_version: 2.7.3
196
196
  signing_key:
197
197
  specification_version: 4
198
198
  summary: 'SecondLevelCache is a write-through and read-through caching library inspired