infopark_component_cache 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +1 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +4 -0
  5. data/README.md +8 -0
  6. data/Rakefile +17 -9
  7. data/app/helpers/infopark_component_cache_helper.rb +1 -7
  8. data/infopark_component_cache.gemspec +6 -3
  9. data/lib/engine.rb +35 -1
  10. data/lib/infopark_component_cache.rb +0 -14
  11. data/lib/infopark_component_cache/abstract_cache_storage.rb +40 -0
  12. data/lib/infopark_component_cache/cache_storage.rb +10 -24
  13. data/lib/infopark_component_cache/component.rb +1 -3
  14. data/lib/infopark_component_cache/component_cache.rb +9 -12
  15. data/lib/infopark_component_cache/consistency_guard.rb +3 -4
  16. data/lib/infopark_component_cache/delayed_guard.rb +65 -0
  17. data/lib/infopark_component_cache/guards/always_consistent.rb +1 -1
  18. data/lib/infopark_component_cache/guards/cms_state_guard.rb +32 -0
  19. data/lib/infopark_component_cache/guards/delayed_last_changed.rb +18 -0
  20. data/lib/infopark_component_cache/guards/delayed_obj_count.rb +18 -0
  21. data/lib/infopark_component_cache/guards/delayed_valid_from.rb +18 -0
  22. data/lib/infopark_component_cache/guards/delayed_valid_until.rb +18 -0
  23. data/lib/infopark_component_cache/guards/last_changed.rb +3 -3
  24. data/lib/infopark_component_cache/guards/never_consistent.rb +1 -1
  25. data/lib/infopark_component_cache/guards/obj_count.rb +3 -3
  26. data/lib/infopark_component_cache/guards/valid_from.rb +3 -3
  27. data/lib/infopark_component_cache/guards/valid_until.rb +3 -3
  28. data/lib/infopark_component_cache/guards/value_present.rb +1 -1
  29. data/lib/infopark_component_cache/version.rb +1 -1
  30. data/lib/infopark_component_cache/volatile_cache.rb +13 -0
  31. data/lib/infopark_component_cache/volatile_cache_storage.rb +18 -0
  32. data/spec/dummy/Rakefile +7 -0
  33. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  34. data/spec/dummy/app/models/obj.rb +2 -0
  35. data/spec/dummy/config.ru +4 -0
  36. data/spec/dummy/config/application.rb +19 -0
  37. data/spec/dummy/config/boot.rb +10 -0
  38. data/spec/dummy/config/database.yml +11 -0
  39. data/spec/dummy/config/environment.rb +5 -0
  40. data/spec/dummy/config/environments/development.rb +37 -0
  41. data/spec/dummy/config/environments/test.rb +10 -0
  42. data/spec/dummy/config/initializers/secret_token.rb +1 -0
  43. data/spec/dummy/config/initializers/session_store.rb +1 -0
  44. data/spec/dummy/config/initializers/wrap_parameters.rb +8 -0
  45. data/spec/dummy/config/routes.rb +58 -0
  46. data/spec/dummy/db/development.sqlite3 +0 -0
  47. data/spec/dummy/db/schema.rb +3 -0
  48. data/spec/dummy/log/.gitkeep +0 -0
  49. data/spec/lib/delayed_guard_spec.rb +72 -0
  50. data/spec/lib/guards/always_consistent_spec.rb +21 -0
  51. data/spec/lib/guards/last_changed_spec.rb +66 -0
  52. data/spec/lib/guards/never_consistent_spec.rb +21 -0
  53. data/spec/lib/guards/obj_count_spec.rb +64 -0
  54. data/spec/lib/guards/valid_from_spec.rb +66 -0
  55. data/spec/lib/guards/valid_until_spec.rb +73 -0
  56. data/spec/spec_helper.rb +25 -0
  57. data/spec/support/cache_switching_macros.rb +29 -0
  58. metadata +147 -79
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'infopark_component_cache/guards/always_consistent'
3
+
4
+ describe InfoparkComponentCache::Guards::AlwaysConsistent do
5
+ {"with cache disabled" => :disable_cache, "with cache enabled" => :enable_cache}.each do |context_description, macro|
6
+ context context_description do
7
+ self.send(macro)
8
+
9
+ subject { described_class.new(double) }
10
+
11
+ context "without a call to guard!" do
12
+ it { is_expected.to be_consistent }
13
+ end
14
+
15
+ context "with a call to guard!" do
16
+ before { subject.guard! }
17
+ it { is_expected.to be_consistent }
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe InfoparkComponentCache::Guards::LastChanged do
4
+ let(:cache_component_stub) do
5
+ double.tap do |cache_component_stub|
6
+ cache_component_stub.stub(:cache_key) do |input|
7
+ input.inspect
8
+ end
9
+ end
10
+ end
11
+
12
+ let(:maximum_last_changed) { 10.minutes.ago.to_iso }
13
+
14
+ let(:obj_stub) do
15
+ double.tap do |obj_stub|
16
+ obj_stub.stub(:scoped).and_return(obj_stub)
17
+ obj_stub.stub(:where).and_return(obj_stub)
18
+ obj_stub.stub(:maximum) do |field|
19
+ maximum_last_changed if field == :last_changed
20
+ end
21
+ end
22
+ end
23
+
24
+ before { InfoparkComponentCache::CmsStateGuard.obj_root_class = obj_stub }
25
+
26
+ subject { described_class.new(cache_component_stub) }
27
+
28
+ context "with cache disabled" do
29
+ disable_cache
30
+
31
+ context "without a call to guard!" do
32
+ it { is_expected.not_to be_consistent }
33
+ end
34
+
35
+ context "with a call to guard!" do
36
+ before { subject.guard! }
37
+ it { is_expected.not_to be_consistent }
38
+ end
39
+ end
40
+
41
+ context "with cache enabled" do
42
+ enable_cache
43
+ before { Rails.cache.clear }
44
+
45
+ context "without a call to guard!" do
46
+ it { is_expected.not_to be_consistent }
47
+ end
48
+
49
+ context "with a call to guard!" do
50
+ before { subject.guard! }
51
+ it { is_expected.to be_consistent }
52
+ end
53
+
54
+ context "after maximum last change changes" do
55
+ before { subject.guard! }
56
+ before { obj_stub.stub(:maximum).and_return(Time.now.to_iso) }
57
+ it { is_expected.not_to be_consistent }
58
+ end
59
+
60
+ context "after maximum last change changes to a past date" do
61
+ before { subject.guard! }
62
+ before { obj_stub.stub(:maximum).and_return(1.month.ago.to_iso) }
63
+ it { is_expected.to be_consistent }
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'infopark_component_cache/guards/never_consistent'
3
+
4
+ describe InfoparkComponentCache::Guards::NeverConsistent do
5
+ {"cache disabled" => :disable_cache, "cache enabled" => :enable_cache}.each do |context_description, macro|
6
+ context context_description do
7
+ self.send(macro)
8
+
9
+ subject { described_class.new(double) }
10
+
11
+ context "without a call to guard!" do
12
+ it { is_expected.not_to be_consistent }
13
+ end
14
+
15
+ context "with a call to guard!" do
16
+ before { subject.guard! }
17
+ it { is_expected.not_to be_consistent }
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ describe InfoparkComponentCache::Guards::ObjCount do
4
+ let(:cache_component_stub) do
5
+ double.tap do |cache_component_stub|
6
+ cache_component_stub.stub(:cache_key) do |input|
7
+ input.inspect
8
+ end
9
+ end
10
+ end
11
+
12
+ let(:count) { 12314 }
13
+
14
+ let(:obj_stub) do
15
+ double.tap do |obj_stub|
16
+ obj_stub.stub(:scoped).and_return(obj_stub)
17
+ obj_stub.stub(:where).and_return(obj_stub)
18
+ obj_stub.stub(:count).and_return(count)
19
+ end
20
+ end
21
+
22
+ before { InfoparkComponentCache::CmsStateGuard.obj_root_class = obj_stub }
23
+
24
+ subject { described_class.new(cache_component_stub) }
25
+
26
+ context "with cache disabled" do
27
+ disable_cache
28
+
29
+ context "without a call to guard!" do
30
+ it { is_expected.not_to be_consistent }
31
+ end
32
+
33
+ context "with a call to guard!" do
34
+ before { subject.guard! }
35
+ it { is_expected.not_to be_consistent }
36
+ end
37
+ end
38
+
39
+ context "with cache enabled" do
40
+ enable_cache
41
+ before { Rails.cache.clear }
42
+
43
+ context "without a call to guard!" do
44
+ it { is_expected.not_to be_consistent }
45
+ end
46
+
47
+ context "with a call to guard!" do
48
+ before { subject.guard! }
49
+ it { is_expected.to be_consistent }
50
+ end
51
+
52
+ context "after obj count increases" do
53
+ before { subject.guard! }
54
+ before { obj_stub.stub(:count).and_return(55555) }
55
+ it { is_expected.not_to be_consistent }
56
+ end
57
+
58
+ context "after obj count decreases" do
59
+ before { subject.guard! }
60
+ before { obj_stub.stub(:count).and_return(500) }
61
+ it { is_expected.not_to be_consistent }
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe InfoparkComponentCache::Guards::ValidFrom do
4
+ let(:cache_component_stub) do
5
+ double.tap do |cache_component_stub|
6
+ cache_component_stub.stub(:cache_key) do |input|
7
+ input.inspect
8
+ end
9
+ end
10
+ end
11
+
12
+ let(:minimum_valid_from) { 10.minutes.since.to_iso }
13
+
14
+ let(:obj_stub) do
15
+ double.tap do |obj_stub|
16
+ obj_stub.stub(:scoped).and_return(obj_stub)
17
+ obj_stub.stub(:where).and_return(obj_stub)
18
+ obj_stub.stub(:minimum) do |field|
19
+ minimum_valid_from if field == :valid_from
20
+ end
21
+ end
22
+ end
23
+
24
+ before { InfoparkComponentCache::CmsStateGuard.obj_root_class = obj_stub }
25
+
26
+ subject { described_class.new(cache_component_stub) }
27
+
28
+ context "with cache disabled" do
29
+ disable_cache
30
+
31
+ context "without a call to guard!" do
32
+ it { is_expected.not_to be_consistent }
33
+ end
34
+
35
+ context "with a call to guard!" do
36
+ before { subject.guard! }
37
+ it { is_expected.not_to be_consistent }
38
+ end
39
+ end
40
+
41
+ context "with cache enabled" do
42
+ enable_cache
43
+ before { Rails.cache.clear }
44
+
45
+ context "without a call to guard!" do
46
+ it { is_expected.not_to be_consistent }
47
+ end
48
+
49
+ context "with a call to guard!" do
50
+ before { subject.guard! }
51
+ it { is_expected.to be_consistent }
52
+ end
53
+
54
+ context "after minimum valid from changes to a present date" do
55
+ before { subject.guard! }
56
+ before { obj_stub.stub(:minimum).and_return(Time.now.to_iso) }
57
+ it { is_expected.not_to be_consistent }
58
+ end
59
+
60
+ context "after minimum valid from changes to a past date" do
61
+ before { subject.guard! }
62
+ before { obj_stub.stub(:minimum).and_return(1.month.ago.to_iso) }
63
+ it { is_expected.not_to be_consistent }
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+
3
+ describe InfoparkComponentCache::Guards::ValidUntil do
4
+ let(:cache_component_stub) do
5
+ double.tap do |cache_component_stub|
6
+ cache_component_stub.stub(:cache_key) do |input|
7
+ input.inspect
8
+ end
9
+ end
10
+ end
11
+
12
+ let(:minimum_valid_until) { 10.minutes.since.to_iso }
13
+
14
+ let(:obj_stub) do
15
+ double.tap do |obj_stub|
16
+ obj_stub.stub(:scoped).and_return(obj_stub)
17
+ obj_stub.stub(:where).and_return(obj_stub)
18
+ obj_stub.stub(:minimum) do |field|
19
+ minimum_valid_until if field == :valid_until
20
+ end
21
+ end
22
+ end
23
+
24
+ before { InfoparkComponentCache::CmsStateGuard.obj_root_class = obj_stub }
25
+
26
+ subject { described_class.new(cache_component_stub) }
27
+
28
+ context "with cache disabled" do
29
+ disable_cache
30
+
31
+ context "without a call to guard!" do
32
+ it { is_expected.not_to be_consistent }
33
+ end
34
+
35
+ context "with a call to guard!" do
36
+ before { subject.guard! }
37
+ it { is_expected.not_to be_consistent }
38
+ end
39
+ end
40
+
41
+ context "with cache enabled" do
42
+ enable_cache
43
+ before { Rails.cache.clear }
44
+
45
+ context "without a call to guard!" do
46
+ it { is_expected.not_to be_consistent }
47
+ end
48
+
49
+ context "with a call to guard!" do
50
+ before { subject.guard! }
51
+ it { is_expected.to be_consistent }
52
+ end
53
+
54
+ context "after minimum valid until changes to a present date" do
55
+ before { subject.guard! }
56
+ before { obj_stub.stub(:minimum).and_return(Time.now.to_iso) }
57
+ it { is_expected.not_to be_consistent }
58
+ end
59
+
60
+ context "after minimum valid until changes to a past date" do
61
+ before { subject.guard! }
62
+ before { obj_stub.stub(:minimum).and_return(1.month.ago.to_iso) }
63
+ it { is_expected.not_to be_consistent }
64
+ end
65
+
66
+ context "nil valid until" do
67
+ let(:minimum_valid_until) { nil }
68
+
69
+ before { subject.guard! }
70
+ it { is_expected.to be_consistent }
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,25 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ # Load dummy app
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ # Load rspec components
5
+ require 'rspec/rails'
6
+ require 'byebug'
7
+ # Nice backtraces
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # configure rspec
13
+ RSpec.configure do |config|
14
+ config.mock_with :rspec
15
+ config.use_transactional_fixtures = true
16
+ config.infer_base_class_for_anonymous_controllers = false
17
+ config.order = "random"
18
+ config.extend CacheSwitchingMacros
19
+ config.expect_with :rspec do |c|
20
+ c.syntax = [:should, :expect]
21
+ end
22
+ config.mock_with :rspec do |c|
23
+ c.syntax = [:should, :expect]
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ module CacheSwitchingMacros
2
+ def enable_cache(trigger=:all)
3
+ before(trigger) do
4
+ @__perform_caching_before ||= []
5
+ @__perform_caching_before.push Rails.application.config.action_controller.perform_caching
6
+ Rails.application.config.action_controller.perform_caching = true
7
+ end
8
+
9
+ after(trigger) do
10
+ @__perform_caching_before ||=[]
11
+ previous_setting = @__perform_caching_before.pop || false
12
+ Rails.application.config.action_controller.perform_caching = previous_setting
13
+ end
14
+ end
15
+
16
+ def disable_cache(trigger=:all)
17
+ before(trigger) do
18
+ @__perform_caching_before ||= []
19
+ @__perform_caching_before.push Rails.application.config.action_controller.perform_caching
20
+ Rails.application.config.action_controller.perform_caching = false
21
+ end
22
+
23
+ after(trigger) do
24
+ @__perform_caching_before ||=[]
25
+ previous_setting = @__perform_caching_before.pop || false
26
+ Rails.application.config.action_controller.perform_caching = previous_setting
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,76 +1,95 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: infopark_component_cache
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 0
10
- version: 1.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Tomasz Przedmojski
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-10-07 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.0.0
20
+ type: :runtime
23
21
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: infopark_fiona_connector
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
27
31
  - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
