decide.rb 0.6.0 → 0.6.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: cbe851f7fea959e98b1b98f0151962c495cfb36195307b4fb44a6116fe15f4a5
4
- data.tar.gz: 5770da3f08fe829c42489195c9f0a16e4b3f8cef174c7793d4b057a6d8f3fe20
3
+ metadata.gz: 38dfd00197b187505e43c496a3493942ad4b986d4cd7152cfc51affac1f6abf1
4
+ data.tar.gz: f0aea859df148b5f4a3eb9518df261dda2cff1fbd71b96e61ad26623c863c083
5
5
  SHA512:
6
- metadata.gz: 20757b12712eda8e22c8a63705ebf06aaa5aadd3489df5119af3ac63ca58858e00fb8e128088e33dc7832dc8f66cb8debf1283fdce32e1aebfad06ea9ff91fae
7
- data.tar.gz: 7553cf027e1e79477ba67344bd65bb35d49db76863d52f680aeb59f4ae638ce8c948fb4f81b99e4e44aa7d8a00f8613323cbd10f3b980ce55e6a29c1e8fa5235
6
+ metadata.gz: 3b90ffcfa1407bcd0cedba9f0fa2c4882fa4675a6f8b73045c025c02a77eb26f5fc0d311693426c78903c1b3dd75606369b857ab5b9683ae75e68ba80aae6a5d
7
+ data.tar.gz: cbf4b81d9391c97b18a5532fe3f583867f6dc8127403d8c195307a8efc4a1e6ebbd94c298819831587f78711a329812d613014137630d2613174de44ccf0e365
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # 0.6.1
2
+
3
+ * Add `apply` extension for creating applicatives
4
+
5
+ ```ruby
6
+ decider = Decider.map(fn.curry, deciderx)
7
+ decider = Decider.apply(decider, decidery)
8
+ decider = Decider.apply(decider, deciderz)
9
+ # or
10
+ deciderx.map(fn.curry).apply(decidery).apply(deciderz)
11
+ ```
12
+
1
13
  # 0.6.0
2
14
 
3
15
  * All extensions takes decider as last argument
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Decider
4
- VERSION = "0.6.0"
4
+ VERSION = "0.6.1"
5
5
  end
data/lib/decider.rb CHANGED
@@ -139,6 +139,10 @@ module Decider
139
139
  define_method(:dimap_on_event) do |fl:, fr:|
140
140
  Decider.dimap_on_event(fl, fr, self)
141
141
  end
142
+
143
+ define_method(:apply) do |f|
144
+ Decider.apply(self, f)
145
+ end
142
146
  end
143
147
  end
144
148
 
@@ -311,6 +315,10 @@ module Decider
311
315
  end
312
316
  end
313
317
 
318
+ def self.apply(f, x)
319
+ map2(->(f, x) { f.call(x) }, f, x)
320
+ end
321
+
314
322
  def self.map2(fn, dx, dy)
315
323
  define do
316
324
  initial_state fn.call(dx.initial_state, dy.initial_state)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decide.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Dudulski
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-06-22 00:00:00.000000000 Z
10
+ date: 2025-06-23 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: concurrent-ruby