yake 0.4.3 → 0.5.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/README.md +86 -0
- data/lib/yake/support.rb +39 -0
- data/lib/yake/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6688bf834975490165ca48ff259e22402ec5dc417099c8c2291b4796eb76b5b2
|
|
4
|
+
data.tar.gz: d92d5faec4b6bd8b60a65962af51493176a4184a87a52de188f84367bce4002b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2cf319bba7cd22f2c5f58a66c401dd77dfc2d050214d39d755748d9dc78baed88c603dbfdbbe3d233385e35270c73ec19ab9d3edae394ef9e6dbc2c89c9c1a34
|
|
7
|
+
data.tar.gz: 2221a9a8108091b59c9e0eeeb7959c675faee09385847ed5fbf9a75ebbc788be6a734c13eec4a948af883ce1210d9d7fe45401c1e0f3b0cba2efceab03a88df5
|
data/README.md
CHANGED
|
@@ -179,6 +179,92 @@ end
|
|
|
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
|
|
|
182
|
+
## Support Helpers
|
|
183
|
+
|
|
184
|
+
As of `v0.5`, `yake` comes with a support module for common transformations.
|
|
185
|
+
|
|
186
|
+
`Hash` transformations:
|
|
187
|
+
|
|
188
|
+
```ruby
|
|
189
|
+
require 'yake/support'
|
|
190
|
+
|
|
191
|
+
{ fizz: 'buzz' }.encode64
|
|
192
|
+
# => "eyJmaXp6IjoiYnV6eiJ9\n"
|
|
193
|
+
|
|
194
|
+
{ fizz: 'buzz' }.strict_encode64
|
|
195
|
+
# => "eyJmaXp6IjoiYnV6eiJ9"
|
|
196
|
+
|
|
197
|
+
{ 'fizz' => { 'buzz' => %w[jazz fuzz] } }.symbolize_names
|
|
198
|
+
# => { :fizz => { :buzz => ["jazz", "fuzz"] } }
|
|
199
|
+
|
|
200
|
+
{ fizz: 'buzz' }.to_form
|
|
201
|
+
# => "fizz=buzz"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
`Integer` transformations:
|
|
205
|
+
|
|
206
|
+
```ruby
|
|
207
|
+
7.days
|
|
208
|
+
# => 604800
|
|
209
|
+
|
|
210
|
+
7.hours
|
|
211
|
+
# => 25200
|
|
212
|
+
|
|
213
|
+
7.minutes
|
|
214
|
+
# => 420
|
|
215
|
+
|
|
216
|
+
1234567890.utc
|
|
217
|
+
# => 2009-02-13 23:31:30 UTC
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
`String` transformations:
|
|
221
|
+
|
|
222
|
+
```ruby
|
|
223
|
+
'snake_case_string'.camel_case
|
|
224
|
+
# => SnakeCaseString
|
|
225
|
+
|
|
226
|
+
"Zml6eg==\n".decode64
|
|
227
|
+
# => "fizz"
|
|
228
|
+
|
|
229
|
+
'fizz'.encode64
|
|
230
|
+
# => "Zml6eg==\n"
|
|
231
|
+
|
|
232
|
+
'CamelCaseString'.snake_case
|
|
233
|
+
# => 'camel_case_string'
|
|
234
|
+
|
|
235
|
+
'Zml6eg=='.strict_decode64
|
|
236
|
+
# => "fizz"
|
|
237
|
+
|
|
238
|
+
'fizz'.strict_encode64
|
|
239
|
+
# => "Zml6eg=="
|
|
240
|
+
|
|
241
|
+
'{"fizz":"buzz"}'.to_h_from_json
|
|
242
|
+
# => { "fizz" => "buzz" }
|
|
243
|
+
|
|
244
|
+
'fizz=buzz'.to_h_from_form
|
|
245
|
+
# => { "fizz" => "buzz" }
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
`Symbol` transformations
|
|
249
|
+
|
|
250
|
+
```ruby
|
|
251
|
+
:snake_case_symbol.camel_case
|
|
252
|
+
# => :SnakeCaseSymbol
|
|
253
|
+
|
|
254
|
+
:CamelCaseSymbol.snake_case
|
|
255
|
+
# => 'camel_case_symbol'
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
`UTC` Time helper
|
|
259
|
+
|
|
260
|
+
```ruby
|
|
261
|
+
UTC.at 1234567890
|
|
262
|
+
# => 2009-02-13 23:31:30 UTC
|
|
263
|
+
|
|
264
|
+
UTC.now
|
|
265
|
+
# => 2022-02-26 13:57:07.860539 UTC
|
|
266
|
+
```
|
|
267
|
+
|
|
182
268
|
## Datadog Integration
|
|
183
269
|
|
|
184
270
|
As of `~> 0.4`, `yake` comes with a helper for writing Lambdas that integrate with Datadog's `datadog-ruby` gem.
|
data/lib/yake/support.rb
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require 'base64'
|
|
2
|
+
require 'json'
|
|
3
|
+
require 'time'
|
|
4
|
+
|
|
5
|
+
class Hash
|
|
6
|
+
def encode64() to_json.encode64 end
|
|
7
|
+
def strict_encode64() to_json.strict_encode64 end
|
|
8
|
+
def symbolize_names() JSON.parse(to_json, symbolize_names: true) end
|
|
9
|
+
def to_form() URI.encode_www_form(self) end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class Integer
|
|
13
|
+
def days() hours * 24 end
|
|
14
|
+
def hours() minutes * 60 end
|
|
15
|
+
def minutes() seconds * 60 end
|
|
16
|
+
def seconds() self end
|
|
17
|
+
def utc() UTC.at(self) end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class String
|
|
21
|
+
def camel_case() split(/_/).map(&:capitalize).join end
|
|
22
|
+
def decode64() Base64.decode64(self) end
|
|
23
|
+
def encode64() Base64.encode64(self) end
|
|
24
|
+
def snake_case() gsub(/([a-z])([A-Z])/, '\1_\2').downcase end
|
|
25
|
+
def strict_decode64() Base64.strict_decode64(self) end
|
|
26
|
+
def strict_encode64() Base64.strict_encode64(self) end
|
|
27
|
+
def to_h_from_json(**params) JSON.parse(self, **params) end
|
|
28
|
+
def to_h_from_form() URI.decode_www_form(self).to_h end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class Symbol
|
|
32
|
+
def camel_case() to_s.camel_case.to_sym end
|
|
33
|
+
def snake_case() to_s.snake_case.to_sym end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class UTC < Time
|
|
37
|
+
def self.at(...) super.utc end
|
|
38
|
+
def self.now() super.utc end
|
|
39
|
+
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.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Mancevice
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|
|
@@ -25,6 +25,7 @@ files:
|
|
|
25
25
|
- lib/yake/dsl.rb
|
|
26
26
|
- lib/yake/errors.rb
|
|
27
27
|
- lib/yake/logger.rb
|
|
28
|
+
- lib/yake/support.rb
|
|
28
29
|
- lib/yake/version.rb
|
|
29
30
|
homepage: https://github.com/amancevice/yake
|
|
30
31
|
licenses:
|
|
@@ -38,14 +39,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
38
39
|
requirements:
|
|
39
40
|
- - ">="
|
|
40
41
|
- !ruby/object:Gem::Version
|
|
41
|
-
version: 2.
|
|
42
|
+
version: 2.7.5
|
|
42
43
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
43
44
|
requirements:
|
|
44
45
|
- - ">="
|
|
45
46
|
- !ruby/object:Gem::Version
|
|
46
47
|
version: '0'
|
|
47
48
|
requirements: []
|
|
48
|
-
rubygems_version: 3.
|
|
49
|
+
rubygems_version: 3.3.7
|
|
49
50
|
signing_key:
|
|
50
51
|
specification_version: 4
|
|
51
52
|
summary: Rake-like DSL for declaring AWS Lambda function handlers
|