l43_core 0.1.1 → 0.1.3

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: b329606cc789a916e3095f04035af853a0b082ba2fbe44f52032086f51679dca
4
- data.tar.gz: 35cf9c9134421b88c66136d840107c359bbef17c74898956cecadf0132c02837
3
+ metadata.gz: b964ad4c7819f22e58ec71b9768521105318d9bdcc42d9d860e399bd9864c491
4
+ data.tar.gz: e6399e1a021ca7b549a0c41589e8e200891269e3099fe36a6a6cfd755c4e8ac7
5
5
  SHA512:
6
- metadata.gz: 74aff2e2708019712d7823a1a3de13b904414647b35c4c7fddad2aece0d80c95be07fd04039fe00b5bc92ef7d1650db74ee19fddf9e990ed675bcfaab4bc318a
7
- data.tar.gz: eec3de9e94a5332109cc6bd3b4d98694e5d427ee203f8286fbddd13a4edccf3dad946b357ac5aa158514f99eec999e5be9593c5573cc9ea2336b5d3b725009b4
6
+ metadata.gz: 31d4957c4b081d12d22e3b8236f91bfeed7b93dc99941374d22ae421dd58aacdf2807ec7e7f70a1285be685714bcb53fab409f6dada9ca4125d5fd2a399de849
7
+ data.tar.gz: ea5c0da5bac00c239e95c74f213cac1f88e321e78227bce9e7ef6bed7d079b25ca764d5d09d723cea00bcb51039a4f2264dd0768cdf82ba6a3eb66f7be40a403
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'result'
4
+ module L43
5
+ module Core
6
+ module AsResult
7
+ def self.extended(from)
8
+ from.include self
9
+ end
10
+
11
+ def as_result(&blk)
12
+ Result.ok(blk.())
13
+ rescue StandardError => se
14
+ Result.error(se.message)
15
+ end
16
+
17
+ def as_result_fn(&blk)
18
+ -> (*a, **k, &b) do
19
+ as_result { blk.(*a, **k, &b) }
20
+ end
21
+ end
22
+
23
+ def defresult(name, &blk)
24
+ define_method name do |*a, **k, &b|
25
+ as_result { blk.(*a, **k, &b) }
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ # SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,13 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'l43'
4
3
  require 'l43/errors'
4
+ require_relative 'result/constructors'
5
+
5
6
  module L43
6
- require_all __FILE__
7
7
  module Core
8
8
  class Result
9
9
  extend Constructors
10
10
 
11
+ def ==(other)
12
+ return false unless self.class === other
13
+
14
+ to_h == other.to_h
15
+ end
16
+
11
17
  def deconstruct(*)
12
18
  if @ok
13
19
  [:ok, @value]
@@ -16,13 +22,14 @@ module L43
16
22
  end
17
23
  end
18
24
 
19
- def deconstruct_keys(*)
25
+ def to_h(*)
20
26
  if @ok
21
27
  {ok: @value}
22
28
  else
23
29
  {error: @message}
24
30
  end
25
31
  end
32
+ alias_method :deconstruct_keys, :to_h
26
33
 
27
34
  def error? = !@ok
28
35
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  module Core
5
- VERSION = "0.1.1"
5
+ VERSION = "0.1.3"
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/l43/core.rb CHANGED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'core/as_result'
4
+ require_relative 'core/result'
5
+ module L43
6
+ module Core extend self
7
+
8
+ def require_all(file, descend: false)
9
+ dir = file.sub(/\.[^.]*\z/, '')
10
+ wc = descend ? '/**/*.rb' : '/*.rb'
11
+ Dir.glob(File.join(dir, wc)).each { require it }
12
+ end
13
+
14
+ end
15
+ end
16
+ # SPDX-License-Identifier: AGPL-3.0-or-later
data/lib/l43.rb CHANGED
@@ -1,12 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module L43 extend self
4
-
5
- def require_all(file, descend: false)
6
- dir = file.sub(/\.[^.]*\z/, '')
7
- wc = descend ? '/**/*.rb' : '/*.rb'
8
- Dir.glob(File.join(dir, wc)).each { require it }
9
- end
3
+ module L43
10
4
 
11
5
  end
12
6
  # SPDX-License-Identifier: AGPL-3.0-or-later
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-12-09 00:00:00.000000000 Z
10
+ date: 2025-12-10 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ostruct
@@ -33,6 +33,7 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - lib/l43.rb
35
35
  - lib/l43/core.rb
36
+ - lib/l43/core/as_result.rb
36
37
  - lib/l43/core/forwarder.rb
37
38
  - lib/l43/core/none.rb
38
39
  - lib/l43/core/result.rb
@@ -58,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
59
  - !ruby/object:Gem::Version
59
60
  version: '0'
60
61
  requirements: []
61
- rubygems_version: 3.6.9
62
+ rubygems_version: 4.0.1
62
63
  specification_version: 4
63
64
  summary: Core Functionality for L43 Ruby Tool
64
65
  test_files: []