33
34
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: infopark_rails_connector
37
35
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
41
38
  - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
47
- type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: rspec
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
51
49
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sqlite3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
55
59
  - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
61
62
  type: :development
62
- version_requirements: *id003
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
63
83
  description: Easy and intelligent fragment caching for RailsConnector projects
64
- email:
84
+ email:
65
85
  - tomasz.przedmojski@infopark.de
66
86
  executables: []
67
-
68
87
  extensions: []
69
-
70
88
  extra_rdoc_files: []
71
-
72
- files:
73
- - .gitignore
89
+ files:
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".ruby-version"
74
93
  - Gemfile
75
94
  - LICENSE.txt
76
95
  - README.md
@@ -79,11 +98,18 @@ files:
79
98
  - infopark_component_cache.gemspec
80
99
  - lib/engine.rb
81
100
  - lib/infopark_component_cache.rb
101
+ - lib/infopark_component_cache/abstract_cache_storage.rb
82
102
  - lib/infopark_component_cache/cache_storage.rb
83
103
  - lib/infopark_component_cache/component.rb
84
104
  - lib/infopark_component_cache/component_cache.rb
85
105
  - lib/infopark_component_cache/consistency_guard.rb
106
+ - lib/infopark_component_cache/delayed_guard.rb
86
107
  - lib/infopark_component_cache/guards/always_consistent.rb
