wolf_core 1.0.120 → 1.0.122

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f83e18f8bcc55b578affaeee2281bdd1e164073cf4fde179e41eb2cfa3618f21
4
- data.tar.gz: 98209b7f299db5a0705ee58a2e26e8a98327950fbe2911ce67261d2a62eb2264
3
+ metadata.gz: 76b0f4003c2722f6982f12be6c99ed844d00f4f260d6f9d3dcf2beedf89c2d41
4
+ data.tar.gz: 5826da883775eb2dccbbfb191e0a056a55443f1ab929cf2035b215acd45f76b0
5
5
  SHA512:
6
- metadata.gz: 352bce93a2e7b2323789243bc3fdf73ca559ae8c46fb899c2bedbb2ee5c5d8d1cafb88137f818181010c358d48ced47d9ebda2956e1a3ee0e886f34b0d71190e
7
- data.tar.gz: 6c5d2c44d7a1403104410740d784290cb746f0f34e89ee7b41ad72f61c63a6cf83822d88c641cdeb50e142bf0cf4b31120610ecfb3c21f89554d731ed26bdb9b
6
+ metadata.gz: a3980d05cea5d964b6361739a7c84435a304f1427c95b2f09c68c332f1415707bc273dc71aea5ca20e53742cf57c961ec39852b0e2c0f8cb6c180c2692ede4ad
7
+ data.tar.gz: 2d67899a6be1bf4195073dd8f4a35661c73ce4a69fdc1fcfaee5f26047d7db5f26c5988d59c4789735b28fc86c8db008a016a8271a2f9f3a52d7eb2720f76792
@@ -15,6 +15,12 @@ class Result
15
15
  Result.new(success: false, error: OpenStruct.new(error))
16
16
  end
17
17
 
18
+ def self.try
19
+ yield
20
+ rescue StandardError => e
21
+ Result.failure(error: { message: e.message, original_backtrace: e.backtrace })
22
+ end
23
+
18
24
  def success?
19
25
  @success
20
26
  end
@@ -40,4 +46,29 @@ class Result
40
46
  Result.failure(error: sliced_error)
41
47
  end
42
48
  end
49
+
50
+ def fold(success: nil, failure: nil)
51
+ fold_result = if success?
52
+ if success.respond_to?(:call)
53
+ success.call(@data)
54
+ else
55
+ if block_given?
56
+ yield(@data)
57
+ else
58
+ self
59
+ end
60
+ end
61
+ else
62
+ if failure.respond_to?(:call)
63
+ failure.call(@error)
64
+ else
65
+ self
66
+ end
67
+ end
68
+
69
+ unless fold_result.is_a?(Result)
70
+ raise StandardError, "Fold result must be a Result object, got: #{fold_result.class}"
71
+ end
72
+ fold_result
73
+ end
43
74
  end
@@ -132,14 +132,14 @@ module WolfCore
132
132
  def split_name(full_name, name_range: nil, lastname_range: nil)
133
133
  words = full_name.split
134
134
 
135
- return { firstname: words[0], lastname: words[1] } if words.length == 2
135
+ return { first_name: words[0], last_name: words[1] } if words.length == 2
136
136
 
137
137
  name_range ||= 0..-2
138
138
  lastname_range ||= -1..-1
139
139
 
140
140
  name = words[name_range].join(" ")
141
141
  lastname = words[lastname_range].join(" ")
142
- { firstname: name, lastname: lastname }
142
+ { first_name: name, last_name: lastname }
143
143
  end
144
144
  end
145
145
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WolfCore
4
- VERSION = "1.0.120"
4
+ VERSION = "1.0.122"
5
5
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wolf_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.120
4
+ version: 1.0.122
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Roncallo
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-05-29 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: httparty
@@ -162,7 +161,6 @@ metadata:
162
161
  homepage_uri: https://github.com/onewolfxyz/wolf_core
163
162
  source_code_uri: https://github.com/onewolfxyz/wolf_core
164
163
  changelog_uri: https://github.com/onewolfxyz/wolf_core
165
- post_install_message:
166
164
  rdoc_options: []
167
165
  require_paths:
168
166
  - lib
@@ -177,8 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
175
  - !ruby/object:Gem::Version
178
176
  version: '0'
179
177
  requirements: []
180
- rubygems_version: 3.5.16
181
- signing_key:
178
+ rubygems_version: 3.6.9
182
179
  specification_version: 4
183
180
  summary: Repository to store shared code among Ruby projects.
184
181
  test_files: []