yake 0.5.4 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|