handleit 0.0.1 → 0.0.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/handle.rb +39 -0
  3. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e714807c41a808d38a08a66474cb00d23240cbd2d658e477c907e8ca650519d2
4
- data.tar.gz: 4243750e17a4cde6f0e43ff8a135c1214c6da4a8a498ed950f1ad1a5d1711323
3
+ metadata.gz: 0bc5ffe9ee1175c5cb006337f8934a27f8860a3be5391dcf44e920a22f0cc80e
4
+ data.tar.gz: 6fd5658ea6010231fa88db60ecb90088027ad4baf786362f3b44b292ea54082e
5
5
  SHA512:
6
- metadata.gz: 64ee6d19aa97278038aa1918f9c3b7bde9c365d87f18d5ed622d99b66fd852fc382b091e83cb955fc96752bc647f184443031ae8385a1c7de93090dc16f5fa5e
7
- data.tar.gz: eedff7ff2a7b1c17484d874ba97c22d1630ae736505b0165b35236c2dce0290c90ce134d347184a6641a7ae338e66ee2b067bc97f8235f5fa08a70fe55cd237d
6
+ metadata.gz: c8d86d81a526293a16a55a0c356c8024aad49b44a262b8dc3ac3a486711ed363a54b2df20c47400a2d8d11609dc9904495a3cd2b488b28f27aba3bbd0e40a096
7
+ data.tar.gz: d31f4df7fd8ecf7808bb650542a33c8d94a02f2ca65713a9ae2631c45db3fc268dfe7f2095e4b475cebc786bbf43d96e0b72126e2be96f58340e54258bbadce0
data/lib/handle.rb ADDED
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Handle
4
+ class << self
5
+ def it(&block)
6
+ new.it(&block)
7
+ end
8
+ end
9
+
10
+ def it
11
+ @result = OpenStruct.new return: yield, success: true, error: nil
12
+ self
13
+ rescue StandardError => e
14
+ @result = OpenStruct.new return: nil, success: false, error: e
15
+ self
16
+ end
17
+
18
+ def with
19
+ @result.return = yield(@result.return) if @result.success
20
+ self
21
+ end
22
+
23
+ def on_fail
24
+ yield(@result.error) unless @result.success
25
+ self
26
+ end
27
+
28
+ def result
29
+ @result.return
30
+ end
31
+
32
+ def success?
33
+ @result.success == true
34
+ end
35
+
36
+ def error
37
+ @result.error
38
+ end
39
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handleit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleg Saltykov
@@ -15,7 +15,8 @@ email:
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
- files: []
18
+ files:
19
+ - lib/handle.rb
19
20
  homepage: https://github.com/nucleom42/handleit
20
21
  licenses:
21
22
  - MIT