identity_cache 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,9 +3,9 @@ require "test_helper"
3
3
  class NormalizedHasManyTest < IdentityCache::TestCase
4
4
  def setup
5
5
  super
6
- Record.cache_has_many :associated_records, :embed => false
6
+ Item.cache_has_many :associated_records, :embed => false
7
7
 
8
- @record = Record.new(:title => 'foo')
8
+ @record = Item.new(:title => 'foo')
9
9
  @record.not_cached_records << NotCachedRecord.new(:name => 'NoCache')
10
10
  @record.associated_records << AssociatedRecord.new(:name => 'bar')
11
11
  @record.associated_records << AssociatedRecord.new(:name => 'baz')
@@ -18,13 +18,13 @@ class NormalizedHasManyTest < IdentityCache::TestCase
18
18
  def test_a_records_list_of_associated_ids_on_the_parent_record_retains_association_sort_order
19
19
  assert_equal [2, 1], @record.associated_record_ids
20
20
 
21
- AssociatedRecord.create(name: 'foo', record_id: @record.id)
21
+ AssociatedRecord.create(name: 'foo', item_id: @record.id)
22
22
  @record.reload
23
23
  assert_equal [3, 2, 1], @record.associated_record_ids
24
24
  end
25
25
 
26
26
  def test_defining_a_denormalized_has_many_cache_caches_the_list_of_associated_ids_on_the_parent_record_during_cache_miss
27
- fetched_record = Record.fetch(@record.id)
27
+ fetched_record = Item.fetch(@record.id)
28
28
  assert_equal [2, 1], fetched_record.cached_associated_record_ids
29
29
  assert_equal false, fetched_record.associated_records.loaded?
30
30
  end
@@ -34,7 +34,7 @@ class NormalizedHasManyTest < IdentityCache::TestCase
34
34
  end
35
35
 
36
36
  def test_fetching_associated_ids_will_use_the_cached_value_if_the_record_is_from_the_cache
37
- @record = Record.fetch(@record.id)
37
+ @record = Item.fetch(@record.id)
38
38
  assert_queries(0) do
39
39
  assert_equal [2, 1], @record.fetch_associated_record_ids
40
40
  end
@@ -50,24 +50,24 @@ class NormalizedHasManyTest < IdentityCache::TestCase
50
50
 
51
51
  def test_fetching_the_association_from_a_record_on_a_cache_hit_should_not_issue_any_queries
52
52
  # Populate the cache
53
- @record = Record.fetch(@record.id)
53
+ @record = Item.fetch(@record.id)
54
54
  @record.fetch_associated_records
55
55
  assert_queries(0) do
56
- @record = Record.fetch(@record.id)
56
+ @record = Item.fetch(@record.id)
57
57
  assert_equal [@baz, @bar], @record.fetch_associated_records
58
58
  end
59
59
  end
60
60
 
61
61
  def test_fetching_the_association_from_a_identity_cached_record_should_not_re_fetch_the_association_ids
62
- @record = Record.fetch(@record.id)
62
+ @record = Item.fetch(@record.id)
63
63
  @record.expects(:associated_record_ids).never
64
64
  assert_equal [@baz, @bar], @record.fetch_associated_records
65
65
  end
66
66
 
67
67
  def test_fetching_the_association_should_delegate_to_the_normal_association_fetcher_if_any_transaction_are_open
68
- @record = Record.fetch(@record.id)
68
+ @record = Item.fetch(@record.id)
69
69
 
70
- Record.expects(:fetch_multi).never
70
+ Item.expects(:fetch_multi).never
71
71
  @record.transaction do
72
72
  assert_equal [@baz, @bar], @record.fetch_associated_records
73
73
  end
@@ -77,55 +77,60 @@ class NormalizedHasManyTest < IdentityCache::TestCase
77
77
  # Warm the ActiveRecord association
78
78
  @record.associated_records.to_a
79
79
 
80
- Record.expects(:fetch_multi).never
80
+ Item.expects(:fetch_multi).never
81
81
  assert_equal [@baz, @bar], @record.fetch_associated_records
82
82
  end
83
83
 
84
84
  def test_saving_a_child_record_shouldnt_expire_the_parents_blob_if_the_foreign_key_hasnt_changed
85
85
  IdentityCache.cache.expects(:delete).with(@record.primary_cache_index_key).never
86
+ IdentityCache.cache.expects(:delete).with(@baz.primary_cache_index_key)
86
87
  @baz.name = 'foo'
87
88
  @baz.save!
88
- assert_equal [@baz.id, @bar.id], Record.fetch(@record.id).cached_associated_record_ids
89
- assert_equal [@baz, @bar], Record.fetch(@record.id).fetch_associated_records
89
+ assert_equal [@baz.id, @bar.id], Item.fetch(@record.id).cached_associated_record_ids
90
+ assert_equal [@baz, @bar], Item.fetch(@record.id).fetch_associated_records
90
91
  end
91
92
 
92
93
  def test_creating_a_child_record_should_expire_the_parents_cache_blob
93
94
  IdentityCache.cache.expects(:delete).with(@record.primary_cache_index_key).once
95
+ IdentityCache.cache.expects(:delete).with(@bar.primary_cache_index_key[0...-1] + '3')
94
96
  @qux = @record.associated_records.create!(:name => 'qux')
95
- assert_equal [@qux, @baz, @bar], Record.fetch(@record.id).fetch_associated_records
97
+ assert_equal [@qux, @baz, @bar], Item.fetch(@record.id).fetch_associated_records
96
98
  end
97
-
99
+
98
100
  def test_saving_a_child_record_should_expire_the_new_and_old_parents_cache_blob
99
- @new_record = Record.create
100
- @baz.record_id = @new_record.id
101
+ @new_record = Item.create
102
+ @baz.item_id = @new_record.id
101
103
 
102
104
  IdentityCache.cache.expects(:delete).with(@record.primary_cache_index_key).once
103
105
  IdentityCache.cache.expects(:delete).with(@new_record.primary_cache_index_key).once
106
+ IdentityCache.cache.expects(:delete).with(@baz.primary_cache_index_key).once
104
107
 
105
108
  @baz.save!
106
109
 
107
- assert_equal [@bar.id], Record.fetch(@record.id).cached_associated_record_ids
108
- assert_equal [@bar], Record.fetch(@record.id).fetch_associated_records
110
+ assert_equal [@bar.id], Item.fetch(@record.id).cached_associated_record_ids
111
+ assert_equal [@bar], Item.fetch(@record.id).fetch_associated_records
109
112
  end
110
113
 
111
114
  def test_saving_a_child_record_in_a_transaction_should_expire_the_new_and_old_parents_cache_blob
112
- @new_record = Record.create
113
- @baz.record_id = @new_record.id
115
+ @new_record = Item.create
116
+ @baz.item_id = @new_record.id
114
117
 
115
118
  @baz.transaction do
116
119
  IdentityCache.cache.expects(:delete).with(@record.primary_cache_index_key).once
117
120
  IdentityCache.cache.expects(:delete).with(@new_record.primary_cache_index_key).once
121
+ IdentityCache.cache.expects(:delete).with(@baz.primary_cache_index_key).once
118
122
 
119
123
  @baz.save!
120
124
  @baz.reload
121
125
  end
122
126
 
123
- assert_equal [@bar.id], Record.fetch(@record.id).cached_associated_record_ids
124
- assert_equal [@bar], Record.fetch(@record.id).fetch_associated_records
127
+ assert_equal [@bar.id], Item.fetch(@record.id).cached_associated_record_ids
128
+ assert_equal [@bar], Item.fetch(@record.id).fetch_associated_records
125
129
  end
126
130
 
127
131
  def test_destroying_a_child_record_should_expire_the_parents_cache_blob
128
132
  IdentityCache.cache.expects(:delete).with(@record.primary_cache_index_key).once
133
+ IdentityCache.cache.expects(:delete).with(@baz.primary_cache_index_key).once
129
134
  @baz.destroy
130
135
  assert_equal [@bar], @record.reload.fetch_associated_records
131
136
  end
@@ -4,10 +4,10 @@ class RecursiveDenormalizedHasManyTest < IdentityCache::TestCase
4
4
  def setup
5
5
  super
6
6
  AssociatedRecord.cache_has_many :deeply_associated_records, :embed => true
7
- Record.cache_has_many :associated_records, :embed => true
8
- Record.cache_has_one :associated
7
+ Item.cache_has_many :associated_records, :embed => true
8
+ Item.cache_has_one :associated
9
9
 
10
- @record = Record.new(:title => 'foo')
10
+ @record = Item.new(:title => 'foo')
11
11
 
12
12
  @associated_record = AssociatedRecord.new(:name => 'bar')
13
13
  @record.associated_records << AssociatedRecord.new(:name => 'baz')
@@ -23,17 +23,17 @@ class RecursiveDenormalizedHasManyTest < IdentityCache::TestCase
23
23
  end
24
24
 
25
25
  def test_cache_fetch_includes
26
- assert_equal [{:associated_records => [:deeply_associated_records]}, :associated => [:deeply_associated_records]], Record.cache_fetch_includes
26
+ assert_equal [{:associated_records => [:deeply_associated_records]}, :associated => [:deeply_associated_records]], Item.cache_fetch_includes
27
27
  end
28
28
 
29
29
  def test_uncached_record_from_the_db_will_use_normal_association_for_deeply_associated_records
30
30
  expected = @associated_record.deeply_associated_records
31
- record_from_db = Record.find(@record.id)
31
+ record_from_db = Item.find(@record.id)
32
32
  assert_equal expected, record_from_db.fetch_associated_records[0].fetch_deeply_associated_records
33
33
  end
34
34
 
35
35
  def test_on_cache_miss_record_should_embed_associated_objects_and_return
36
- record_from_cache_miss = Record.fetch(@record.id)
36
+ record_from_cache_miss = Item.fetch(@record.id)
37
37
  expected = @associated_record.deeply_associated_records
38
38
 
39
39
  child_record_from_cache_miss = record_from_cache_miss.fetch_associated_records[0]
@@ -42,13 +42,13 @@ class RecursiveDenormalizedHasManyTest < IdentityCache::TestCase
42
42
  end
43
43
 
44
44
  def test_on_cache_hit_record_should_return_embed_associated_objects
45
- Record.fetch(@record.id) # warm cache
45
+ Item.fetch(@record.id) # warm cache
46
46
  expected = @associated_record.deeply_associated_records
47
47
 
48
- Record.any_instance.expects(:associated_records).never
48
+ Item.any_instance.expects(:associated_records).never
49
49
  AssociatedRecord.any_instance.expects(:deeply_associated_records).never
50
50
 
51
- record_from_cache_hit = Record.fetch(@record.id)
51
+ record_from_cache_hit = Item.fetch(@record.id)
52
52
  child_record_from_cache_hit = record_from_cache_hit.fetch_associated_records[0]
53
53
  assert_equal @associated_record, child_record_from_cache_hit
54
54
  assert_equal expected, child_record_from_cache_hit.fetch_deeply_associated_records
@@ -61,7 +61,7 @@ class RecursiveDenormalizedHasManyTest < IdentityCache::TestCase
61
61
  # one for the mid level has_one association
62
62
  # one for the deep level level has_many on the mid level has_many association
63
63
  # one for the deep level level has_many on the mid level has_one association
64
- record_from_cache_miss = Record.fetch(@record.id)
64
+ record_from_cache_miss = Item.fetch(@record.id)
65
65
  end
66
66
  end
67
67
 
@@ -94,16 +94,16 @@ class RecursiveNormalizedHasManyTest < IdentityCache::TestCase
94
94
  def setup
95
95
  super
96
96
  AssociatedRecord.cache_has_many :deeply_associated_records, :embed => true
97
- Record.cache_has_many :associated_records, :embed => false
97
+ Item.cache_has_many :associated_records, :embed => false
98
98
 
99
- @record = Record.new(:title => 'foo')
99
+ @record = Item.new(:title => 'foo')
100
100
  @record.save
101
101
  @record.reload
102
102
  end
103
103
 
104
104
  def test_cache_repopulation_should_not_fetch_non_embedded_associations
105
- Record.any_instance.expects(:fetch_associated_records).never
106
- record_from_cache_miss = Record.fetch(@record.id)
105
+ Item.any_instance.expects(:fetch_associated_records).never
106
+ record_from_cache_miss = Item.fetch(@record.id)
107
107
  end
108
108
  end
109
109
 
data/test/save_test.rb CHANGED
@@ -5,32 +5,32 @@ class SaveTest < IdentityCache::TestCase
5
5
 
6
6
  def setup
7
7
  super
8
- Record.cache_index :title, :unique => true
9
- Record.cache_index :id, :title, :unique => true
8
+ Item.cache_index :title, :unique => true
9
+ Item.cache_index :id, :title, :unique => true
10
10
 
11
- @record = Record.create(:title => 'bob')
12
- @blob_key = "#{NAMESPACE}blob:Record:#{cache_hash("created_at:datetime,id:integer,record_id:integer,title:string,updated_at:datetime")}:1"
11
+ @record = Item.create(:title => 'bob')
12
+ @blob_key = "#{NAMESPACE}blob:Item:#{cache_hash("created_at:datetime,id:integer,item_id:integer,title:string,updated_at:datetime")}:1"
13
13
  end
14
14
 
15
15
  def test_create
16
- @record = Record.new
16
+ @record = Item.new
17
17
  @record.title = 'bob'
18
18
 
19
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('2/bob')}")
20
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('bob')}")
21
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}blob:Record:#{cache_hash("created_at:datetime,id:integer,record_id:integer,title:string,updated_at:datetime")}:2").once
19
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('2/bob')}")
20
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('bob')}")
21
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}blob:Item:#{cache_hash("created_at:datetime,id:integer,item_id:integer,title:string,updated_at:datetime")}:2").once
22
22
  @record.save
23
23
  end
24
24
 
25
25
  def test_update
26
26
  # Regular flow, write index id, write index id/tile, delete data blob since Record has changed
27
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('1/fred')}")
28
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('fred')}")
27
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('1/fred')}")
28
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('fred')}")
29
29
  IdentityCache.cache.expects(:delete).with(@blob_key)
30
30
 
31
31
  # Delete index id, delete index id/title
32
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('1/bob')}")
33
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('bob')}")
32
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('1/bob')}")
33
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('bob')}")
34
34
 
35
35
  @record.title = 'fred'
36
36
  @record.save
@@ -38,8 +38,8 @@ class SaveTest < IdentityCache::TestCase
38
38
 
39
39
  def test_destroy
40
40
  # Regular flow: delete data blob, delete index id, delete index id/tile
41
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('1/bob')}")
42
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('bob')}")
41
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('1/bob')}")
42
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('bob')}")
43
43
  IdentityCache.cache.expects(:delete).with(@blob_key)
44
44
 
45
45
  @record.destroy
@@ -47,8 +47,8 @@ class SaveTest < IdentityCache::TestCase
47
47
 
48
48
  def test_destroy_with_changed_attributes
49
49
  # Make sure to delete the old cache index key, since the new title never ended up in an index
50
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('1/bob')}")
51
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('bob')}")
50
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('1/bob')}")
51
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('bob')}")
52
52
  IdentityCache.cache.expects(:delete).with(@blob_key)
53
53
 
54
54
  @record.title = 'fred'
@@ -57,8 +57,8 @@ class SaveTest < IdentityCache::TestCase
57
57
 
58
58
  def test_touch_will_expire_the_caches
59
59
  # Regular flow: delete data blob, delete index id, delete index id/tile
60
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:id/title:#{cache_hash('1/bob')}")
61
- IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Record:title:#{cache_hash('bob')}")
60
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:id/title:#{cache_hash('1/bob')}")
61
+ IdentityCache.cache.expects(:delete).with("#{NAMESPACE}index:Item:title:#{cache_hash('bob')}")
62
62
  IdentityCache.cache.expects(:delete).with(@blob_key)
63
63
 
64
64
  @record.touch
@@ -18,14 +18,14 @@ class SchemaChangeTest < IdentityCache::TestCase
18
18
  ActiveRecord::Migration.verbose = false
19
19
 
20
20
  read_new_schema
21
- Record.cache_has_one :associated, :embed => true
21
+ Item.cache_has_one :associated, :embed => true
22
22
  AssociatedRecord.cache_has_many :deeply_associated_records, :embed => true
23
23
 
24
24
  @associated_record = AssociatedRecord.new(:name => 'bar')
25
25
  @deeply_associated_record = DeeplyAssociatedRecord.new(:name => "corge")
26
26
  @associated_record.deeply_associated_records << @deeply_associated_record
27
27
  @associated_record.deeply_associated_records << DeeplyAssociatedRecord.new(:name => "qux")
28
- @record = Record.new(:title => 'foo')
28
+ @record = Item.new(:title => 'foo')
29
29
  @record.associated = @associated_record
30
30
 
31
31
  @associated_record.save!
@@ -46,39 +46,52 @@ class SchemaChangeTest < IdentityCache::TestCase
46
46
  DeeplyAssociatedRecord.reset_column_information
47
47
 
48
48
  AssociatedRecord.send(:instance_variable_set, :@rails_cache_key_prefix, nil)
49
- Record.send(:instance_variable_set, :@rails_cache_key_prefix, nil)
49
+ Item.send(:instance_variable_set, :@rails_cache_key_prefix, nil)
50
50
  end
51
51
 
52
52
  def test_schema_changes_on_embedded_association_should_cause_cache_miss_for_old_cached_objects
53
- record = Record.fetch(@record.id)
53
+ record = Item.fetch(@record.id)
54
54
  record.fetch_associated
55
55
 
56
56
  AddColumnToChild.new.up
57
57
  read_new_schema
58
58
 
59
- Record.expects(:resolve_cache_miss).returns(@record)
60
- record = Record.fetch(@record.id)
59
+ Item.expects(:resolve_cache_miss).returns(@record)
60
+ record = Item.fetch(@record.id)
61
61
  end
62
62
 
63
63
  def test_schema_changes_on_deeply_embedded_association_should_cause_cache_miss_for_old_cached_objects
64
- record = Record.fetch(@record.id)
64
+ record = Item.fetch(@record.id)
65
65
  associated_record_from_cache = record.fetch_associated
66
66
  associated_record_from_cache.fetch_deeply_associated_records
67
67
 
68
68
  AddColumnToDeepChild.new.up
69
69
  read_new_schema
70
70
 
71
- Record.expects(:resolve_cache_miss).returns(@record)
72
- record = Record.fetch(@record.id)
71
+ Item.expects(:resolve_cache_miss).returns(@record)
72
+ record = Item.fetch(@record.id)
73
73
  end
74
74
 
75
75
  def test_schema_changes_on_new_cached_child_association
76
- record = Record.fetch(@record.id)
76
+ record = Item.fetch(@record.id)
77
77
 
78
- Record.cache_has_many :polymorphic_records, :inverse_name => :owner, :embed => true
78
+ Item.cache_has_many :polymorphic_records, :inverse_name => :owner, :embed => true
79
79
  read_new_schema
80
80
 
81
- Record.expects(:resolve_cache_miss).returns(@record)
82
- record = Record.fetch(@record.id)
81
+ Item.expects(:resolve_cache_miss).returns(@record)
82
+ record = Item.fetch(@record.id)
83
+ end
84
+
85
+ def test_embed_existing_cache_has_many
86
+ Item.cache_has_many :polymorphic_records, :inverse_name => :owner, :embed => false
87
+ read_new_schema
88
+
89
+ record = Item.fetch(@record.id)
90
+
91
+ Item.cache_has_many :polymorphic_records, :inverse_name => :owner, :embed => true
92
+ read_new_schema
93
+
94
+ Item.expects(:resolve_cache_miss).returns(@record)
95
+ record = Item.fetch(@record.id)
83
96
  end
84
97
  end
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.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Camilo Lopez
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-09-16 00:00:00.000000000 Z
15
+ date: 2014-02-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: ar_transaction_changes
@@ -20,68 +20,60 @@ dependencies:
20
20
  requirements:
21
21
  - - '='
22
22
  - !ruby/object:Gem::Version
23
- version: 0.0.1
23
+ version: 0.0.3
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - '='
29
29
  - !ruby/object:Gem::Version
30
- version: 0.0.1
30
+ version: 0.0.3
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: activerecord
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - ~>
35
+ - - ">="
36
36
  - !ruby/object:Gem::Version
37
- version: 3.2.12
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- requirements:
42
- - - ~>
43
- - !ruby/object:Gem::Version
44
- version: 3.2.12
45
- - !ruby/object:Gem::Dependency
46
- name: activesupport
47
- requirement: !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ~>
37
+ version: '3.2'
38
+ - - "<"
50
39
  - !ruby/object:Gem::Version
51
- version: 3.2.12
40
+ version: '4.1'
52
41
  type: :runtime
53
42
  prerelease: false
54
43
  version_requirements: !ruby/object:Gem::Requirement
55
44
  requirements:
56
- - - ~>
45
+ - - ">="
57
46
  - !ruby/object:Gem::Version
58
- version: 3.2.12
47
+ version: '3.2'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '4.1'
59
51
  - !ruby/object:Gem::Dependency
60
52
  name: memcache-client
