thermos 0.6.0 → 1.0.0

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
  SHA256:
3
- metadata.gz: f3979389850e8fc2f1d7ffede3e023a8e9f81e5d1239f403fa79c1df49dd8f3e
4
- data.tar.gz: 89806ca4b6ae5a81d121ae42adb784585852dd1af385d2f8067631b9cdd330a1
3
+ metadata.gz: 8436d0765dee9eafadbbb9994cce8aaed1e5746d96bc735fccdf55a945dcb4a8
4
+ data.tar.gz: 19fd374d31d2885979d791ab9dc0bfe021c9c61053b97ed4f96a0a5d862afa75
5
5
  SHA512:
6
- metadata.gz: 9ceaaf4c53a3b06e012d66f1f60476c0278d973543a3d8dfb050e9637338dbe789cbb2b206d87d3e5b0f0cf60a130d85bc2119ec059f21bfffce7e1eef16eeb7
7
- data.tar.gz: 1f5fc62f26e008e76059775cf273fcf05ea8b1be930acf5b25af3d3a0b36a11f9beae3f7a9b9083cb5869efb45105bb98e3cb1d22b443f61910934fed26c9315
6
+ metadata.gz: dd71bd6038960d9c556b3d55b697a6126d14573bb12ddc131e52a592629e39cc15e054c54cb0ee44aaf90a7b9879a43fc72571a9920c3ceae7b3a0721fb09cc2
7
+ data.tar.gz: 6de309fc56d581825c7497cd137595769ca81eff2298f9ba791b5809511bf1281e9b7376feac34849592c660605c9f53b5304e751f3e53df55cea8d377bf5413
@@ -60,26 +60,27 @@ module Thermos
60
60
  def generate_deps(model, deps, root = nil, path = nil)
61
61
  deps.reduce([]) do |acc, dep|
62
62
  if dep.is_a? Symbol
63
- acc <<
64
- Dependency.new(
65
- model: root || model,
66
- ref: model.reflect_on_association(dep),
67
- path: path || dep,
68
- )
63
+ acc << Dependency.new(
64
+ model: root || model,
65
+ ref: model.reflect_on_association(dep),
66
+ path: path || dep,
67
+ )
69
68
  elsif dep.is_a? Array
70
69
  dep.each do |d|
71
- acc <<
72
- Dependency.new(
73
- model: root || model,
74
- ref: model.reflect_on_association(d),
75
- path: path || d,
76
- )
70
+ acc << Dependency.new(
71
+ model: root || model,
72
+ ref: model.reflect_on_association(d),
73
+ path: path || d,
74
+ )
77
75
  end
78
76
  elsif dep.is_a? Hash
79
77
  dep.each do |k, v|
80
78
  ref = model.reflect_on_association(k)
81
- acc <<
82
- Dependency.new(model: root || model, ref: ref, path: path || k)
79
+ acc << Dependency.new(
80
+ model: root || model,
81
+ ref: ref,
82
+ path: path || k,
83
+ )
83
84
  acc.concat(generate_deps(ref.class_name.constantize, v, model, dep))
84
85
  end
85
86
  end
@@ -10,9 +10,10 @@ module Thermos
10
10
  def refill_primary_caches(model)
11
11
  BeverageStorage.instance.beverages.each do |beverage|
12
12
  if beverage.model == model.class && beverage.should_fill?(model)
13
- Thermos::RebuildCacheJob
14
- .set(queue: beverage.queue)
15
- .perform_later(beverage.key, model.send(beverage.lookup_key))
13
+ Thermos::RebuildCacheJob.set(queue: beverage.queue).perform_later(
14
+ beverage.key,
15
+ model.send(beverage.lookup_key),
16
+ )
16
17
  end
17
18
  end
18
19
  end
@@ -22,9 +23,10 @@ module Thermos
22
23
  beverage
23
24
  .lookup_keys_for_dep_model(model)
24
25
  .each do |lookup_key|
25
- Thermos::RebuildCacheJob
26
- .set(queue: beverage.queue)
27
- .perform_later(beverage.key, lookup_key)
26
+ Thermos::RebuildCacheJob.set(queue: beverage.queue).perform_later(
27
+ beverage.key,
28
+ lookup_key,
29
+ )
28
30
  end
29
31
  end
30
32
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Thermos
4
- VERSION = '0.6.0'
4
+ VERSION = "1.0.0"
5
5
  end
data/lib/thermos.rb CHANGED
@@ -1,37 +1,54 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thermos/beverage'
4
- require 'thermos/beverage_storage'
5
- require 'thermos/dependency'
6
- require 'thermos/notifier'
7
- require 'thermos/refill_job'
8
- require 'thermos/rebuild_cache_job'
3
+ require "thermos/beverage"
4
+ require "thermos/beverage_storage"
5
+ require "thermos/dependency"
6
+ require "thermos/notifier"
7
+ require "thermos/refill_job"
8
+ require "thermos/rebuild_cache_job"
9
9
 
10
10
  module Thermos
11
- def self.keep_warm(key:, model:, id:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block)
11
+ def self.keep_warm(
12
+ key:,
13
+ model:,
14
+ id:,
15
+ deps: [],
16
+ lookup_key: nil,
17
+ filter: nil,
18
+ queue: nil,
19
+ &block
20
+ )
12
21
  fill(
13
- key: key,
14
- model: model,
15
- deps: deps,
16
- lookup_key: lookup_key,
17
- filter: filter,
18
- queue: queue,
22
+ key: key,
23
+ model: model,
24
+ deps: deps,
25
+ lookup_key: lookup_key,
26
+ filter: filter,
27
+ queue: queue,
19
28
  &block
20
29
  )
21
30
  drink(key: key, id: id)
22
31
  end
23
32
 
