sus 0.22.0 → 0.22.1

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: 49e0b28d22be1c2142e9868d47de8e0e39447874bb5e17a4a9c513c723656617
4
- data.tar.gz: 85e6348661715455dcec9ea552e59b788dd7637d79b32126c3e456e68b4d6998
3
+ metadata.gz: d98d9db638357180f67cf8eb50386e099d8ec38adf112fe86bbddd950faa2bb6
4
+ data.tar.gz: b26ceb6e7fabd8817ffa6c033bdbe9216b7656efea458d0c23f6783a8fc8c9ed
5
5
  SHA512:
6
- metadata.gz: f079bb5a6e5d3ff4f9f27f25f93675111754fbcc92f95b59209d981a370adbe2008ecb07acd7fb280db0f0d47705ae3254d55791f473e78891552cfebf7ba044
7
- data.tar.gz: 99dde477c93576abf2ff664a3fd8bc31eda8be9280c6cd79aa6f831d68f4ae004ef9a6815ce6bcd49e718c64d4745a0b040c90b0b67fcb1be7886664823c6769
6
+ metadata.gz: ed2b150dd585fd0f3f71c3ee5c21067be8989145b96bf8c7eb2606eae7bd7b9b33c0bbec5c2c6a9c83d6ece774fc6539c53d7e5e8e5c1201c2c191862648db35
7
+ data.tar.gz: e1103fa59201767edbcae235d05e49515b763eeb28fa92d117bd1a97aff0e34644a6b3f9eea2b2b493248965e3ad57d861f1ca329c60d0ed63065a9e1bc861f2
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/sus/identity.rb CHANGED
@@ -15,6 +15,10 @@ module Sus
15
15
  self.new(location.path, name, location.lineno, parent, **options)
16
16
  end
17
17
 
18
+ def self.current
19
+ self.nested(nil, nil, caller_locations(1...2).first)
20
+ end
21
+
18
22
  # @parameter unique [Boolean | Symbol] Whether this identity is unique or needs a unique key/line number suffix.
19
23
  def initialize(path, name = nil, line = nil, parent = nil, unique: true)
20
24
  @path = path
@@ -15,7 +15,7 @@ module Sus
15
15
  def self.for(exception, identity = nil)
16
16
  # I've disabled the root filter here, because partial backtraces are not very useful.
17
17
  # We might want to do something to improve presentation of the backtrace based on the root instead.
18
- self.new(exception.backtrace_locations) # , identity&.path)
18
+ self.new(exception.backtrace_locations, identity&.path)
19
19
  end
20
20
 
21
21
  def initialize(stack, root = nil, limit = nil)
@@ -24,20 +24,26 @@ module Sus
24
24
  @limit = limit
25
25
  end
26
26
 
27
- def filter(root = @root)
28
- if @root
29
- stack = @stack.select do |frame|
30
- frame.path.start_with?(@root)
27
+ attr :stack
28
+ attr :root
29
+ attr :limit
30
+
31
+ def filter(root: @root, limit: @limit)
32
+ if root
33
+ if limit
34
+ return @stack.lazy.select do |frame|
35
+ frame.path.start_with?(root)
36
+ end.first(limit)
37
+ else
38
+ return up_to_and_matching(@stack) do |frame|
39
+ frame.path.start_with?(root)
40
+ end
31
41
  end
42
+ elsif limit
43
+ return @stack.first(limit)
32
44
  else
33
- stack = @stack
45
+ return @stack
34
46
  end
35
-
36
- if @limit
37
- stack = stack.take(@limit)
38
- end
39
-
40
- return stack
41
47
  end
42
48
 
43
49
  def print(output)
@@ -53,6 +59,22 @@ module Sus
53
59
  end
54
60
  end
55
61
  end
62
+
63
+ private def up_to_and_matching(things, &block)
64
+ preface = true
65
+ things.select do |thing|
66
+ if preface
67
+ if yield(thing)
68
+ preface = false
69
+ end
70
+ true
71
+ elsif yield(thing)
72
+ true
73
+ else
74
+ false
75
+ end
76
+ end
77
+ end
56
78
  end
57
79
  end
58
80
  end
data/lib/sus/version.rb CHANGED
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2021-2023, by Samuel Williams.
5
5
 
6
6
  module Sus
7
- VERSION = "0.22.0"
7
+ VERSION = "0.22.1"
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.22.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -38,7 +38,7 @@ cert_chain:
38
38
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
39
39
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
40
40
  -----END CERTIFICATE-----
41
- date: 2023-07-22 00:00:00.000000000 Z
41
+ date: 2023-08-01 00:00:00.000000000 Z
42
42
  dependencies: []
43
43
  description:
44
44
  email:
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  requirements: []
124
- rubygems_version: 3.4.10
124
+ rubygems_version: 3.4.7
125
125
  signing_key:
126
126
  specification_version: 4
127
127
  summary: A fast and scalable test runner.
metadata.gz.sig CHANGED
Binary file