yake 0.1.3 → 0.2.2
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 +16 -1
- data/lib/yake/api.rb +8 -2
- data/lib/yake/dsl.rb +4 -5
- data/lib/yake/logger.rb +28 -19
- data/lib/yake/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7db6ede2c0a492849a3dc42c4f88e85ffa7c4d9569467ea3582a2b780e6f8552
|
|
4
|
+
data.tar.gz: a64d30572e18b07a3c1b50c0e76f96ca455620c1c5d7b7987a8f32d17f20a88c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f74694e031b0b4436175454506c9f2ade6bcaa4d6480acfe5c7be7cb9f5fabb794dff0ec335b599196d90bdeabbe892f35204fcfe01094f4278b33307a499c80
|
|
7
|
+
data.tar.gz: 5608ca5d6de1e729753e6a67ab23fc155f607ef81ba57b0b860e1eda3b3152e082484432e3e4849bef266933c6af8c1ccd4dbbf20771a7272a637cf68335f3a0
|
data/README.md
CHANGED
|
@@ -88,6 +88,17 @@ This feature can be disabled by adding a declaration in your handler file:
|
|
|
88
88
|
logging :off
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
Include `Yake::Logger` on a class to access this logger:
|
|
92
|
+
|
|
93
|
+
```ruby
|
|
94
|
+
class Fizz
|
|
95
|
+
include Yake::Logger
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
Fizz.new.logger == Yake.logger
|
|
99
|
+
# => true
|
|
100
|
+
```
|
|
101
|
+
|
|
91
102
|
#### API Routes
|
|
92
103
|
|
|
93
104
|
A common use of Lambda functions is as a proxy for API Gateway. Oftentimes users will deploy a single Lambda function to handle all requests coming from API Gateway.
|
|
@@ -97,6 +108,10 @@ Requiring the `yake/api` module will add the API-specific DSL into your handler.
|
|
|
97
108
|
Define API routes using Sinatra-like syntax
|
|
98
109
|
|
|
99
110
|
```ruby
|
|
111
|
+
any "/…" do |event|
|
|
112
|
+
# Handle 'ANY /…' route key events
|
|
113
|
+
end
|
|
114
|
+
|
|
100
115
|
delete "/…" do |event|
|
|
101
116
|
# Handle 'DELETE /…' route key events
|
|
102
117
|
end
|
|
@@ -142,7 +157,7 @@ respond 200, { ok: true }.to_json, "x-extra-header" => "buzz"
|
|
|
142
157
|
# {
|
|
143
158
|
# "statusCode" => 200,
|
|
144
159
|
# "body" => '{"ok":true}',
|
|
145
|
-
# "headers" => { "x-extra-header" => "
|
|
160
|
+
# "headers" => { "x-extra-header" => "buzz" }
|
|
146
161
|
# }
|
|
147
162
|
```
|
|
148
163
|
|
data/lib/yake/api.rb
CHANGED
|
@@ -11,7 +11,7 @@ module Yake
|
|
|
11
11
|
module DSL
|
|
12
12
|
##
|
|
13
13
|
# Proxy handler for HTTP requests from Slack
|
|
14
|
-
def route(event, context = nil)
|
|
14
|
+
def route(event, context = nil, &block)
|
|
15
15
|
# Extract route method
|
|
16
16
|
method = event["routeKey"]
|
|
17
17
|
raise Yake::Errors::UndeclaredRoute, method unless respond_to?(method)
|
|
@@ -26,7 +26,7 @@ module Yake
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# Execute request
|
|
29
|
-
send(method, event, context)
|
|
29
|
+
send(method, event, context).then { |res| block_given? ? yield(res) : res }
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
##
|
|
@@ -55,6 +55,12 @@ module Yake
|
|
|
55
55
|
(@headers ||= {}).update(headers)
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
+
##
|
|
59
|
+
# Define ANY route
|
|
60
|
+
def any(path, &block)
|
|
61
|
+
define_singleton_method("ANY #{ path }") { |*args| instance_exec(*args, &block) }
|
|
62
|
+
end
|
|
63
|
+
|
|
58
64
|
##
|
|
59
65
|
# Define DELETE route
|
|
60
66
|
def delete(path, &block)
|
data/lib/yake/dsl.rb
CHANGED
|
@@ -10,17 +10,17 @@ module Yake
|
|
|
10
10
|
# Lambda handler task wrapper
|
|
11
11
|
def handler(name, &block)
|
|
12
12
|
define_method(name) do |event:nil, context:nil|
|
|
13
|
-
Yake.
|
|
13
|
+
Yake.wrap(event, context, &block)
|
|
14
14
|
end
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
##
|
|
18
18
|
# Turn logging on/off
|
|
19
|
-
def logging(switch,
|
|
19
|
+
def logging(switch, logger = nil)
|
|
20
20
|
if switch == :on
|
|
21
|
-
Yake.logger =
|
|
21
|
+
Yake.logger = logger
|
|
22
22
|
elsif switch == :off
|
|
23
|
-
Yake.logger =
|
|
23
|
+
Yake.logger = ::Logger.new(nil)
|
|
24
24
|
else
|
|
25
25
|
raise Errors::UnknownLoggingSetting, switch
|
|
26
26
|
end
|
|
@@ -29,4 +29,3 @@ module Yake
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
extend Yake::DSL
|
|
32
|
-
Yake.logger = Yake::Logger.new
|
data/lib/yake/logger.rb
CHANGED
|
@@ -4,33 +4,42 @@ require "json"
|
|
|
4
4
|
require "logger"
|
|
5
5
|
|
|
6
6
|
module Yake
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@
|
|
7
|
+
module Logger
|
|
8
|
+
attr_accessor :logger
|
|
9
|
+
|
|
10
|
+
def logger
|
|
11
|
+
@logger ||= Yake.logger
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
ensure
|
|
19
|
-
@progname = "-"
|
|
14
|
+
class << self
|
|
15
|
+
def new(logdev = $stdout, **params)
|
|
16
|
+
::Logger.new(logdev, formatter: Formatter.new, **params)
|
|
17
|
+
end
|
|
20
18
|
end
|
|
21
|
-
end
|
|
22
19
|
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
class Formatter < ::Logger::Formatter
|
|
21
|
+
Format = "%s %s %s\n"
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
def call(severity, time, progname, msg)
|
|
24
|
+
Format % [ severity, progname.nil? ? "-" : "RequestId: #{ progname }", msg2str(msg).strip ]
|
|
25
|
+
end
|
|
28
26
|
end
|
|
29
27
|
end
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
class << self
|
|
32
30
|
attr_accessor :logger
|
|
33
|
-
end
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
def logger
|
|
33
|
+
@logger ||= Logger.new
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def wrap(event = nil, context = nil, &block)
|
|
37
|
+
original_progname = logger.progname
|
|
38
|
+
logger.progname = context&.aws_request_id
|
|
39
|
+
logger.info("EVENT #{ event.to_json }")
|
|
40
|
+
yield(event, context).tap { |res| logger.info("RETURN #{ res.to_json }") }
|
|
41
|
+
ensure
|
|
42
|
+
logger.progname = original_progname
|
|
43
|
+
end
|
|
44
|
+
end
|
|
36
45
|
end
|
data/lib/yake/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yake
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Mancevice
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-06-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|