store_request_id 0.2.0 → 0.3.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: 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.