rooibos 0.7.1 → 0.7.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90779a1947e5b95b3fadc6917fb2254408ec8361c4995782e01a91019d386628
4
- data.tar.gz: 50dab255aa26895d8d1cc5bd7b31b14a7cce4c1d052108f5c4010037dfe4c917
3
+ metadata.gz: 84b4f67bd8240b412f78b91e8e8e52af841e6438694bb51013519d3ba6e28fe7
4
+ data.tar.gz: 63ac12eba2aee98ecf595aa948d457babc3533ce66b2d9fa20eee5257e26bcf1
5
5
  SHA512:
6
- metadata.gz: e9b7ef36e9e9095ba819bf36a10715a1a5d8a12ca96104eadc683d4fb7247702bc5d2ac069e67da103e06d72c3e6d6d8224b86dd6576a7fcef65e2e802bda2b6
7
- data.tar.gz: 6c104e16082e4c548ef28b9022942e30eb9bd9cc40861ac6fe906712f0c059966438e18c6adaccd6874081770033a65609423f9d4898961135fa1621a25cce4c
6
+ metadata.gz: 193556d2bf1093e16c1229162e579113c3d4a75c472cf37c071db593f4d1506405de0c7eaf1bccfcb9b2555335ed304c64d25f1cd08231c7c084a58bfa9ba731
7
+ data.tar.gz: a8ab3b783bc7f40527f05b15d7c32e971f70518cb9a4769f5d0312590ff866773debe986dcfb93ab36e8cf61a95dc40f9b91db842557633b36333296ffaf6fbf
@@ -32,10 +32,16 @@ module Rooibos
32
32
  new(callable: apply_scope(normalized))
33
33
  end
34
34
 
35
+ # Combines two guards into a single callable without creating a closure.
36
+ class CombinedGuard < Data.define(:inner, :outer)
37
+ def arity = 2
38
+ def call(msg, model) = inner.call(msg, model) && outer.call(msg, model)
39
+ end
40
+
35
41
  private_class_method def self.apply_scope(callable)
36
42
  @scope.inject(callable) do |inner, outer|
37
43
  if inner
38
- -> (msg, model) { outer.call(msg, model) && inner.call(msg, model) }
44
+ CombinedGuard.new(inner:, outer:)
39
45
  else
40
46
  outer
41
47
  end
@@ -8,5 +8,5 @@
8
8
  module Rooibos
9
9
  # The version of this gem.
10
10
  # See https://semver.org/spec/v2.0.0.html
11
- VERSION = "0.7.1"
11
+ VERSION = "0.7.2"
12
12
  end
@@ -16,6 +16,14 @@ module Rooibos
16
16
 
17
17
  # Evaluates the guard. Returns true if no callable.
18
18
  def call: (message, _DataModel) -> boolish
19
+
20
+ class CombinedGuard < Data
21
+ attr_reader inner: guard
22
+ attr_reader outer: guard
23
+
24
+ def arity: () -> Integer
25
+ def call: (message, _DataModel) -> boolish
26
+ end
19
27
  end
20
28
  end
21
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rooibos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kerrick Long