24
- def self.fill(key:, model:, deps: [], lookup_key: nil, filter: nil, queue: nil, &block)
33
+ def self.fill(
34
+ key:,
35
+ model:,
36
+ deps: [],
37
+ lookup_key: nil,
38
+ filter: nil,
39
+ queue: nil,
40
+ &block
41
+ )
25
42
  BeverageStorage.instance.add_beverage(
26
43
  Beverage.new(
27
- key: key,
28
- model: model,
29
- deps: deps,
30
- action: block,
31
- lookup_key: lookup_key,
32
- filter: filter,
33
- queue: queue
34
- )
44
+ key: key,
45
+ model: model,
46
+ deps: deps,
47
+ action: block,
48
+ lookup_key: lookup_key,
49
+ filter: filter,
50
+ queue: queue,
51
+ ),
35
52
  )
36
53
  end
37
54
 
@@ -1,58 +1,58 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class DependenciesTest < ActiveSupport::TestCase
4
4
  self.use_transactional_tests = true
5
5
  teardown :clear_cache
6
6
 
7
- test 'rebuilds the cache on has_many model change' do
7
+ test "rebuilds the cache on has_many model change" do
8
8
  mock = Minitest::Mock.new
9
9
  category = categories(:baseball)
10
10
  category_item = category_items(:baseball_glove)
11
11
 
12
- Thermos.fill(key: 'key', model: Category, deps: [:category_items]) do |id|
12
+ Thermos.fill(key: "key", model: Category, deps: [:category_items]) do |id|
13
13
  mock.call(id)
14
14
  end
15
15
 
16
16
  mock.expect(:call, 1, [category.id])
17
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
17
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
18
18
  mock.verify
19
19
 
20
20
  mock.expect(:call, 2, [category.id])
21
- category_item.update!(name: 'foo')
21
+ category_item.update!(name: "foo")
22
22
  mock.verify
23
23
 
24
24
  mock.expect(:call, 3, [category.id])
25
- assert_equal 2, Thermos.drink(key: 'key', id: category.id)
25
+ assert_equal 2, Thermos.drink(key: "key", id: category.id)
26
26
  assert_raises(MockExpectationError) { mock.verify }
27
27
  end
28
28
 
29
- test 'does not rebuild the cache for an unrelated has_many model change' do
29
+ test "does not rebuild the cache for an unrelated has_many model change" do
30
30
  mock = Minitest::Mock.new
31
31
  category = categories(:baseball)
32
32
  category_item = CategoryItem.create(category: nil)
33
33
 
34
- Thermos.fill(key: 'key', model: Category, deps: [:category_items]) do |id|
34
+ Thermos.fill(key: "key", model: Category, deps: [:category_items]) do |id|
35
35
  mock.call(id)
36
36
  end
37
37
 
38
38
  mock.expect(:call, 1, [category.id])
39
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
39
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
40
40
  mock.verify
41
41
 
42
42
  mock.expect(:call, 2, [category.id])
43
- category_item.update!(name: 'foo')
43
+ category_item.update!(name: "foo")
44
44
  assert_raises(MockExpectationError) { mock.verify }
45
45
 
46
46
  mock.expect(:call, 3, [category.id])
47
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
47
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
48
48
  assert_raises(MockExpectationError) { mock.verify }
49
49
  end
50
50
 
51
- test 're-builds the cache for new has_many records' do
51
+ test "re-builds the cache for new has_many records" do
52
52
  mock = Minitest::Mock.new
53
53
  category = categories(:baseball)
54
54
 
55
- Thermos.fill(key: 'key', model: Category, deps: [:category_items]) do |id|
55
+ Thermos.fill(key: "key", model: Category, deps: [:category_items]) do |id|
56
56
  mock.call(id)
57
57
  end
58
58
 
@@ -61,17 +61,17 @@ class DependenciesTest < ActiveSupport::TestCase
61
61
  mock.verify
62
62
 
63
63
  mock.expect(:call, 2, [category.id])
64
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
64
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
65
65
  assert_raises(MockExpectationError) { mock.verify }
66
66
  end
67
67
 
68
- test 're-builds the cache for has_many record changes when filter condition is met' do
68
+ test "re-builds the cache for has_many record changes when filter condition is met" do
69
69
  mock = Minitest::Mock.new
70
70
  category = categories(:baseball)
71
71
  filter = ->(model) { model.ball? }
72
72
 