108
+ - lib/infopark_component_cache/guards/cms_state_guard.rb
109
+ - lib/infopark_component_cache/guards/delayed_last_changed.rb
110
+ - lib/infopark_component_cache/guards/delayed_obj_count.rb
111
+ - lib/infopark_component_cache/guards/delayed_valid_from.rb
112
+ - lib/infopark_component_cache/guards/delayed_valid_until.rb
87
113
  - lib/infopark_component_cache/guards/last_changed.rb
88
114
  - lib/infopark_component_cache/guards/never_consistent.rb
89
115
  - lib/infopark_component_cache/guards/obj_count.rb
@@ -92,39 +118,81 @@ files:
92
118
  - lib/infopark_component_cache/guards/value_present.rb
93
119
  - lib/infopark_component_cache/key_generator.rb
94
120
  - lib/infopark_component_cache/version.rb
95
- has_rdoc: true
96
- homepage: ""
121
+ - lib/infopark_component_cache/volatile_cache.rb
122
+ - lib/infopark_component_cache/volatile_cache_storage.rb
123
+ - spec/dummy/Rakefile
124
+ - spec/dummy/app/controllers/application_controller.rb
125
+ - spec/dummy/app/models/obj.rb
126
+ - spec/dummy/config.ru
127
+ - spec/dummy/config/application.rb
128
+ - spec/dummy/config/boot.rb
129
+ - spec/dummy/config/database.yml
130
+ - spec/dummy/config/environment.rb
131
+ - spec/dummy/config/environments/development.rb
132
+ - spec/dummy/config/environments/test.rb
133
+ - spec/dummy/config/initializers/secret_token.rb
134
+ - spec/dummy/config/initializers/session_store.rb
135
+ - spec/dummy/config/initializers/wrap_parameters.rb
136
+ - spec/dummy/config/routes.rb
137
+ - spec/dummy/db/development.sqlite3
138
+ - spec/dummy/db/schema.rb
139
+ - spec/dummy/log/.gitkeep
140
+ - spec/lib/delayed_guard_spec.rb
141
+ - spec/lib/guards/always_consistent_spec.rb
142
+ - spec/lib/guards/last_changed_spec.rb
143
+ - spec/lib/guards/never_consistent_spec.rb
144
+ - spec/lib/guards/obj_count_spec.rb
145
+ - spec/lib/guards/valid_from_spec.rb
146
+ - spec/lib/guards/valid_until_spec.rb
147
+ - spec/spec_helper.rb
148
+ - spec/support/cache_switching_macros.rb
149
+ homepage: ''
97
150
  licenses: []
