yake 0.5.2 → 0.5.5
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 +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:
|