73
73
  Thermos.fill(
74
- key: 'key',
74
+ key: "key",
75
75
  model: Category,
76
76
  deps: [:category_items],
77
77
  filter: filter,
@@ -81,82 +81,82 @@ class DependenciesTest < ActiveSupport::TestCase
81
81
  CategoryItem.create!(category: category)
82
82
  mock.verify
83
83
 
84
- category.update!(name: 'hockey')
84
+ category.update!(name: "hockey")
85
85
 
86
86
  mock.expect(:call, 1, [category.id])
87
87
  CategoryItem.create!(category: category)
88
88
  assert_raises(MockExpectationError) { mock.verify }
89
89
  end
90
90
 
91
- test 'rebuilds the cache on belongs_to model change' do
91
+ test "rebuilds the cache on belongs_to model change" do
92
92
  mock = Minitest::Mock.new
93
93
  category = categories(:baseball)
94
94
  store = stores(:sports)
95
95
 
96
- Thermos.fill(key: 'key', model: Category, deps: [:store]) do |id|
96
+ Thermos.fill(key: "key", model: Category, deps: [:store]) do |id|
97
97
  mock.call(id)
98
98
  end
99
99
 
100
100
  mock.expect(:call, 1, [category.id])
101
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
101
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
102
102
  mock.verify
103
103
 
104
104
  mock.expect(:call, 2, [category.id])
105
- store.update!(name: 'foo')
105
+ store.update!(name: "foo")
106
106
  mock.verify
107
107
 
108
108
  mock.expect(:call, 3, [category.id])
109
- assert_equal 2, Thermos.drink(key: 'key', id: category.id)
109
+ assert_equal 2, Thermos.drink(key: "key", id: category.id)
110
110
  assert_raises(MockExpectationError) { mock.verify }
111
111
  end
112
112
 
113
- test 'does not rebuild the cache for an unrelated belongs_to model change' do
113
+ test "does not rebuild the cache for an unrelated belongs_to model change" do
114
114
  mock = Minitest::Mock.new
115
115
  category = categories(:baseball)
116
116
  store = Store.create!
117
117
 
118
- Thermos.fill(key: 'key', model: Category, deps: [:store]) do |id|
118
+ Thermos.fill(key: "key", model: Category, deps: [:store]) do |id|
119
119
  mock.call(id)
120
120
  end
121
121
 
122
122
  mock.expect(:call, 1, [category.id])
123
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
123
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
124
124
  mock.verify
125
125
 
126
126
  mock.expect(:call, 2, [category.id])
127
- store.update!(name: 'foo')
127
+ store.update!(name: "foo")
128
128
  assert_raises(MockExpectationError) { mock.verify }
129
129
 
130
130
  mock.expect(:call, 3, [category.id])
131
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
131
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
132
132
  assert_raises(MockExpectationError) { mock.verify }
133
133
  end
134
134
 
135
- test 're-builds the cache for new belongs_to records' do
135
+ test "re-builds the cache for new belongs_to records" do
136
136
  mock = Minitest::Mock.new
137
137
  category = categories(:baseball)
138
138
 
139
- Thermos.fill(key: 'key', model: Category, deps: [:store]) do |id|
139
+ Thermos.fill(key: "key", model: Category, deps: [:store]) do |id|
140
140
  mock.call(id)
141
141
  end
142
142
 
143
143
  mock.expect(:call, 1, [category.id])
144
144
  mock.expect(:call, 1, [category.id])
145
- Store.create!(name: 'foo', categories: [category])
145
+ Store.create!(name: "foo", categories: [category])
146
146
  mock.verify
147
147
 
148
148
  mock.expect(:call, 2, [category.id])
149
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
149
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
150
150
  assert_raises(MockExpectationError) { mock.verify }
151
151
  end
152
152
 
153
- test 're-builds the cache for belongs_to record changes when filter condition is met' do
153
+ test "re-builds the cache for belongs_to record changes when filter condition is met" do
154
154
  mock = Minitest::Mock.new
155
155
  category = categories(:baseball)
156
156
  filter = ->(model) { model.ball? }
157
157
 
158
158
  Thermos.fill(
159
- key: 'key',
159
+ key: "key",
160
160
  model: Category,
161
161
  deps: [:store],
162
162
  filter: filter,
@@ -164,65 +164,65 @@ class DependenciesTest < ActiveSupport::TestCase
164
164
 
165
165
  mock.expect(:call, 1, [category.id])
166
166
  mock.expect(:call, 1, [category.id])
167
- Store.create!(name: 'foo', categories: [category])
167
+ Store.create!(name: "foo", categories: [category])
168
168
  mock.verify
169
169
 
170
- category.update!(name: 'hockey')
170
+ category.update!(name: "hockey")
171
171
 
172
172
  mock.expect(:call, 2, [category.id])
173
- Store.create!(name: 'bar', categories: [category])
173
+ Store.create!(name: "bar", categories: [category])
174
174
  assert_raises(MockExpectationError) { mock.verify }
175
175
  end
176
176
 
177
- test 'rebuilds the cache on has_many through model change' do
177
+ test "rebuilds the cache on has_many through model change" do
178
178
  mock = Minitest::Mock.new
179
179
  category = categories(:baseball)
180
180
  product = products(:glove)
181
181
 
182
- Thermos.fill(key: 'key', model: Category, deps: [:products]) do |id|
182
+ Thermos.fill(key: "key", model: Category, deps: [:products]) do |id|
183
183
  mock.call(id)
184
184
  end
185
185
 
186
186
  mock.expect(:call, 1, [category.id])
187
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
187
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
188
188
  mock.verify
189
189
 
190
190
  mock.expect(:call, 2, [category.id])
191
- product.update!(name: 'foo')
191
+ product.update!(name: "foo")
192
192
  mock.verify
193
193
 
194
194
  mock.expect(:call, 3, [category.id])
195
- assert_equal 2, Thermos.drink(key: 'key', id: category.id)
195
+ assert_equal 2, Thermos.drink(key: "key", id: category.id)
196
196
  assert_raises(MockExpectationError) { mock.verify }
197
197
  end
198
198
 
199
- test 'does not rebuild the cache for an unrelated has_many through model change' do
199
+ test "does not rebuild the cache for an unrelated has_many through model change" do
200
200
  mock = Minitest::Mock.new
201
201
  category = categories(:baseball)
202
202
  product = Product.create!
203
203
 
204
- Thermos.fill(key: 'key', model: Category, deps: [:products]) do |id|
204
+ Thermos.fill(key: "key", model: Category, deps: [:products]) do |id|
205
205
  mock.call(id)
206
206
  end
207
207
 
208
208
  mock.expect(:call, 1, [category.id])
209
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
209
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
210
210
  mock.verify
211
211
 
212
212
  mock.expect(:call, 2, [category.id])
213
- product.update!(name: 'foo')
213
+ product.update!(name: "foo")
214
214
  assert_raises(MockExpectationError) { mock.verify }
215
215
 
216
216
  mock.expect(:call, 3, [category.id])
217
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
217
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
218
218
  assert_raises(MockExpectationError) { mock.verify }
219
219
  end
220
220
 
221
- test 're-builds the cache for new has_many through records' do
221
+ test "re-builds the cache for new has_many through records" do
222
222
  mock = Minitest::Mock.new
223
223
  category = categories(:baseball)
224
224
 
225
- Thermos.fill(key: 'key', model: Category, deps: [:products]) do |id|
225
+ Thermos.fill(key: "key", model: Category, deps: [:products]) do |id|
226
226
  mock.call(id)
227
227
  end
228
228
 
@@ -231,17 +231,17 @@ class DependenciesTest < ActiveSupport::TestCase
231
231
  mock.verify
232
232
 
233
233
  mock.expect(:call, 2, [category.id])
234
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
234
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
235
235
  assert_raises(MockExpectationError) { mock.verify }
236
236
  end
237
237
 
238
- test 're-builds the cache for has_many through record changes when filter condition is met' do
238
+ test "re-builds the cache for has_many through record changes when filter condition is met" do
239
239
  mock = Minitest::Mock.new
240
240
  category = categories(:baseball)
241
241
  filter = ->(model) { model.ball? }
242
242
 
243
243
  Thermos.fill(
244
- key: 'key',
244
+ key: "key",
245
245
  model: Category,
246
246
  deps: [:products],
247
247
  filter: filter,
@@ -251,56 +251,56 @@ class DependenciesTest < ActiveSupport::TestCase
251
251
  Product.create!(categories: [category])
252
252
  mock.verify
253
253
 
254
- category.update!(name: 'hockey')
254
+ category.update!(name: "hockey")
255
255
 
256
256
  mock.expect(:call, 2, [category.id])
257
257
  Product.create!(categories: [category])
258
258
  assert_raises(MockExpectationError) { mock.verify }
259
259
  end
260
260
 
261
- test 'handles indirect associations' do
261
+ test "handles indirect associations" do
262
262
  mock = Minitest::Mock.new
263
263
  category = categories(:baseball)
264
264
  store = category.store
265
265
 
266
266
  Thermos.fill(
267
- key: 'key',
267
+ key: "key",
268
268
  model: Store,
269
269
  deps: [categories: [:products]],
270
270
  ) { |id| mock.call(id) }
271
271
 
272
272
  mock.expect(:call, 1, [store.id])
273
- category.update!(name: 'foo')
273
+ category.update!(name: "foo")
274
274
  mock.verify
275
275
 
276
276
  mock.expect(:call, 2, [store.id])
277
- assert_equal 1, Thermos.drink(key: 'key', id: store.id)
277
+ assert_equal 1, Thermos.drink(key: "key", id: store.id)
278
278
  assert_raises(MockExpectationError) { mock.verify }
279
279
  Product.create!(categories: [category])
280
280
  mock.verify
281
281
 
282
282
  mock.expect(:call, 3, [store.id])
283
- assert_equal 2, Thermos.drink(key: 'key', id: store.id)
283
+ assert_equal 2, Thermos.drink(key: "key", id: store.id)
284
284
  assert_raises(MockExpectationError) { mock.verify }
285
285
  end
286
286
 
287
- test 'only rebuilds cache for stated dependencies, even if another cache has an associated model of the primary' do
287
+ test "only rebuilds cache for stated dependencies, even if another cache has an associated model of the primary" do
288
288
  category_mock = Minitest::Mock.new
289
289
  product_mock = Minitest::Mock.new
290
290
  category = categories(:baseball)
291
291
  product = products(:glove)
292
292
 
293
- Thermos.fill(key: 'category_key', model: Category) do |id|
293
+ Thermos.fill(key: "category_key", model: Category) do |id|
294
294
  category_mock.call(id)
295
295
  end
296
296
 
297
- Thermos.fill(key: 'product_key', model: Product) do |id|
297
+ Thermos.fill(key: "product_key", model: Product) do |id|
298
298
  product_mock.call(id)
299
299
  end
300
300
 
301
301
  category_mock.expect(:call, 2, [category.id])
302
302
  product_mock.expect(:call, 2, [product.id])
303
- product.update!(name: 'foo')
303
+ product.update!(name: "foo")
304
304
  assert_raises(MockExpectationError) { category_mock.verify }
305
305
  product_mock.verify
306
306
  end
@@ -4,7 +4,7 @@ class Category < ActiveRecord::Base
4
4
  belongs_to :store
5
5
 
6
6
  def ball?
7
- name.match('ball')
7
+ name.match("ball")
8
8
  end
9
9
 
10
10
  def as_json(*args)
@@ -1,9 +1,9 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ require File.expand_path("../boot", __FILE__)
2
2
 
3
- require 'rails/all'
3
+ require "rails/all"
4
4
 
5
5
  Bundler.require(*Rails.groups)
6
- require 'thermos'
6
+ require "thermos"
7
7
 
8
8
  module Dummy
9
9
  class Application < Rails::Application
@@ -1,5 +1,5 @@
1
1
  # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
2
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../../../Gemfile", __FILE__)
3
3
 
4
- require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
- $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
4
+ require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
5
+ $LOAD_PATH.unshift File.expand_path("../../../../lib", __FILE__)
@@ -1,5 +1,5 @@
1
1
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
2
+ require File.expand_path("../application", __FILE__)
3
3
 
4
4
  # Initialize the Rails application.
5
5
  Rails.application.initialize!
@@ -25,16 +25,16 @@ Rails.application.configure do
25
25
  # Debug mode disables concatenation and preprocessing of assets.
26
26
  # This option may cause significant delays in view rendering with a large
27
27
  # number of complex assets.
28
- config.assets.debug = true
28
+ # config.assets.debug = true
29
29
 
30
30
  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
31
31
  # yet still be able to expire them through the digest params.
32
- config.assets.digest = true
32
+ # config.assets.digest = true
33
33
 
34
34
  # Adds additional error checking when serving assets at runtime.
35
35
  # Checks for improperly declared sprockets dependencies.
36
36
  # Raises helpful error messages.
37
- config.assets.raise_runtime_errors = true
37
+ # config.assets.raise_runtime_errors = true
38
38
 
39
39
  # Raises error for missing translations
40
40
  # config.action_view.raise_on_missing_translations = true
@@ -22,19 +22,19 @@ Rails.application.configure do
22
22
 
23
23
  # Disable serving static files from the `/public` folder by default since
24
24
  # Apache or NGINX already handles this.
25
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
25
+ config.serve_static_files = ENV["RAILS_SERVE_STATIC_FILES"].present?
26
26
 
27
27
  # Compress JavaScripts and CSS.
28
- config.assets.js_compressor = :uglifier
28
+ # config.assets.js_compressor = :uglifier
29
29
 
30
30
  # config.assets.css_compressor = :sass
31
31
 
32
32
  # Do not fallback to assets pipeline if a precompiled asset is missed.
33
- config.assets.compile = false
33
+ # config.assets.compile = false
34
34
 
35
35
  # Asset digests allow you to set far-future HTTP expiration dates on all assets,
36
36
  # yet still be able to expire them through the digest params.
37
- config.assets.digest = true
37
+ # config.assets.digest = true
38
38
 
39
39
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
40
40
 
@@ -14,7 +14,7 @@ Rails.application.configure do
14
14
 
15
15
  # Configure static file server for tests with Cache-Control for performance.
16
16
  config.serve_static_files = true
17
- config.static_cache_control = 'public, max-age=3600'
17
+ config.static_cache_control = "public, max-age=3600"
18
18
 
19
19
  # Show full error reports and disable caching.
20
20
  config.consider_all_requests_local = true
@@ -1,7 +1,7 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
3
  # Version of your assets, change this if you want to expire all your assets.
4
- Rails.application.config.assets.version = '1.0'
4
+ # Rails.application.config.assets.version = '1.0'
5
5
 
6
6
  # Add additional assets to the asset load path
7
7
  # Rails.application.config.assets.paths << Emoji.images_path
@@ -1,3 +1,3 @@
1
1
  # Be sure to restart your server when you modify this file.
2
2
 
3
- Rails.application.config.session_store :cookie_store, key: '_dummy_session'
3
+ Rails.application.config.session_store :cookie_store, key: "_dummy_session"
@@ -10,31 +10,31 @@
10
10
  #
11
11
  # It's strongly recommended that you check this file into your version control system.
12
12
 
13
- ActiveRecord::Schema.define(version: 2016_03_26_174530) do
14
- create_table 'categories', force: :cascade do |t|
15
- t.string 'name'
16
- t.integer 'store_id'
17
- t.datetime 'created_at', null: false
18
- t.datetime 'updated_at', null: false
13
+ ActiveRecord::Schema[7.0].define(version: 2016_03_26_174530) do
14
+ create_table "categories", force: :cascade do |t|
15
+ t.string "name"
16
+ t.integer "store_id"
17
+ t.datetime "created_at", precision: nil, null: false
18
+ t.datetime "updated_at", precision: nil, null: false
19
19
  end
20
20
 
21
- create_table 'category_items', force: :cascade do |t|
22
- t.string 'name'
23
- t.integer 'category_id'
24
- t.integer 'product_id'
25
- t.datetime 'created_at', null: false
26
- t.datetime 'updated_at', null: false
21
+ create_table "category_items", force: :cascade do |t|
22
+ t.string "name"
23
+ t.integer "category_id"
24
+ t.integer "product_id"
25
+ t.datetime "created_at", precision: nil, null: false
26
+ t.datetime "updated_at", precision: nil, null: false
27
27
  end
28
28
 
29
- create_table 'products', force: :cascade do |t|
30
- t.string 'name'
31
- t.datetime 'created_at', null: false
32
- t.datetime 'updated_at', null: false
29
+ create_table "products", force: :cascade do |t|
30
+ t.string "name"
31
+ t.datetime "created_at", precision: nil, null: false
32
+ t.datetime "updated_at", precision: nil, null: false
33
33
  end
34
34
 
35
- create_table 'stores', force: :cascade do |t|
36
- t.string 'name'
37
- t.datetime 'created_at', null: false
38
- t.datetime 'updated_at', null: false
35
+ create_table "stores", force: :cascade do |t|
36
+ t.string "name"
37
+ t.datetime "created_at", precision: nil, null: false
38
+ t.datetime "updated_at", precision: nil, null: false
39
39
  end
40
40
  end
data/test/filter_test.rb CHANGED
@@ -1,30 +1,30 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class FilterTest < ActiveSupport::TestCase
4
4
  self.use_transactional_tests = true
5
5
  teardown :clear_cache
6
6
 
7
- test 'allows filtering for which records should be rebuilt' do
7
+ test "allows filtering for which records should be rebuilt" do
8
8
  mock = Minitest::Mock.new
9
9
  category = categories(:baseball)
10
- filter = ->(model) { model.name.match('ball') }
10
+ filter = ->(model) { model.name.match("ball") }
11
11
  Thermos.fill(
12
- key: 'key',
12
+ key: "key",
13
13
  model: Category,
14
- lookup_key: 'name',
14
+ lookup_key: "name",
15
15
  filter: filter,
16
16
  ) { |name| mock.call(name) }
17
17
 
18
- mock.expect(:call, 1, ['basketball'])
19
- category.update!(name: 'basketball')
18
+ mock.expect(:call, 1, ["basketball"])
19
+ category.update!(name: "basketball")
20
20
  mock.verify
21
21
 
22
- mock.expect(:call, 1, ['hockey'])
23
- category.update!(name: 'hockey')
22
+ mock.expect(:call, 1, ["hockey"])
23
+ category.update!(name: "hockey")
24
24
  assert_raises(MockExpectationError) { mock.verify }
25
25
  end
26
26
 
27
- test 'allows filtering based on the beverage when multiple beverages are configured and only one of them has a filter' do
27
+ test "allows filtering based on the beverage when multiple beverages are configured and only one of them has a filter" do
28
28
  mock = Minitest::Mock.new
29
29
  store = stores(:supermarket)
30
30
  category = categories(:baseball)
@@ -34,19 +34,19 @@ class FilterTest < ActiveSupport::TestCase
34
34
  filter = ->(model) { model.ball? }
35
35
 
36
36
  Thermos.fill(
37
- key: 'key',
37
+ key: "key",
38
38
  model: Category,
39
- lookup_key: 'name',
39
+ lookup_key: "name",
40
40
  filter: filter,
41
41
  ) { |name| mock.call(name) }
42
42
 
43
- Thermos.fill(key: 'key_2', model: Store, lookup_key: 'name') do |name|
43
+ Thermos.fill(key: "key_2", model: Store, lookup_key: "name") do |name|
44
44
  mock.call(name)
45
45
  end
46
46
 
47
- mock.expect(:call, 1, ['groceries'])
48
- store.update!(name: 'groceries')
49
- assert_equal 1, Thermos.drink(key: 'key_2', id: 'groceries')
47
+ mock.expect(:call, 1, ["groceries"])
48
+ store.update!(name: "groceries")
49
+ assert_equal 1, Thermos.drink(key: "key_2", id: "groceries")
50
50
  mock.verify
51
51
  end
52
52
  end
data/test/queue_test.rb CHANGED
@@ -1,36 +1,36 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class QueueTest < ActiveSupport::TestCase
4
4
  include ActiveJob::TestHelper
5
5
  self.use_transactional_tests = true
6
6
  teardown :clear_cache
7
7
 
8
- test 'uses the default background queue by default' do
8
+ test "uses the default background queue by default" do
9
9
  mock = Minitest::Mock.new
10
10
  category = categories(:baseball)
11
11
 
12
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
12
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
13
13
 
14
14
  mock.expect(:call, 1, [category.id])
15
- assert_performed_with(job: Thermos::RebuildCacheJob, queue: 'default') do
16
- category.update!(name: 'foo')
15
+ assert_performed_with(job: Thermos::RebuildCacheJob, queue: "default") do
16
+ category.update!(name: "foo")
17
17
  end
18
18
  mock.verify
19
19
  end
20
20
 
21
- test 'can specify a preferred queue name for the cache filling' do
21
+ test "can specify a preferred queue name for the cache filling" do
22
22
  mock = Minitest::Mock.new
23
23
  category = categories(:baseball)
24
24
 
25
- Thermos.fill(key: 'key', model: Category, queue: 'low_priority') do |id|
25
+ Thermos.fill(key: "key", model: Category, queue: "low_priority") do |id|
26
26
  mock.call(id)
27
27
  end
28
28
 
29
29
  mock.expect(:call, 1, [category.id])
30
30
  assert_performed_with(
31
31
  job: Thermos::RebuildCacheJob,
32
- queue: 'low_priority',
33
- ) { category.update!(name: 'foo') }
32
+ queue: "low_priority",
33
+ ) { category.update!(name: "foo") }
34
34
  mock.verify
35
35
  end
36
36
  end
data/test/test_helper.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  # Configure Rails Environment
2
- ENV['RAILS_ENV'] = 'test'
2
+ ENV["RAILS_ENV"] = "test"
3
3
 
4
- require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
5
  ActiveRecord::Migrator.migrations_paths = [
6
- File.expand_path('../../test/dummy/db/migrate', __FILE__),
6
+ File.expand_path("../../test/dummy/db/migrate", __FILE__),
7
7
  ]
8
- require 'rails/test_help'
8
+ require "rails/test_help"
9
9
 
10
10
  # Filter out Minitest backtrace while allowing backtrace from other libraries
11
11
  # to be shown.
12
12
  Minitest.backtrace_filter = Minitest::BacktraceFilter.new
13
- require 'minitest/mock'
13
+ require "minitest/mock"
14
14
 
15
15
  # Load support files
16
16
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -18,7 +18,7 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
18
18
  # Load fixtures from the engine
19
19
  if ActiveSupport::TestCase.respond_to?(:fixture_path=)
20
20
  ActiveSupport::TestCase.fixture_path =
21
- File.expand_path('../fixtures', __FILE__)
21
+ File.expand_path("../fixtures", __FILE__)
22
22
  ActionDispatch::IntegrationTest.fixture_path =
23
23
  ActiveSupport::TestCase.fixture_path
24
24
  ActiveSupport::TestCase.fixtures :all
data/test/thermos_test.rb CHANGED
@@ -1,29 +1,29 @@
1
- require 'test_helper'
1
+ require "test_helper"
2
2
 
3
3
  class ThermosTest < ActiveSupport::TestCase
4
4
  self.use_transactional_tests = true
5
5
  teardown :clear_cache
6
6
 
7
- test 'keeps the cache warm using fill / drink' do
7
+ test "keeps the cache warm using fill / drink" do
8
8
  mock = Minitest::Mock.new
9
9
 
10
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
10
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
11
11
 
12
12
  mock.expect(:call, 1, [1])
13
- assert_equal 1, Thermos.drink(key: 'key', id: 1)
13
+ assert_equal 1, Thermos.drink(key: "key", id: 1)
14
14
  mock.verify
15
15
 
16
16
  mock.expect(:call, 2, [1])
17
- assert_equal 1, Thermos.drink(key: 'key', id: 1)
17
+ assert_equal 1, Thermos.drink(key: "key", id: 1)
18
18
  assert_raises(MockExpectationError) { mock.verify }
19
19
  end
20
20
 
21
- test 'keeps the cache warm using keep_warm' do
21
+ test "keeps the cache warm using keep_warm" do
22
22
  mock = Minitest::Mock.new
23
23
 
24
24
  mock.expect(:call, 1, [1])
25
25
  response =
26
- Thermos.keep_warm(key: 'key', model: Category, id: 1) do |id|
26
+ Thermos.keep_warm(key: "key", model: Category, id: 1) do |id|
27
27
  mock.call(id)
28
28
  end
29
29
  assert_equal 1, response
@@ -31,7 +31,7 @@ class ThermosTest < ActiveSupport::TestCase
31
31
 
32
32
  mock.expect(:call, 2, [1])
33
33
  response =
34
- Thermos.keep_warm(key: 'key', model: Category, id: 1) do |id|
34
+ Thermos.keep_warm(key: "key", model: Category, id: 1) do |id|
35
35
  mock.call(id)
36
36
  end
37
37
  assert_equal 1, response
@@ -39,75 +39,75 @@ class ThermosTest < ActiveSupport::TestCase
39
39
  end
40
40
 
41
41
  # primary model changes
42
- test 'rebuilds the cache on primary model change' do
42
+ test "rebuilds the cache on primary model change" do
43
43
  mock = Minitest::Mock.new
44
44
  category = categories(:baseball)
45
45
 
46
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
46
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
47
47
 
48
48
  mock.expect(:call, 1, [category.id])
49
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
49
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
50
50
  mock.verify
51
51
 
52
52
  mock.expect(:call, 2, [category.id])
53
- category.update!(name: 'foo')
53
+ category.update!(name: "foo")
54
54
  mock.verify
55
55
 
56
56
  mock.expect(:call, 3, [category.id])
57
- assert_equal 2, Thermos.drink(key: 'key', id: category.id)
57
+ assert_equal 2, Thermos.drink(key: "key", id: category.id)
58
58
  assert_raises(MockExpectationError) { mock.verify }
59
59
  end
60
60
 
61
- test 'does not rebuild the cache on rolled back primary model change' do
61
+ test "does not rebuild the cache on rolled back primary model change" do
62
62
  mock = Minitest::Mock.new
63
63
  category = categories(:baseball)
64
64
 
65
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
65
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
66
66
 
67
67
  mock.expect(:call, 1, [category.id])
68
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
68
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
69
69
  mock.verify
70
70
 
71
71
  mock.expect(:call, 2, [category.id])
72
72
  ActiveRecord::Base.transaction do
73
- category.update!(name: 'foo')
73
+ category.update!(name: "foo")
74
74
  raise ActiveRecord::Rollback
75
75
  end
76
76
  assert_raises(MockExpectationError) { mock.verify }
77
77
 
78
78
  mock.expect(:call, 3, [category.id])
79
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
79
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
80
80
  assert_raises(MockExpectationError) { mock.verify }
81
81
  end
82
82
 
83
- test 'does not rebuild the cache for an unrelated primary model change' do
83
+ test "does not rebuild the cache for an unrelated primary model change" do
84
84
  mock = Minitest::Mock.new
85
85
  category = categories(:baseball)
86
- other_category = Category.create!(name: 'bar')
86
+ other_category = Category.create!(name: "bar")
87
87
 
88
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
88
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
89
89
 
90
90
  mock.expect(:call, 2, [other_category.id])
91
- assert_equal 2, Thermos.drink(key: 'key', id: other_category.id)
91
+ assert_equal 2, Thermos.drink(key: "key", id: other_category.id)
92
92
  mock.verify
93
93
 
94
94
  mock.expect(:call, 1, [category.id])
95
- category.update!(name: 'foo')
95
+ category.update!(name: "foo")
96
96
  mock.verify
97
97
 
98
98
  mock.expect(:call, 3, [other_category.id])
99
- assert_equal 2, Thermos.drink(key: 'key', id: other_category.id)
99
+ assert_equal 2, Thermos.drink(key: "key", id: other_category.id)
100
100
  assert_raises(MockExpectationError) { mock.verify }
101
101
  end
102
102
 
103
- test 'does not rebuild the cache on primary model destroy' do
103
+ test "does not rebuild the cache on primary model destroy" do
104
104
  mock = Minitest::Mock.new
105
105
  category = categories(:baseball)
106
106
 
107
- Thermos.fill(key: 'key', model: Category) { |id| mock.call(id) }
107
+ Thermos.fill(key: "key", model: Category) { |id| mock.call(id) }
108
108
 
109
109
  mock.expect(:call, 1, [category.id])
110
- assert_equal 1, Thermos.drink(key: 'key', id: category.id)
110
+ assert_equal 1, Thermos.drink(key: "key", id: category.id)
111
111
  mock.verify
112
112
 
113
113
  mock.expect(:call, 2, [category.id])
@@ -115,19 +115,19 @@ class ThermosTest < ActiveSupport::TestCase
115
115
  assert_raises(MockExpectationError) { mock.verify }
116
116
  end
117
117
 
118
- test 'pre-builds cache for new primary model records' do
118
+ test "pre-builds cache for new primary model records" do
119
119
  mock = Minitest::Mock.new
120
120
 
121
- Thermos.fill(key: 'key', model: Category, lookup_key: 'name') do |name|
121
+ Thermos.fill(key: "key", model: Category, lookup_key: "name") do |name|
122
122
  mock.call(name)
123
123
  end
124
124
 
125
- mock.expect(:call, 1, ['foo'])
126
- Category.create!(name: 'foo')
125
+ mock.expect(:call, 1, ["foo"])
126
+ Category.create!(name: "foo")
127
127
  mock.verify
128
128
 
129
- mock.expect(:call, 2, ['foo'])
130
- assert_equal 1, Thermos.drink(key: 'key', id: 'foo')
129
+ mock.expect(:call, 2, ["foo"])
130
+ assert_equal 1, Thermos.drink(key: "key", id: "foo")
131
131
  assert_raises(MockExpectationError) { mock.verify }
132
132
  end
133
133
 
@@ -135,20 +135,20 @@ class ThermosTest < ActiveSupport::TestCase
135
135
  mock = Minitest::Mock.new
136
136
  category = categories(:baseball)
137
137
 
138
- Thermos.fill(key: 'key', model: Category, lookup_key: :name) do |id|
138
+ Thermos.fill(key: "key", model: Category, lookup_key: :name) do |id|
139
139
  mock.call(id)
140
140
  end
141
141
 
142
142
  mock.expect(:call, 1, [category.name])
143
- assert_equal 1, Thermos.drink(key: 'key', id: category.name)
143
+ assert_equal 1, Thermos.drink(key: "key", id: category.name)
144
144
  mock.verify
145
145
 
146
- mock.expect(:call, 2, ['foo'])
147
- category.update!(name: 'foo')
146
+ mock.expect(:call, 2, ["foo"])
147
+ category.update!(name: "foo")
148
148
  mock.verify
149
149
 
150
150
  mock.expect(:call, 3, [category.name])
151
- assert_equal 2, Thermos.drink(key: 'key', id: category.name)
151
+ assert_equal 2, Thermos.drink(key: "key", id: category.name)
152
152
  assert_raises(MockExpectationError) { mock.verify }
153
153
  end
154
154
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thermos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Thal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-04 00:00:00.000000000 Z
11
+ date: 2023-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4
19
+ version: 6.0.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 6.2.0
22
+ version: 7.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.2.4
29
+ version: 6.0.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 6.2.0
32
+ version: 7.1.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rake
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: psych
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: 4.0.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: 4.0.0
75
89
  description: |
76
90
  Thermos is a library for caching in rails that re-warms caches
77
91
  in the background based on model changes.
@@ -156,71 +170,71 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
158
172
  - !ruby/object:Gem::Version
159
- version: 2.5.0
173
+ version: 2.7.0
160
174
  - - "<"
161
175
  - !ruby/object:Gem::Version
162
- version: 2.8.0
176
+ version: 3.2.0
163
177
  required_rubygems_version: !ruby/object:Gem::Requirement
164
178
  requirements:
165
179
  - - ">="
166
180
  - !ruby/object:Gem::Version
167
181
  version: '0'
168
182
  requirements: []
169
- rubygems_version: 3.0.3.1
183
+ rubygems_version: 3.1.6
170
184
  signing_key:
171
185
  specification_version: 4
172
186
  summary: Always-warm, auto-rebuilding rails caching without timers or touching.
173
187
  test_files:
174
- - test/filter_test.rb
175
- - test/thermos_test.rb
188
+ - test/test_helper.rb
176
189
  - test/dependencies_test.rb
177
- - test/dummy/config.ru
178
- - test/dummy/public/favicon.ico
179
- - test/dummy/public/500.html
180
- - test/dummy/public/404.html
181
- - test/dummy/public/422.html
182
- - test/dummy/config/application.rb
190
+ - test/thermos_test.rb
191
+ - test/queue_test.rb
192
+ - test/fixtures/stores.yml
193
+ - test/fixtures/categories.yml
194
+ - test/fixtures/products.yml
195
+ - test/fixtures/category_items.yml
196
+ - test/dummy/db/schema.rb
197
+ - test/dummy/db/migrate/20160325214744_create_categories.rb
198
+ - test/dummy/db/migrate/20160326174530_create_stores.rb
199
+ - test/dummy/db/migrate/20160325214849_create_products.rb
200
+ - test/dummy/db/migrate/20160325220006_create_category_items.rb
183
201
  - test/dummy/config/database.yml
184
- - test/dummy/config/secrets.yml
185
- - test/dummy/config/environment.rb
186
- - test/dummy/config/routes.rb
187
- - test/dummy/config/locales/en.yml
188
- - test/dummy/config/environments/development.rb
189
- - test/dummy/config/environments/test.rb
190
- - test/dummy/config/environments/production.rb
191
- - test/dummy/config/boot.rb
192
- - test/dummy/config/initializers/assets.rb
193
202
  - test/dummy/config/initializers/backtrace_silencers.rb
203
+ - test/dummy/config/initializers/assets.rb
204
+ - test/dummy/config/initializers/wrap_parameters.rb
205
+ - test/dummy/config/initializers/mime_types.rb
194
206
  - test/dummy/config/initializers/inflections.rb
195
207
  - test/dummy/config/initializers/session_store.rb
196
- - test/dummy/config/initializers/cookies_serializer.rb
197
208
  - test/dummy/config/initializers/filter_parameter_logging.rb
198
- - test/dummy/config/initializers/mime_types.rb
199
- - test/dummy/config/initializers/wrap_parameters.rb
200
- - test/dummy/db/schema.rb
201
- - test/dummy/db/migrate/20160325214849_create_products.rb
202
- - test/dummy/db/migrate/20160325220006_create_category_items.rb
203
- - test/dummy/db/migrate/20160326174530_create_stores.rb
204
- - test/dummy/db/migrate/20160325214744_create_categories.rb
205
- - test/dummy/app/assets/javascripts/application.js
206
- - test/dummy/app/assets/stylesheets/application.css
207
- - test/dummy/app/assets/config/manifest.js
208
- - test/dummy/app/views/layouts/application.html.erb
209
+ - test/dummy/config/initializers/cookies_serializer.rb
210
+ - test/dummy/config/environment.rb
211
+ - test/dummy/config/locales/en.yml
212
+ - test/dummy/config/boot.rb
213
+ - test/dummy/config/environments/test.rb
214
+ - test/dummy/config/environments/production.rb
215
+ - test/dummy/config/environments/development.rb
216
+ - test/dummy/config/application.rb
217
+ - test/dummy/config/secrets.yml
218
+ - test/dummy/config/routes.rb
219
+ - test/dummy/README.rdoc
220
+ - test/dummy/config.ru
221
+ - test/dummy/app/helpers/application_helper.rb
222
+ - test/dummy/app/controllers/application_controller.rb
223
+ - test/dummy/app/models/product.rb
209
224
  - test/dummy/app/models/category_item.rb
210
225
  - test/dummy/app/models/store.rb
211
226
  - test/dummy/app/models/category.rb
212
- - test/dummy/app/models/product.rb
213
- - test/dummy/app/controllers/application_controller.rb
214
- - test/dummy/app/helpers/application_helper.rb
227
+ - test/dummy/app/views/layouts/application.html.erb
228
+ - test/dummy/app/assets/stylesheets/application.css
229
+ - test/dummy/app/assets/javascripts/application.js
230
+ - test/dummy/app/assets/config/manifest.js
215
231
  - test/dummy/Rakefile
216
- - test/dummy/bin/setup
217
- - test/dummy/bin/bundle
232
+ - test/dummy/public/500.html
233
+ - test/dummy/public/404.html
234
+ - test/dummy/public/favicon.ico
235
+ - test/dummy/public/422.html
218
236
  - test/dummy/bin/rails
219
237
  - test/dummy/bin/rake
220
- - test/dummy/README.rdoc
221
- - test/test_helper.rb
222
- - test/fixtures/categories.yml
223
- - test/fixtures/products.yml
224
- - test/fixtures/category_items.yml
225
- - test/fixtures/stores.yml
226
- - test/queue_test.rb
238
+ - test/dummy/bin/setup
239
+ - test/dummy/bin/bundle
240
+ - test/filter_test.rb