yake 0.3.0 → 0.4.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/lib/yake/api.rb +13 -12
- data/lib/yake/datadog.rb +24 -0
- data/lib/yake/dsl.rb +2 -2
- data/lib/yake/errors.rb +2 -0
- data/lib/yake/logger.rb +3 -3
- data/lib/yake/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d61ebfe7c8e0e2f9446a021e541ab35d08f28edd280ccd157871681782c29f00
|
|
4
|
+
data.tar.gz: f33daed6bda622626465054cb2367772fa1da1d0c5c7b0e6c97d1e358dff68ca
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8c588738b06ebb6e4e0a338c7537116cdfaf8c925ca0b6b82c66acc579f66723d26bd31d11fe850bb22eb401dd9b71f23544e8de3b6e1ae9cafe02e8ac4a074b
|
|
7
|
+
data.tar.gz: 66e6267f694f5ee26a02b270d1c1cbe376bb2cb39cd11dcee80cd7bfafe03e2ae0d568fe9de6c2525213a07fae1ed122296b48ffbf9a4c8fe90cce12d867ca87
|
data/lib/yake/api.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require 'base64'
|
|
4
|
+
require 'json'
|
|
5
5
|
|
|
6
|
-
require
|
|
7
|
-
require_relative
|
|
6
|
+
require 'yake'
|
|
7
|
+
require_relative 'errors'
|
|
8
8
|
|
|
9
9
|
module Yake
|
|
10
10
|
module API
|
|
@@ -13,20 +13,21 @@ module Yake
|
|
|
13
13
|
# Proxy handler for HTTP requests from Slack
|
|
14
14
|
def route(event, context = nil, &block)
|
|
15
15
|
# Extract route method
|
|
16
|
-
method = event[
|
|
16
|
+
method = event['routeKey']
|
|
17
17
|
raise Yake::Errors::UndeclaredRoute, method unless respond_to?(method)
|
|
18
18
|
|
|
19
19
|
# Normalize headers
|
|
20
|
-
event[
|
|
20
|
+
event['headers']&.transform_keys!(&:downcase)
|
|
21
21
|
|
|
22
22
|
# Decode body if Base64-encoded
|
|
23
|
-
if event[
|
|
24
|
-
body = Base64.strict_decode64(event[
|
|
25
|
-
event.update(
|
|
23
|
+
if event['isBase64Encoded']
|
|
24
|
+
body = Base64.strict_decode64(event['body'])
|
|
25
|
+
event.update('body' => body, 'isBase64Encoded' => false)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# Execute request
|
|
29
|
-
send(method, event, context)
|
|
29
|
+
res = send(method, event, context)
|
|
30
|
+
block_given? ? yield(res) : res
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
##
|
|
@@ -37,10 +38,10 @@ module Yake
|
|
|
37
38
|
Yake.logger&.send(status_code.to_i >= 400 ? :error : :info, log)
|
|
38
39
|
|
|
39
40
|
# Set headers
|
|
40
|
-
content_length = (body&.
|
|
41
|
+
content_length = (body&.bytesize || 0).to_s
|
|
41
42
|
to_s_downcase = -> (key) { key.to_s.downcase }
|
|
42
43
|
headers = {
|
|
43
|
-
|
|
44
|
+
'content-length' => content_length,
|
|
44
45
|
**(@headers || {}),
|
|
45
46
|
**headers,
|
|
46
47
|
}.transform_keys(&to_s_downcase).compact
|
data/lib/yake/datadog.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'datadog/lambda'
|
|
4
|
+
require 'yake'
|
|
5
|
+
|
|
6
|
+
module Yake
|
|
7
|
+
module Datadog
|
|
8
|
+
module DSL
|
|
9
|
+
include Yake::DSL
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# Datadog handler wrapper
|
|
13
|
+
def datadog(name, &block)
|
|
14
|
+
define_method(name) do |event:nil, context:nil|
|
|
15
|
+
::Datadog::Lambda.wrap(event, context) do
|
|
16
|
+
Yake.wrap(event, context, &block)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
extend Yake::Datadog::DSL
|
data/lib/yake/dsl.rb
CHANGED
data/lib/yake/errors.rb
CHANGED
data/lib/yake/logger.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'logger'
|
|
5
5
|
|
|
6
6
|
module Yake
|
|
7
7
|
module Logger
|
|
@@ -21,7 +21,7 @@ module Yake
|
|
|
21
21
|
Format = "%s %s %s\n"
|
|
22
22
|
|
|
23
23
|
def call(severity, time, progname, msg)
|
|
24
|
-
Format % [ severity, progname.nil? ?
|
|
24
|
+
Format % [ severity, progname.nil? ? '-' : "RequestId: #{ progname }", msg2str(msg).strip ]
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
end
|
data/lib/yake/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Mancevice
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-10-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description:
|
|
13
|
+
description:
|
|
14
14
|
email:
|
|
15
15
|
- alexander.mancevice@hey.com
|
|
16
16
|
executables: []
|
|
@@ -22,6 +22,7 @@ files:
|
|
|
22
22
|
- README.md
|
|
23
23
|
- lib/yake.rb
|
|
24
24
|
- lib/yake/api.rb
|
|
25
|
+
- lib/yake/datadog.rb
|
|
25
26
|
- lib/yake/dsl.rb
|
|
26
27
|
- lib/yake/errors.rb
|
|
27
28
|
- lib/yake/logger.rb
|
|
@@ -30,7 +31,7 @@ homepage: https://github.com/amancevice/yake
|
|
|
30
31
|
licenses:
|
|
31
32
|
- MIT
|
|
32
33
|
metadata: {}
|
|
33
|
-
post_install_message:
|
|
34
|
+
post_install_message:
|
|
34
35
|
rdoc_options: []
|
|
35
36
|
require_paths:
|
|
36
37
|
- lib
|
|
@@ -45,8 +46,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
45
46
|
- !ruby/object:Gem::Version
|
|
46
47
|
version: '0'
|
|
47
48
|
requirements: []
|
|
48
|
-
rubygems_version: 3.
|
|
49
|
-
signing_key:
|
|
49
|
+
rubygems_version: 3.2.22
|
|
50
|
+
signing_key:
|
|
50
51
|
specification_version: 4
|
|
51
52
|
summary: Rake-like DSL for declaring AWS Lambda function handlers
|
|
52
53
|
test_files: []
|