61
53
  requirement: !ruby/object:Gem::Requirement
62
54
  requirements:
63
- - - ! '>='
55
+ - - ">="
64
56
  - !ruby/object:Gem::Version
65
57
  version: '0'
66
58
  type: :development
67
59
  prerelease: false
68
60
  version_requirements: !ruby/object:Gem::Requirement
69
61
  requirements:
70
- - - ! '>='
62
+ - - ">="
71
63
  - !ruby/object:Gem::Version
72
64
  version: '0'
73
65
  - !ruby/object:Gem::Dependency
74
66
  name: rake
75
67
  requirement: !ruby/object:Gem::Requirement
76
68
  requirements:
77
- - - ! '>='
69
+ - - ">="
78
70
  - !ruby/object:Gem::Version
79
71
  version: '0'
80
72
  type: :development
81
73
  prerelease: false
82
74
  version_requirements: !ruby/object:Gem::Requirement
83
75
  requirements:
84
- - - ! '>='
76
+ - - ">="
85
77
  - !ruby/object:Gem::Version
86
78
  version: '0'
87
79
  - !ruby/object:Gem::Dependency
@@ -98,34 +90,6 @@ dependencies:
98
90
  - - '='
99
91
  - !ruby/object:Gem::Version
100
92
  version: 0.14.0
101
- - !ruby/object:Gem::Dependency
102
- name: debugger
103
- requirement: !ruby/object:Gem::Requirement
104
- requirements:
105
- - - ! '>='
106
- - !ruby/object:Gem::Version
107
- version: '0'
108
- type: :development
109
- prerelease: false
110
- version_requirements: !ruby/object:Gem::Requirement
111
- requirements:
112
- - - ! '>='
113
- - !ruby/object:Gem::Version
114
- version: '0'
115
- - !ruby/object:Gem::Dependency
116
- name: ruby-prof
117
- requirement: !ruby/object:Gem::Requirement
118
- requirements:
119
- - - ! '>='
120
- - !ruby/object:Gem::Version
121
- version: '0'
122
- type: :development
123
- prerelease: false
124
- version_requirements: !ruby/object:Gem::Requirement
125
- requirements:
126
- - - ! '>='
127
- - !ruby/object:Gem::Version
128
- version: '0'
129
93
  - !ruby/object:Gem::Dependency
130
94
  name: cityhash
131
95
  requirement: !ruby/object:Gem::Requirement
@@ -144,14 +108,14 @@ dependencies:
144
108
  name: mysql2
145
109
  requirement: !ruby/object:Gem::Requirement
146
110
  requirements:
147
- - - ! '>='
111
+ - - ">="
148
112
  - !ruby/object:Gem::Version
149
113
  version: '0'
150
114
  type: :development
151
115
  prerelease: false
152
116
  version_requirements: !ruby/object:Gem::Requirement
153
117
  requirements:
154
- - - ! '>='
118
+ - - ">="
155
119
  - !ruby/object:Gem::Version
156
120
  version: '0'
157
121
  description: Opt in read through ActiveRecord caching.
@@ -161,10 +125,12 @@ executables: []
161
125
  extensions: []
162
126
  extra_rdoc_files: []
163
127
  files:
164
- - .gitignore
165
- - .travis.yml
128
+ - ".gitignore"
129
+ - ".ruby-version"
130
+ - ".travis.yml"
166
131
  - CHANGELOG
167
132
  - Gemfile
133
+ - Gemfile.rails4
168
134
  - LICENSE
169
135
  - README.md
170
136
  - Rakefile
@@ -215,17 +181,17 @@ require_paths:
215
181
  - lib
216
182
  required_ruby_version: !ruby/object:Gem::Requirement
217
183
  requirements:
218
- - - ! '>='
184
+ - - ">="
219
185
  - !ruby/object:Gem::Version
220
186
  version: '0'
221
187
  required_rubygems_version: !ruby/object:Gem::Requirement
222
188
  requirements:
223
- - - ! '>='
189
+ - - ">="
224
190
  - !ruby/object:Gem::Version
225
191
  version: '0'
226
192
  requirements: []
227
193
  rubyforge_project:
228
- rubygems_version: 2.1.0
194
+ rubygems_version: 2.2.0
229
195
  signing_key:
230
196
  specification_version: 4
231
197
  summary: IdentityCache lets you specify how you want to cache your model objects,