identity_cache 0.3.0 → 0.3.1

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: e9c2e392201ed1b9c143a6ebff82f7c7af602a89
4
- data.tar.gz: 445f3ce67f61a386db9bd99939d169e03562052b
3
+ metadata.gz: 3aaaad2b3f7ef8cd9c4aaeb338756bfcccfcbd4c
4
+ data.tar.gz: 06ee79bbcc777f7903139d9eab772ddcd50ad1af
5
5
  SHA512:
6
- metadata.gz: d3012a594fb51bcd37c08e322545b4cf3d9e2fe8ce3d14253df79cb423fd673f143e7dea5b8c7b13499660c56db9e266d3bc0fe6e923a6f1c37a918ba5d63fa4
7
- data.tar.gz: a790523fd6989dde3669602a4ddd045032c44808f7e1f6a06f3e01fbf93e9ac137377e77fd360266a11642fdf7c6d5ef21ec1cb157a1d4ea37e2bde88dc5612c
6
+ metadata.gz: 0678a544ee6f53d428517c5a44409a1f93a9e690002f6c8d3efe1ee731f50aed2eef3c68b7bba5b66f4500b0fd5bdef9fc09e990a1e9a5ece1d0fac8e496ada6
7
+ data.tar.gz: c1313137f940b3e7c22523b9bf331416f4824288d4e45617931042641e73aabef0bc1d659384faf6be904d503164f80748c783fb5c3d216c72b1af0a6d40b2ba
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # IdentityCache changelog
2
2
 
3
- #### 0.2.6 (unreleased)
3
+ #### 0.3.1
4
+
5
+ - Fix cache_index for non-id primary key
6
+
7
+ #### 0.3.0
8
+
4
9
  - Add support for includes option on cache_index and fetch_by_id
5
10
  - Use ActiveRecord instantiate
6
11
  - Add association pre-fetching support for fetch_by_id
@@ -51,7 +51,7 @@ module IdentityCache
51
51
  if unique
52
52
  self.instance_eval(ruby = <<-CODE, __FILE__, __LINE__ + 1)
53
53
  def fetch_by_#{field_list}(#{arg_list}, options={})
54
- id = fetch_#{primary_key}_by_#{field_list}(#{arg_list})
54
+ id = fetch_id_by_#{field_list}(#{arg_list})
55
55
  id && fetch_by_id(id, options)
56
56
  end
57
57
 
@@ -63,7 +63,7 @@ module IdentityCache
63
63
  else
64
64
  self.instance_eval(ruby = <<-CODE, __FILE__, __LINE__ + 1)
65
65
  def fetch_by_#{field_list}(#{arg_list}, options={})
66
- ids = fetch_#{primary_key}_by_#{field_list}(#{arg_list})
66
+ ids = fetch_id_by_#{field_list}(#{arg_list})
67
67
  ids.empty? ? ids : fetch_multi(ids, options)
68
68
  end
69
69
  CODE
@@ -1,4 +1,4 @@
1
1
  module IdentityCache
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  CACHE_VERSION = 6
4
4
  end
@@ -141,6 +141,18 @@ class IndexCacheTest < IdentityCache::TestCase
141
141
  end
142
142
  end
143
143
 
144
+ def test_cache_index_with_non_id_primary_key
145
+ KeyedRecord.cache_index :value
146
+ fixture = KeyedRecord.create!(value: "a") { |r| r.hashed_key = 123 }
147
+ assert_equal [123], KeyedRecord.fetch_by_value('a').map(&:id)
148
+ end
149
+
150
+ def test_unique_cache_index_with_non_id_primary_key
151
+ KeyedRecord.cache_index :value, unique: true
152
+ fixture = KeyedRecord.create!(value: "a") { |r| r.hashed_key = 123 }
153
+ assert_equal 123, KeyedRecord.fetch_by_value('a').id
154
+ end
155
+
144
156
  private
145
157
 
146
158
  def cache_key(unique: false)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: identity_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Camilo Lopez
@@ -268,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
268
  version: '0'
269
269
  requirements: []
270
270
  rubyforge_project:
271
- rubygems_version: 2.2.0
271
+ rubygems_version: 2.2.3
272
272
  signing_key:
273
273
  specification_version: 4
274
274
  summary: IdentityCache lets you specify how you want to cache your model objects,