yake 0.5.2 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +31 -13
- data/lib/yake/support.rb +10 -0
- 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: d97ba087d51b600bac660504eacdd1d590f9acf5904baa20be399027ecbf85f2
|
4
|
+
data.tar.gz: 56d692bba03ba85e82d79fdceca350cb975654b13a6ba46441ce950e9c86b213
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e707b8cf74c1cee8bd58e8345760a2680687296d9a5eb487b8f6320cf4b44b8817f2d281179cd4c20838eeb3c32f394e1a2ab77293999617b5a4fc9621ffca4e
|
7
|
+
data.tar.gz: bf1339315504d1e47a7158a7a99175bd147372231c44e9344ec989122dd43e448ab5f2b8d9fcb20f65bef3b2c2fea88800d8677e02adcbb515b9e8b5a5322b68
|
data/README.md
CHANGED
@@ -67,11 +67,11 @@ gem install yake
|
|
67
67
|
|
68
68
|
So why use `yake` for your Lambda functions?
|
69
69
|
|
70
|
-
|
70
|
+
### Event Logging
|
71
71
|
|
72
72
|
By default, the `handler` function wraps its block in log lines formatted to match the style of Amazon's native Lambda logs sent to CloudWatch. Each invocation of the handler will log both the _input event_ and the _returned value_, prefixed with the ID of the request:
|
73
73
|
|
74
|
-
```
|
74
|
+
```plaintext
|
75
75
|
START RequestId: 149c500f-028a-4b57-8977-0ef568cf8caf Version: $LATEST
|
76
76
|
INFO RequestId: 149c500f-028a-4b57-8977-0ef568cf8caf EVENT { … }
|
77
77
|
…
|
@@ -101,7 +101,7 @@ Fizz.new.logger == Yake.logger
|
|
101
101
|
# => true
|
102
102
|
```
|
103
103
|
|
104
|
-
|
104
|
+
### API Routes
|
105
105
|
|
106
106
|
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.
|
107
107
|
|
@@ -168,14 +168,14 @@ Route an event to one of the declared routes:
|
|
168
168
|
```ruby
|
169
169
|
handler :lambda_handler do |event|
|
170
170
|
route event
|
171
|
-
rescue Yake::UndeclaredRoute => err
|
171
|
+
rescue Yake::Errors::UndeclaredRoute => err
|
172
172
|
respond 404, { message: err.message }.to_json
|
173
173
|
rescue => err
|
174
174
|
respond 500, { message: err.message }.to_json
|
175
175
|
end
|
176
176
|
```
|
177
177
|
|
178
|
-
|
178
|
+
### Zero Dependencies
|
179
179
|
|
180
180
|
Finally, `yake` does not depend on any other gems, using the Ruby stdlib only. This helps keep your Lambda packages slim & speedy.
|
181
181
|
|
@@ -189,7 +189,17 @@ Enable the helpers by requiring the `support` submodule:
|
|
189
189
|
require 'yake/support'
|
190
190
|
```
|
191
191
|
|
192
|
-
`
|
192
|
+
`Object` helpers:
|
193
|
+
|
194
|
+
```ruby
|
195
|
+
MyObject.new.some_method
|
196
|
+
# => NoMethodError
|
197
|
+
|
198
|
+
MyObject.new.try(:some_method)
|
199
|
+
# => nil
|
200
|
+
```
|
201
|
+
|
202
|
+
`Hash` helpers:
|
193
203
|
|
194
204
|
```ruby
|
195
205
|
{ fizz: 'buzz' }.encode64
|
@@ -198,6 +208,9 @@ require 'yake/support'
|
|
198
208
|
{ fizz: 'buzz' }.strict_encode64
|
199
209
|
# => "eyJmaXp6IjoiYnV6eiJ9"
|
200
210
|
|
211
|
+
{ fizz: { buzz: %w[jazz fuzz] } }.stringify_names
|
212
|
+
# => { "fizz" => { "buzz" => ["jazz", "fuzz"] } }
|
213
|
+
|
201
214
|
{ 'fizz' => { 'buzz' => %w[jazz fuzz] } }.symbolize_names
|
202
215
|
# => { :fizz => { :buzz => ["jazz", "fuzz"] } }
|
203
216
|
|
@@ -205,7 +218,7 @@ require 'yake/support'
|
|
205
218
|
# => "fizz=buzz"
|
206
219
|
```
|
207
220
|
|
208
|
-
`Integer`
|
221
|
+
`Integer` helpers:
|
209
222
|
|
210
223
|
```ruby
|
211
224
|
7.weeks
|
@@ -224,11 +237,16 @@ require 'yake/support'
|
|
224
237
|
# => 2009-02-13 23:31:30 UTC
|
225
238
|
```
|
226
239
|
|
227
|
-
`String`
|
240
|
+
`String` helpers:
|
228
241
|
|
229
242
|
```ruby
|
243
|
+
host = 'https://example.com/'
|
244
|
+
path = '/path/to/resource'
|
245
|
+
host / path
|
246
|
+
# => "https://example.com/path/to/resource"
|
247
|
+
|
230
248
|
'snake_case_string'.camel_case
|
231
|
-
# => SnakeCaseString
|
249
|
+
# => "SnakeCaseString"
|
232
250
|
|
233
251
|
"Zml6eg==\n".decode64
|
234
252
|
# => "fizz"
|
@@ -237,7 +255,7 @@ require 'yake/support'
|
|
237
255
|
# => "Zml6eg==\n"
|
238
256
|
|
239
257
|
'CamelCaseString'.snake_case
|
240
|
-
# =>
|
258
|
+
# => "camel_case_string"
|
241
259
|
|
242
260
|
'Zml6eg=='.strict_decode64
|
243
261
|
# => "fizz"
|
@@ -252,17 +270,17 @@ require 'yake/support'
|
|
252
270
|
# => { "fizz" => "buzz" }
|
253
271
|
```
|
254
272
|
|
255
|
-
`Symbol`
|
273
|
+
`Symbol` helpers
|
256
274
|
|
257
275
|
```ruby
|
258
276
|
:snake_case_symbol.camel_case
|
259
277
|
# => :SnakeCaseSymbol
|
260
278
|
|
261
279
|
:CamelCaseSymbol.snake_case
|
262
|
-
# =>
|
280
|
+
# => :camel_case_symbol
|
263
281
|
```
|
264
282
|
|
265
|
-
`UTC` Time
|
283
|
+
`UTC` Time helpers
|
266
284
|
|
267
285
|
```ruby
|
268
286
|
UTC.at 1234567890
|
data/lib/yake/support.rb
CHANGED
@@ -4,7 +4,9 @@ require 'time'
|
|
4
4
|
|
5
5
|
class Hash
|
6
6
|
def encode64() to_json.encode64 end
|
7
|
+
def except(*keys) self.reject { |key,_| keys.include? key } end
|
7
8
|
def strict_encode64() to_json.strict_encode64 end
|
9
|
+
def stringify_names() JSON.parse(to_json) end
|
8
10
|
def symbolize_names() JSON.parse(to_json, symbolize_names: true) end
|
9
11
|
def to_form() URI.encode_www_form(self) end
|
10
12
|
end
|
@@ -24,6 +26,14 @@ class Integer
|
|
24
26
|
alias :week :weeks
|
25
27
|
end
|
26
28
|
|
29
|
+
class Object
|
30
|
+
def try(method, *args, **kwargs)
|
31
|
+
send(method, *args, **kwargs)
|
32
|
+
rescue
|
33
|
+
nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
27
37
|
class String
|
28
38
|
def /(path) File.join(self, path.to_s) end
|
29
39
|
def camel_case() split(/_/).map(&:capitalize).join 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.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Mancevice
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|