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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 498a95a56043103e5ab1315fefef95a6f55a27136fe5013df544e3fe83ed77dc
4
- data.tar.gz: 92dfac92a9036c96ea622228795e268b906f156b526b1a1cb46313fa2f4af0c8
3
+ metadata.gz: d61ebfe7c8e0e2f9446a021e541ab35d08f28edd280ccd157871681782c29f00
4
+ data.tar.gz: f33daed6bda622626465054cb2367772fa1da1d0c5c7b0e6c97d1e358dff68ca
5
5
  SHA512:
6
- metadata.gz: b26c78cfe69bb588cf37bafeeacc53314e40106eb38416d6b52dd652e2a954c3767fb5c4f5852ea3d132558f69a6d512cfbc48f6c11f766e3a099a5bb7c95697
7
- data.tar.gz: c063851aac6c3554dd36a05db53e846d835019bf973c0b060b6cf673697350eeeba6d3ddb0585eaeed92fd165bf1767cf0f9fb0e514ef49c16de604f04783f03
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 "base64"
4
- require "json"
3
+ require 'base64'
4
+ require 'json'
5
5
 
6
- require "yake"
7
- require_relative "errors"
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["routeKey"]
16
+ method = event['routeKey']
17
17
  raise Yake::Errors::UndeclaredRoute, method unless respond_to?(method)
18
18
 
19
19
  # Normalize headers
20
- event["headers"]&.transform_keys!(&:downcase)
20
+ event['headers']&.transform_keys!(&:downcase)
21
21
 
22
22
  # Decode body if Base64-encoded
23
- if event["isBase64Encoded"]
24
- body = Base64.strict_decode64(event["body"])
25
- event.update("body" => body, "isBase64Encoded" => false)
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).then { |res| block_given? ? yield(res) : res }
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&.length || 0).to_s
41
+ content_length = (body&.bytesize || 0).to_s
41
42
  to_s_downcase = -> (key) { key.to_s.downcase }
42
43
  headers = {
43
- "content-length" => content_length,
44
+ 'content-length' => content_length,
44
45
  **(@headers || {}),
45
46
  **headers,
46
47
  }.transform_keys(&to_s_downcase).compact
@@ -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
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
3
+ require 'json'
4
4
 
5
- require_relative "logger"
5
+ require_relative 'logger'
6
6
 
7
7
  module Yake
8
8
  module DSL
data/lib/yake/errors.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Yake
2
4
  module Errors
3
5
  class Error < StandardError; end
data/lib/yake/logger.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
4
- require "logger"
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? ? "-" : "RequestId: #{ progname }", msg2str(msg).strip ]
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yake
4
- VERSION = "0.3.0"
4
+ VERSION = '0.4.0'
5
5
  end
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.3.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-06-28 00:00:00.000000000 Z
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.1.6
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: []