second_level_cache 2.1.7 → 2.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|