l43_core 0.2.3 → 0.2.5

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: ee9cdeab020aa5876a85d6634206ce6ef106e0c1eefeb924753f2dfa8df1cbca
4
- data.tar.gz: d8ff86f355848b818aee9ca43e5c3641f72dda441ee2bf050e11983c16197147
3
+ metadata.gz: d7ea59223db730b1b36f5f6c3f4b539e1790f934a64ca124256bf40413b3a391
4
+ data.tar.gz: 25397af9e5dffd213fcdc62d5b7f2e52a364397c5fd3f7a4d5cec7f61a98eca7
5
5
  SHA512:
6
- metadata.gz: b8197be7b6b633cc7d69712d03db1f578b0ca6cd7c13d05882228c4d06f296d5d128fbb01da3735ec811b6318d49f335347c7d2e757be653fe6c39560dfdc332
7
- data.tar.gz: 85ddf2ebdf2da119776fe575d1acc2f61e41098826cfd921ca306544c7710ff3ca5ae4c0a42859e3b2301d26c50f2347aafb5b2f5dc6ed3d791720b04b819f0f
6
+ metadata.gz: a8e028c61172190d204633b4999feb27e8833ddbc2eacc754f514d68a9783cf4b8e0363e832538ce30165a4d52c11d67a3187ff7bfe30e3ac713ae824df2e9c8
7
+ data.tar.gz: 8db10cb88d9c06a5a7cdc3d20624ae07096239321a9df84702c591874f6ba75109dbfd6ac6ffacf63f58f47dd4db40dad24e994a353b97a1ba94f8b8f0e0931b
@@ -4,18 +4,25 @@ require_relative 'result'
4
4
  module L43
5
5
  module Core
6
6
  module AsResult
7
+ module Stack extend self
8
+ Trigger = %r{\/lib\/ruby\/gems\/}
9
+ def trace(locations)
10
+ locations.take_while { !Trigger.match?(it.to_s) }
11
+ end
12
+ end
13
+
7
14
  include Result
8
15
  def self.extended(by)
9
16
  by.include self
10
17
  end
11
18
 
12
- def as_result(caller: nil, &blk)
19
+ def as_result(name=nil, caller: nil, &blk)
13
20
  Success.new(blk.())
14
21
  rescue StandardError => se
15
22
  Failure.new(
16
23
  exception: se,
17
- message: se.inspect,
18
- location: [caller, se.backtrace_locations.first].compact.join(" ")
24
+ message: [se.inspect, name, "at #{blk.source_location}"].compact.join("\n"),
25
+ location: [caller, Stack.trace(se.backtrace_locations)].compact.join("\t\n")
19
26
  )
20
27
  end
21
28
 
@@ -15,8 +15,8 @@ module L43
15
15
  blk.(self)
16
16
  end
17
17
 
18
- def map_result(&blk)
19
- as_result('map_result') do
18
+ def map_result(name='map_result', &blk)
19
+ as_result(name) do
20
20
  blk.(self)
21
21
  end
22
22
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module L43
4
4
  module Core
5
- VERSION = "0.2.3"
5
+ VERSION = "0.2.5"
6
6
  end
7
7
  end
8
8
  # SPDX-License-Identifier: AGPL-3.0-or-later
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: l43_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Dober