98
-
151
+ metadata: {}
99
152
  post_install_message:
100
153
  rdoc_options: []
101
-
102
- require_paths:
154
+ require_paths:
103
155
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
156
+ required_ruby_version: !ruby/object:Gem::Requirement
157
+ requirements:
107
158
  - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
113
- required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
- requirements:
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
162
+ requirements:
116
163
  - - ">="
117
- - !ruby/object:Gem::Version
118
- hash: 3
119
- segments:
120
- - 0
121
- version: "0"
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
122
166
  requirements: []
123
-
124
167
  rubyforge_project:
125
- rubygems_version: 1.6.2
168
+ rubygems_version: 2.2.3
126
169
  signing_key:
127
- specification_version: 3
170
+ specification_version: 4
128
171
  summary: Fragment caching with automatic dependency resolution and cache invalidation.
129
- test_files: []
130
-
172
+ test_files:
173
+ - spec/dummy/Rakefile
174
+ - spec/dummy/app/controllers/application_controller.rb
175
+ - spec/dummy/app/models/obj.rb
176
+ - spec/dummy/config.ru
177
+ - spec/dummy/config/application.rb
178
+ - spec/dummy/config/boot.rb
179
+ - spec/dummy/config/database.yml
180
+ - spec/dummy/config/environment.rb
181
+ - spec/dummy/config/environments/development.rb
182
+ - spec/dummy/config/environments/test.rb
183
+ - spec/dummy/config/initializers/secret_token.rb
184
+ - spec/dummy/config/initializers/session_store.rb
185
+ - spec/dummy/config/initializers/wrap_parameters.rb
186
+ - spec/dummy/config/routes.rb
187
+ - spec/dummy/db/development.sqlite3
188
+ - spec/dummy/db/schema.rb
189
+ - spec/dummy/log/.gitkeep
190
+ - spec/lib/delayed_guard_spec.rb
191
+ - spec/lib/guards/always_consistent_spec.rb
192
+ - spec/lib/guards/last_changed_spec.rb
193
+ - spec/lib/guards/never_consistent_spec.rb
194
+ - spec/lib/guards/obj_count_spec.rb
195
+ - spec/lib/guards/valid_from_spec.rb
196
+ - spec/lib/guards/valid_until_spec.rb
197
+ - spec/spec_helper.rb
198
+ - spec/support/cache_switching_macros.rb