identity_cache 0.3.0 → 0.3.1

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 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,