store_request_id 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f80dbf0c478751acf453336292f7386c18da2834
4
- data.tar.gz: '088b0d5427e897848c1c3a2186059fd4f6af6135'
3
+ metadata.gz: 9e935d4e5000af1c0a53aa51de4ec67a34594635
4
+ data.tar.gz: 1c9b8d8531dcfc2cb11cec9233c7eb917448a4e5
5
5
  SHA512:
6
- metadata.gz: 709a4e192b30035d64d51682410962eea2e38a4d5fc182f8cad91684b54f2c92722746b44fa6c5ee1d928599001b4e39c1c735886e0f99c8456dc9f5251e1516
7
- data.tar.gz: 63fca3c31a7aed76ce5ca68397f38b8c735f6e7921c397a5a05f85b7c0a481d4a11fdc0c982f810cd47909d4461b9ed57c5f2d60b63f88755988c41f493c41a9
6
+ metadata.gz: 63e142fc05d8cf92704624d0b9b5e7ef6f71a10ea23b55145725226f9ff2956f6acc09aff6197ebce771071d02f4268cfa52543492c5b1092681de5eb5ff6f0f
7
+ data.tar.gz: 36ff475ed9442b92f040414bcc2e96fdc1c53983cbf65e20fe8e9237a6735fdb31c43e3089368e152cf92cb8aece4bc6beb51360f519330536c0b94c35d63a26
data/.travis.yml CHANGED
@@ -2,11 +2,10 @@ sudo: false
2
2
  language: ruby
3
3
 
4
4
  rvm:
5
- - 2.0.0
6
- - 2.1.2
7
- - 2.2.3
8
- - 2.3.1
9
- - 2.4.1
5
+ - 2.3.8
6
+ - 2.4.5
7
+ - 2.5.3
8
+ - 2.6.1
10
9
 
11
10
  addons:
12
11
  code_climate:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Change Log
2
2
 
3
+ ## [0.3.0](https://github.com/SparkHub/gs-store-request-id/tree/v0.3.0) (2019-02-08)
4
+ [Full Changelog](https://github.com/SparkHub/gs-store-request-id/compare/v0.1.0...v0.2.0)
5
+
6
+ **Implementing Blue/Green feature**
7
+ - New Middleware to manage the Blue/Green feature:
8
+ + Injects new header `X-GS-BGEnv` if doesn't exist: values `blue` (default) or `green`
9
+ + Stores the value of the new header in `StoreRequestId.blue_green`
10
+ - Droping support for Ruby < 2.3 and adding support for ruby >= 2.5
11
+
3
12
  ## [0.2.0](https://github.com/SparkHub/gs-store-request-id/tree/v0.2.0) (2017-08-14)
4
13
  [Full Changelog](https://github.com/SparkHub/gs-store-request-id/compare/v0.1.0...v0.2.0)
5
14
 
data/README.md CHANGED
@@ -14,7 +14,7 @@ Middleware storing the unique [requestId](https://github.com/rails/rails/blob/ma
14
14
  Add this line to your application's Gemfile:
15
15
 
16
16
  ```ruby
17
- gem 'store_request_id', '~> 0.2.0'
17
+ gem 'store_request_id', '~> 0.3.0'
18
18
  ```
19
19
 
20
20
  And then execute:
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module StoreRequestId
4
+ # Blue/Green accessors
5
+ module BlueGreen
6
+ HEADER = 'X-GS-BGEnv'.freeze
7
+
8
+ def blue_green
9
+ storage[HEADER]
10
+ end
11
+
12
+ def blue_green=(value)
13
+ storage[HEADER] = value
14
+ end
15
+
16
+ private_constant :HEADER
17
+
18
+ private
19
+
20
+ def storage
21
+ configuration.storage
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module StoreRequestId
4
+ # Inject BG Header and store also on StoreRequestId accessor
5
+ class BlueGreenMiddleware
6
+ def call(env)
7
+ Process.new(env).call(@app)
8
+ end
9
+
10
+ def initialize(app)
11
+ @app = app
12
+ end
13
+
14
+ # Process Environment
15
+ class Process < SimpleDelegator
16
+ HEADER = 'X-GS-BGEnv'.freeze
17
+ VALUES = { 'blue' => 'blue',
18
+ 'green' => 'green' }.freeze
19
+
20
+ def call(app)
21
+ StoreRequestId.blue_green = bg
22
+ app.call(processed)
23
+ end
24
+
25
+ private_constant :VALUES, :HEADER
26
+
27
+ private
28
+
29
+ def bg
30
+ @bg ||= VALUES.fetch(self[HEADER], 'blue')
31
+ end
32
+
33
+ def processed
34
+ dup.merge(HEADER => bg)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -7,6 +7,8 @@ module StoreRequestId
7
7
  initializer 'store_request_id.configure_rails_initialization' do
8
8
  Rails.application.middleware.insert_after ActionDispatch::RequestId,
9
9
  StoreRequestId::Middleware
10
+ Rails.application.middleware.insert_after StoreRequestId::Middleware,
11
+ StoreRequestId::BlueGreenMiddleware
10
12
  end
11
13
  end
12
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StoreRequestId
4
- VERSION = '0.2.0'.freeze
4
+ VERSION = '0.3.0'.freeze
5
5
  end
@@ -4,10 +4,12 @@ require 'store_request_id/version'
4
4
  require 'store_request_id/setup'
5
5
  require 'store_request_id/store'
6
6
  require 'store_request_id/request_id'
7
+ require 'store_request_id/blue_green'
7
8
 
8
9
  module StoreRequestId
9
10
  extend Setup
10
11
  extend RequestId
12
+ extend BlueGreen
11
13
  end
12
14
 
13
15
  require 'store_request_id/rails' if defined?(Rails::Railtie)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: store_request_id
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guidespark
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-08-14 00:00:00.000000000 Z
12
+ date: 2019-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -104,6 +104,8 @@ files:
104
104
  - bin/console
105
105
  - bin/setup
106
106
  - lib/store_request_id.rb
107
+ - lib/store_request_id/blue_green.rb
108
+ - lib/store_request_id/blue_green_middleware.rb
107
109
  - lib/store_request_id/configuration.rb
108
110
  - lib/store_request_id/defaults/storage.rb
109
111
  - lib/store_request_id/middleware.rb
@@ -133,7 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
135
  version: '0'
134
136
  requirements: []
135
137
  rubyforge_project:
136
- rubygems_version: 2.6.11
138
+ rubygems_version: 2.6.14
137
139
  signing_key:
138
140
  specification_version: 4
139
141
  summary: Store the unique request id within a global state.