second_level_cache 2.1.7 → 2.1.8
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 +4 -4
- data/README.md +1 -1
- data/lib/second_level_cache/active_record/has_one_association.rb +2 -0
- data/lib/second_level_cache/version.rb +1 -1
- data/test/has_one_association_test.rb +11 -0
- data/test/model/user.rb +13 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eac9a34cfad42e9f20c89eea21bd8f35db5869a9
|
4
|
+
data.tar.gz: d74fa93c9a2c93b18d5f35de3af34fbe08d29543
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d278145d9eb185c95150e89e22c9a6cf1e43de72b90d3cd9050db513762a9b5fa4027deb72d1617bd6570417d957c03a06b73cff1725cab90651a4f9486582c
|
7
|
+
data.tar.gz: 6c9836d37d7a3952b09737f6661941c5c8cc1db606ace0548dc464774daee9a35ec26b0fc8f9324716c0072830b8edd7a5d92bb1f4a05a5777504c4a4b8afdc0
|
data/README.md
CHANGED
@@ -12,6 +12,8 @@ module SecondLevelCache
|
|
12
12
|
|
13
13
|
def find_target_with_second_level_cache
|
14
14
|
return find_target_without_second_level_cache unless klass.second_level_cache_enabled?
|
15
|
+
return find_target_without_second_level_cache if reflection.options[:through]
|
16
|
+
# TODO: implement cache with has_one through
|
15
17
|
if reflection.options[:as]
|
16
18
|
cache_record = klass.fetch_by_uniq_keys({reflection.foreign_key => owner[reflection.active_record_primary_key], reflection.type => owner.class.base_class.name})
|
17
19
|
else
|
@@ -13,4 +13,15 @@ class HasOneAssociationTest < ActiveSupport::TestCase
|
|
13
13
|
clean_user.account
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
def test_should_fetch_has_one_through
|
18
|
+
user = User.create :name => 'hooopo', :email => 'hoooopo@gmail.com', forked_from_user: @user
|
19
|
+
clean_user = user.reload
|
20
|
+
assert_equal User, clean_user.forked_from_user.class
|
21
|
+
assert_equal @user.id, user.forked_from_user.id
|
22
|
+
# clean_user = user.reload
|
23
|
+
# assert_no_queries do
|
24
|
+
# clean_user.forked_from_user
|
25
|
+
# end
|
26
|
+
end
|
16
27
|
end
|
data/test/model/user.rb
CHANGED
@@ -9,6 +9,12 @@ ActiveRecord::Base.connection.create_table(:users, :force => true) do |t|
|
|
9
9
|
t.timestamps null: false
|
10
10
|
end
|
11
11
|
|
12
|
+
ActiveRecord::Base.connection.create_table(:forked_user_links, :force => true) do |t|
|
13
|
+
t.integer :forked_to_user_id
|
14
|
+
t.integer :forked_from_user_id
|
15
|
+
t.timestamps null: false
|
16
|
+
end
|
17
|
+
|
12
18
|
class User < ActiveRecord::Base
|
13
19
|
CacheVersion = 3
|
14
20
|
serialize :options, Array
|
@@ -17,6 +23,13 @@ class User < ActiveRecord::Base
|
|
17
23
|
end
|
18
24
|
acts_as_cached(:version => CacheVersion, :expires_in => 3.day)
|
19
25
|
has_one :account
|
26
|
+
has_one :forked_user_link, foreign_key: 'forked_to_user_id'
|
27
|
+
has_one :forked_from_user, through: :forked_user_link
|
20
28
|
has_many :books
|
21
29
|
has_many :images, :as => :imagable
|
22
30
|
end
|
31
|
+
|
32
|
+
class ForkedUserLink < ActiveRecord::Base
|
33
|
+
belongs_to :forked_from_user, class_name: User
|
34
|
+
belongs_to :forked_to_user, class_name: User
|
35
|
+
end
|
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.1.
|
4
|
+
version: 2.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hooopo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|