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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c740b35114538a617bf52234b5cf17de17ad303b
4
- data.tar.gz: 1b5d6d3a992839e9b505e87969f2fcb812f11b9b
3
+ metadata.gz: eac9a34cfad42e9f20c89eea21bd8f35db5869a9
4
+ data.tar.gz: d74fa93c9a2c93b18d5f35de3af34fbe08d29543
5
5
  SHA512:
6
- metadata.gz: db2762f8d3da3295f5598647c359a0519623decb228bfae93c76886c31add9565772d264705fbc00452cb57088b168b1941d904d6a9a9616f5b3a82acf64afde
7
- data.tar.gz: 5b9460687d85949c58611235f14acd096f10674fd0b784583184f1aa26ac82576ddaedc3c1c334f48bc13447f93c11a20139850c8b0b096fee2fdde97b62c97b
6
+ metadata.gz: 2d278145d9eb185c95150e89e22c9a6cf1e43de72b90d3cd9050db513762a9b5fa4027deb72d1617bd6570417d957c03a06b73cff1725cab90651a4f9486582c
7
+ data.tar.gz: 6c9836d37d7a3952b09737f6661941c5c8cc1db606ace0548dc464774daee9a35ec26b0fc8f9324716c0072830b8edd7a5d92bb1f4a05a5777504c4a4b8afdc0
data/README.md CHANGED
@@ -17,7 +17,7 @@ Write-Through: As objects are created, updated, and deleted, all of the caches a
17
17
  In your gem file:
18
18
 
19
19
  ```ruby
20
- gem "second_level_cache", "~> 2.1.7"
20
+ gem "second_level_cache", "~> 2.1.8"
21
21
  ```
22
22
 
23
23
  For ActiveRecord 3:
@@ -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
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module SecondLevelCache
3
- VERSION = "2.1.7"
3
+ VERSION = "2.1.8"
4
4
  end
@@ -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.7
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: 2015-11-03 00:00:00.000000000 Z
11
+ date: 2016-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport