meta_request 0.4.3 → 0.5.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 +4 -4
- data/README.md +6 -0
- data/lib/meta_request/app_notifications.rb +0 -1
- data/lib/meta_request/event.rb +4 -0
- data/lib/meta_request/middlewares.rb +0 -1
- data/lib/meta_request/railtie.rb +0 -1
- data/lib/meta_request/version.rb +1 -1
- metadata +5 -6
- data/lib/meta_request/middlewares/request_id.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa726d98ee329e0d8f5c191fb58015b1869f407a
|
4
|
+
data.tar.gz: 6683df50b00f40428ea3161420f1874ab610ffca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c17a83779def3d7466d57b2076faa5f88ece7493998c7a2f7b7e3602634f6c238c2ddef5abb97424ef23f6e19e57de65496a689dd81463d1d369dcf8793c58c
|
7
|
+
data.tar.gz: 0fbf94aa9cb729400ee9900d01913a45a76373c5c8fb2fb7853c50309703a8cbd82f0e323b0c4da0b4685dc1eadab0f358046b16577df71d0d2afbae1b63c9d2
|
data/README.md
CHANGED
@@ -23,6 +23,12 @@ If you're using [LiveReload](http://livereload.com/) or
|
|
23
23
|
exclude watching your tmp/ folder because meta_request writes a lot of data there
|
24
24
|
and your browser will refresh like a madman.
|
25
25
|
|
26
|
+
## Development
|
27
|
+
|
28
|
+
Run tests:
|
29
|
+
|
30
|
+
make
|
31
|
+
|
26
32
|
## Licence
|
27
33
|
|
28
34
|
Copyright (c) 2012 Dejan Simic
|
@@ -51,7 +51,6 @@ module MetaRequest
|
|
51
51
|
subscribe("process_action.action_controller.exception").
|
52
52
|
subscribe("process_action.action_controller") do |*args|
|
53
53
|
name, start, ending, transaction_id, payload = args
|
54
|
-
payload[:format] ||= (payload[:formats]||[]).first # Rails 3.0.x Support
|
55
54
|
payload[:status] = '500' if payload[:exception]
|
56
55
|
Event.new(name, start, ending, transaction_id, payload)
|
57
56
|
end.
|
data/lib/meta_request/event.rb
CHANGED
@@ -34,6 +34,10 @@ module MetaRequest
|
|
34
34
|
def json_encodable(payload)
|
35
35
|
return {} unless payload.is_a?(Hash)
|
36
36
|
transform_hash(payload, :deep => true) { |hash, key, value|
|
37
|
+
if value.class.to_s == 'ActionDispatch::Http::Headers'
|
38
|
+
value = value.to_h.select { |k, _| k.upcase == k }
|
39
|
+
end
|
40
|
+
|
37
41
|
begin
|
38
42
|
value.to_json(:methods => [:duration])
|
39
43
|
new_value = value
|
@@ -3,6 +3,5 @@ module MetaRequest
|
|
3
3
|
autoload :Headers, "meta_request/middlewares/headers"
|
4
4
|
autoload :AppRequestHandler, "meta_request/middlewares/app_request_handler"
|
5
5
|
autoload :MetaRequestHandler, "meta_request/middlewares/meta_request_handler"
|
6
|
-
autoload :RequestId, "meta_request/middlewares/request_id"
|
7
6
|
end
|
8
7
|
end
|
data/lib/meta_request/railtie.rb
CHANGED
@@ -4,7 +4,6 @@ module MetaRequest
|
|
4
4
|
class Railtie < ::Rails::Railtie
|
5
5
|
|
6
6
|
initializer 'meta_request.inject_middlewares' do |app|
|
7
|
-
app.middleware.use Middlewares::RequestId unless defined?(ActionDispatch::RequestId)
|
8
7
|
app.middleware.use Middlewares::MetaRequestHandler
|
9
8
|
|
10
9
|
if defined? ActionDispatch::DebugExceptions
|
data/lib/meta_request/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta_request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dejan Simic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 3.0.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: '6'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 3.0.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: '6'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rack-contrib
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,7 +86,6 @@ files:
|
|
86
86
|
- lib/meta_request/middlewares/app_request_handler.rb
|
87
87
|
- lib/meta_request/middlewares/headers.rb
|
88
88
|
- lib/meta_request/middlewares/meta_request_handler.rb
|
89
|
-
- lib/meta_request/middlewares/request_id.rb
|
90
89
|
- lib/meta_request/railtie.rb
|
91
90
|
- lib/meta_request/storage.rb
|
92
91
|
- lib/meta_request/version.rb
|
@@ -110,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
109
|
version: '0'
|
111
110
|
requirements: []
|
112
111
|
rubyforge_project:
|
113
|
-
rubygems_version: 2.
|
112
|
+
rubygems_version: 2.6.11
|
114
113
|
signing_key:
|
115
114
|
specification_version: 4
|
116
115
|
summary: Request your Rails request
|
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'securerandom'
|
2
|
-
require 'active_support/core_ext/string/access'
|
3
|
-
require 'active_support/core_ext/object/blank'
|
4
|
-
|
5
|
-
# Backported from Rails 3.2 (ActionDispatch::RequestId)
|
6
|
-
module MetaRequest
|
7
|
-
module Middlewares
|
8
|
-
# Makes a unique request id available to the action_dispatch.request_id env variable (which is then accessible through
|
9
|
-
# ActionDispatch::Request#uuid) and sends the same id to the client via the X-Request-Id header.
|
10
|
-
#
|
11
|
-
# The unique request id is either based off the X-Request-Id header in the request, which would typically be generated
|
12
|
-
# by a firewall, load balancer, or the web server, or, if this header is not available, a random uuid. If the
|
13
|
-
# header is accepted from the outside world, we sanitize it to a max of 255 chars and alphanumeric and dashes only.
|
14
|
-
#
|
15
|
-
# The unique request id can be used to trace a request end-to-end and would typically end up being part of log files
|
16
|
-
# from multiple pieces of the stack.
|
17
|
-
class RequestId
|
18
|
-
def initialize(app)
|
19
|
-
@app = app
|
20
|
-
end
|
21
|
-
|
22
|
-
def call(env)
|
23
|
-
env["action_dispatch.request_id"] = external_request_id(env) || internal_request_id
|
24
|
-
status, headers, body = @app.call(env)
|
25
|
-
|
26
|
-
headers["X-Request-Id"] = env["action_dispatch.request_id"]
|
27
|
-
[ status, headers, body ]
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
def external_request_id(env)
|
32
|
-
if request_id = env["HTTP_X_REQUEST_ID"].presence
|
33
|
-
request_id.gsub(/[^\w\-]/, "").first(255)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def internal_request_id
|
38
|
-
SecureRandom.hex(16)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|