yake 0.5.4 → 0.6.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 +37 -5
- data/lib/yake/support.rb +14 -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: 608f4f31563bbda1db8213273eada195baa5ce02add9853a13f07904ace788f5
|
|
4
|
+
data.tar.gz: a91dc710313eefb17c11f6fd3e4887324260f715e059148cb9063565487e8222
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 385cba84bca2c7992ec6072857a344f3a02ad191f0f3004cce9364e5738875a027fc7a264aba371e285d3a1ddd7a868de99b1058b38277d9205500c4c96fd1c7
|
|
7
|
+
data.tar.gz: 4b658f2d67d823cd59d02775e06de9de8f6f0593ecdb7eabc7d97bdfe966924b89c46598cd230f7656c01e42056c2f57370f17b8d6ec83293ef99fa57a936cd3
|
data/README.md
CHANGED
|
@@ -189,23 +189,49 @@ Enable the helpers by requiring the `support` submodule:
|
|
|
189
189
|
require 'yake/support'
|
|
190
190
|
```
|
|
191
191
|
|
|
192
|
-
`
|
|
192
|
+
`Object` helpers:
|
|
193
193
|
|
|
194
194
|
```ruby
|
|
195
|
+
MyObject.new.some_method
|
|
196
|
+
# => NoMethodError
|
|
197
|
+
|
|
198
|
+
MyObject.new.try(:some_method)
|
|
199
|
+
# => nil
|
|
200
|
+
|
|
201
|
+
10.try(:some_method) { |x| x ** 2 }
|
|
202
|
+
# => 100
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`Hash` helpers:
|
|
206
|
+
|
|
207
|
+
```ruby
|
|
208
|
+
{ f: 'g', a: { d: 'e', b: 'c' } }.deep_sort
|
|
209
|
+
# => { a: { b: 'c', d: 'e' }, f: 'g' }
|
|
210
|
+
|
|
195
211
|
{ fizz: 'buzz' }.encode64
|
|
196
212
|
# => "eyJmaXp6IjoiYnV6eiJ9\n"
|
|
197
213
|
|
|
214
|
+
{ fizz: 'buzz', jazz: 'fuzz' }.except(:buzz)
|
|
215
|
+
# => { :fizz => 'buzz' }
|
|
216
|
+
|
|
198
217
|
{ fizz: 'buzz' }.strict_encode64
|
|
199
218
|
# => "eyJmaXp6IjoiYnV6eiJ9"
|
|
200
219
|
|
|
220
|
+
{ fizz: { buzz: %w[jazz fuzz] } }.stringify_names
|
|
221
|
+
# => { "fizz" => { "buzz" => ["jazz", "fuzz"] } }
|
|
222
|
+
|
|
201
223
|
{ 'fizz' => { 'buzz' => %w[jazz fuzz] } }.symbolize_names
|
|
202
224
|
# => { :fizz => { :buzz => ["jazz", "fuzz"] } }
|
|
203
225
|
|
|
204
226
|
{ fizz: 'buzz' }.to_form
|
|
205
227
|
# => "fizz=buzz"
|
|
228
|
+
|
|
229
|
+
{ f: 'g', a: { d: 'e', b: 'c' } }.to_json_sorted
|
|
230
|
+
# => '{"a":{"b":"c","d":"e"},"f":"g"}'
|
|
231
|
+
|
|
206
232
|
```
|
|
207
233
|
|
|
208
|
-
`Integer`
|
|
234
|
+
`Integer` helpers:
|
|
209
235
|
|
|
210
236
|
```ruby
|
|
211
237
|
7.weeks
|
|
@@ -224,7 +250,7 @@ require 'yake/support'
|
|
|
224
250
|
# => 2009-02-13 23:31:30 UTC
|
|
225
251
|
```
|
|
226
252
|
|
|
227
|
-
`String`
|
|
253
|
+
`String` helpers:
|
|
228
254
|
|
|
229
255
|
```ruby
|
|
230
256
|
host = 'https://example.com/'
|
|
@@ -241,6 +267,12 @@ host / path
|
|
|
241
267
|
'fizz'.encode64
|
|
242
268
|
# => "Zml6eg==\n"
|
|
243
269
|
|
|
270
|
+
'fizz'.md5sum
|
|
271
|
+
# => "b6bfa6c318811be022d4f73070597660"
|
|
272
|
+
|
|
273
|
+
'fizz'.sha1sum
|
|
274
|
+
# => "c25f5985f2ab63baeb2408a2d7dbc79d8f29d02f"
|
|
275
|
+
|
|
244
276
|
'CamelCaseString'.snake_case
|
|
245
277
|
# => "camel_case_string"
|
|
246
278
|
|
|
@@ -257,7 +289,7 @@ host / path
|
|
|
257
289
|
# => { "fizz" => "buzz" }
|
|
258
290
|
```
|
|
259
291
|
|
|
260
|
-
`Symbol`
|
|
292
|
+
`Symbol` helpers
|
|
261
293
|
|
|
262
294
|
```ruby
|
|
263
295
|
:snake_case_symbol.camel_case
|
|
@@ -267,7 +299,7 @@ host / path
|
|
|
267
299
|
# => :camel_case_symbol
|
|
268
300
|
```
|
|
269
301
|
|
|
270
|
-
`UTC` Time
|
|
302
|
+
`UTC` Time helpers
|
|
271
303
|
|
|
272
304
|
```ruby
|
|
273
305
|
UTC.at 1234567890
|
data/lib/yake/support.rb
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
require 'base64'
|
|
2
|
+
require 'digest'
|
|
2
3
|
require 'json'
|
|
3
4
|
require 'time'
|
|
4
5
|
|
|
5
6
|
class Hash
|
|
7
|
+
def deep_sort() self.sort.map { |k,v| [ k, v.try(:deep_sort) { |x| x } ] }.to_h end
|
|
6
8
|
def encode64() to_json.encode64 end
|
|
7
9
|
def except(*keys) self.reject { |key,_| keys.include? key } end
|
|
8
10
|
def strict_encode64() to_json.strict_encode64 end
|
|
9
11
|
def stringify_names() JSON.parse(to_json) end
|
|
10
12
|
def symbolize_names() JSON.parse(to_json, symbolize_names: true) end
|
|
11
13
|
def to_form() URI.encode_www_form(self) end
|
|
14
|
+
def to_json_sorted() deep_sort.to_json end
|
|
12
15
|
end
|
|
13
16
|
|
|
14
17
|
class Integer
|
|
@@ -26,11 +29,21 @@ class Integer
|
|
|
26
29
|
alias :week :weeks
|
|
27
30
|
end
|
|
28
31
|
|
|
32
|
+
class Object
|
|
33
|
+
def try(method, *args, **kwargs, &block)
|
|
34
|
+
send(method, *args, **kwargs)
|
|
35
|
+
rescue
|
|
36
|
+
block_given? ? yield(self) : nil
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
29
40
|
class String
|
|
30
41
|
def /(path) File.join(self, path.to_s) end
|
|
31
42
|
def camel_case() split(/_/).map(&:capitalize).join end
|
|
32
43
|
def decode64() Base64.decode64(self) end
|
|
33
44
|
def encode64() Base64.encode64(self) end
|
|
45
|
+
def md5sum() Digest::MD5.hexdigest(self) end
|
|
46
|
+
def sha1sum() Digest::SHA1.hexdigest(self) end
|
|
34
47
|
def snake_case() gsub(/([a-z])([A-Z])/, '\1_\2').downcase end
|
|
35
48
|
def strict_decode64() Base64.strict_decode64(self) end
|
|
36
49
|
def strict_encode64() Base64.strict_encode64(self) end
|
|
@@ -44,6 +57,7 @@ class Symbol
|
|
|
44
57
|
end
|
|
45
58
|
|
|
46
59
|
class UTC < Time
|
|
60
|
+
def initialize(...) super.utc end
|
|
47
61
|
def self.at(...) super.utc end
|
|
48
62
|
def self.now() super.utc end
|
|
49
63
|
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.6.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: 2022-
|
|
11
|
+
date: 2022-05-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description:
|
|
14
14
|
email:
|