alephant-broker 3.15.2 → 3.16.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
  SHA1:
3
- metadata.gz: a1d2a83b80e06b6997939b7ac7a05017d46ce02f
4
- data.tar.gz: 5db2fd8af88502c3ee560b7c925ce80e2c8cc4bf
3
+ metadata.gz: 439cfba9dae34a1931b2bb86e829c3f6da30f268
4
+ data.tar.gz: a025262a57c2ad7d236456002f629aa0d64e0533
5
5
  SHA512:
6
- metadata.gz: 61f971597070da6cf55911398e7124945d873b8420db7fea05f443dd666763e271abe4db86bac68601ee1ae73b50857f8c76b57af666108b5b43893a6d854c8c
7
- data.tar.gz: 233504dc59be0a68487fc1e6670d3919194c266f5531773c3dd4c1e7d8cffd2be092b2aa72479037f1cfb1a35f86009b63846ecf5576d9424a1d45d0cd726798
6
+ metadata.gz: 5d0de2d1a911fda4e049e8f4a160ae3be58707b5edc9d9aecda62ccd4bd020287528b0065b2990e899cf6ee88467f88688f4a03567b577a40af3cc3b77fc615c
7
+ data.tar.gz: 9a0b598a6a517e7f2f4dc9146c7b197de5daa8d8c55238c54ffdaf650adf293152592bfe963d83a74d4857d1ff8591ef91339979d04e5d782884cdb304ca0030
@@ -21,6 +21,8 @@ module Alephant
21
21
 
22
22
  data = loaded_content.to_h
23
23
  data.fetch(:meta, {})[:status] = 200
24
+ add_revalidating_headers(data) if loaded_content.expired?
25
+
24
26
  data
25
27
  rescue *STORAGE_ERRORS
26
28
  update_content(component_meta)
@@ -59,6 +61,11 @@ module Alephant
59
61
  end
60
62
  end
61
63
 
64
+ def add_revalidating_headers(data)
65
+ data[:headers] ||= {}
66
+ data[:headers]['broker-cache'] = 'revalidating'
67
+ end
68
+
62
69
  def fetch_stored_content(component_meta)
63
70
  Fetcher.new(component_meta).fetch
64
71
  rescue *STORAGE_ERRORS
@@ -1,5 +1,5 @@
1
1
  module Alephant
2
2
  module Broker
3
- VERSION = "3.15.2".freeze
3
+ VERSION = "3.16.0".freeze
4
4
  end
5
5
  end
@@ -28,6 +28,14 @@ RSpec.describe Alephant::Broker::LoadStrategy::Revalidate::Strategy do
28
28
  }
29
29
  end
30
30
 
31
+ let(:expected_revalidating_content) do
32
+ revalidating_content = expected_content.clone
33
+ revalidating_content[:headers] = {
34
+ 'broker-cache' => 'revalidating'
35
+ }
36
+ revalidating_content
37
+ end
38
+
31
39
  let(:cached_obj) do
32
40
  Alephant::Broker::Cache::CachedObject.new(content)
33
41
  end
@@ -66,6 +74,13 @@ RSpec.describe Alephant::Broker::LoadStrategy::Revalidate::Strategy do
66
74
 
67
75
  subject.load(component_meta)
68
76
  end
77
+
78
+ it 'does NOT send the revalidating repsonse header' do
79
+ response = subject.load(component_meta)
80
+ response_headers = response[:headers] || {}
81
+
82
+ expect(response_headers['broker-cache']).to_not eq('revalidating')
83
+ end
69
84
  end
70
85
 
71
86
  context 'which has expired' do
@@ -88,7 +103,11 @@ RSpec.describe Alephant::Broker::LoadStrategy::Revalidate::Strategy do
88
103
  end
89
104
 
90
105
  it 'it gets fetched from the cache and returned to the user' do
91
- expect(subject.load(component_meta)).to eq(expected_content)
106
+ expect(subject.load(component_meta)).to eq(expected_revalidating_content)
107
+ end
108
+
109
+ it 'should contain a revalidating reponse header' do
110
+ expect(subject.load(component_meta)[:headers]['broker-cache']).to eq('revalidating')
92
111
  end
93
112
 
94
113
  context 'in the background...' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-broker
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.15.2
4
+ version: 3.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BBC News
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-11 00:00:00.000000000 Z
11
+ date: 2016-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec