decide.rb 0.5.5 → 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 +4 -4
- data/CHANGELOG.md +36 -0
- data/lib/decider/version.rb +1 -1
- data/lib/decider.rb +27 -19
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38dfd00197b187505e43c496a3493942ad4b986d4cd7152cfc51affac1f6abf1
|
4
|
+
data.tar.gz: f0aea859df148b5f4a3eb9518df261dda2cff1fbd71b96e61ad26623c863c083
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b90ffcfa1407bcd0cedba9f0fa2c4882fa4675a6f8b73045c025c02a77eb26f5fc0d311693426c78903c1b3dd75606369b857ab5b9683ae75e68ba80aae6a5d
|
7
|
+
data.tar.gz: cbf4b81d9391c97b18a5532fe3f583867f6dc8127403d8c195307a8efc4a1e6ebbd94c298819831587f78711a329812d613014137630d2613174de44ccf0e365
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,39 @@
|
|
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
|
+
|
13
|
+
# 0.6.0
|
14
|
+
|
15
|
+
* All extensions takes decider as last argument
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
# Before
|
19
|
+
Decider.dimap_on_state(decider, fl:, fr:)
|
20
|
+
Decider.dimap_on_event(decider, fl:, fr:)
|
21
|
+
Decider.lmap_on_event(decider, fn)
|
22
|
+
Decider.lmap_on_command(decider, fn)
|
23
|
+
Decider.lmap_on_state(decider, fn)
|
24
|
+
Decider.rmap_on_event(decider, fn)
|
25
|
+
Decider.rmap_on_state(decider, fn)
|
26
|
+
|
27
|
+
# After
|
28
|
+
Decider.dimap_on_state(fl, fr, decider)
|
29
|
+
Decider.dimap_on_event(fl, fr, decider)
|
30
|
+
Decider.lmap_on_event(fn, decider)
|
31
|
+
Decider.lmap_on_command(fn, decider)
|
32
|
+
Decider.lmap_on_state(fn, decider)
|
33
|
+
Decider.rmap_on_event(fn, decider)
|
34
|
+
Decider.rmap_on_state(fn, decider)
|
35
|
+
```
|
36
|
+
|
1
37
|
# 0.5.5
|
2
38
|
|
3
39
|
* Add `lmap_on_command` extension that takes proc that maps command and returns a new decider
|
data/lib/decider/version.rb
CHANGED
data/lib/decider.rb
CHANGED
@@ -109,11 +109,11 @@ module Decider
|
|
109
109
|
end
|
110
110
|
|
111
111
|
define_method(:lmap_on_command) do |fn|
|
112
|
-
Decider.lmap_on_command(
|
112
|
+
Decider.lmap_on_command(fn, self)
|
113
113
|
end
|
114
114
|
|
115
115
|
define_method(:lmap_on_state) do |fn|
|
116
|
-
Decider.lmap_on_state(
|
116
|
+
Decider.lmap_on_state(fn, self)
|
117
117
|
end
|
118
118
|
|
119
119
|
define_method(:map) do |fn|
|
@@ -121,23 +121,27 @@ module Decider
|
|
121
121
|
end
|
122
122
|
|
123
123
|
define_method(:rmap_on_state) do |fn|
|
124
|
-
Decider.rmap_on_state(
|
124
|
+
Decider.rmap_on_state(fn, self)
|
125
125
|
end
|
126
126
|
|
127
127
|
define_method(:dimap_on_state) do |fl:, fr:|
|
128
|
-
Decider.dimap_on_state(
|
128
|
+
Decider.dimap_on_state(fl, fr, self)
|
129
129
|
end
|
130
130
|
|
131
131
|
define_method(:lmap_on_event) do |fn|
|
132
|
-
Decider.lmap_on_event(
|
132
|
+
Decider.lmap_on_event(fn, self)
|
133
133
|
end
|
134
134
|
|
135
135
|
define_method(:rmap_on_event) do |fn|
|
136
|
-
Decider.rmap_on_event(
|
136
|
+
Decider.rmap_on_event(fn, self)
|
137
137
|
end
|
138
138
|
|
139
139
|
define_method(:dimap_on_event) do |fl:, fr:|
|
140
|
-
Decider.dimap_on_event(
|
140
|
+
Decider.dimap_on_event(fl, fr, self)
|
141
|
+
end
|
142
|
+
|
143
|
+
define_method(:apply) do |f|
|
144
|
+
Decider.apply(self, f)
|
141
145
|
end
|
142
146
|
end
|
143
147
|
end
|
@@ -235,7 +239,7 @@ module Decider
|
|
235
239
|
end
|
236
240
|
end
|
237
241
|
|
238
|
-
def self.lmap_on_command(
|
242
|
+
def self.lmap_on_command(fn, decider)
|
239
243
|
define do
|
240
244
|
initial_state decider.initial_state
|
241
245
|
|
@@ -253,19 +257,19 @@ module Decider
|
|
253
257
|
end
|
254
258
|
end
|
255
259
|
|
256
|
-
def self.lmap_on_state(
|
257
|
-
dimap_on_state(
|
260
|
+
def self.lmap_on_state(fn, decider)
|
261
|
+
dimap_on_state(fn, ->(state) { state }, decider)
|
258
262
|
end
|
259
263
|
|
260
264
|
def self.map(fn, decider)
|
261
|
-
dimap_on_state(
|
265
|
+
dimap_on_state(->(state) { state }, fn, decider)
|
262
266
|
end
|
263
267
|
|
264
|
-
def self.rmap_on_state(
|
265
|
-
dimap_on_state(
|
268
|
+
def self.rmap_on_state(fn, decider)
|
269
|
+
dimap_on_state(->(state) { state }, fn, decider)
|
266
270
|
end
|
267
271
|
|
268
|
-
def self.dimap_on_state(
|
272
|
+
def self.dimap_on_state(fl, fr, decider)
|
269
273
|
define do
|
270
274
|
initial_state fr.call(decider.initial_state)
|
271
275
|
|
@@ -283,15 +287,15 @@ module Decider
|
|
283
287
|
end
|
284
288
|
end
|
285
289
|
|
286
|
-
def self.lmap_on_event(
|
287
|
-
dimap_on_event(
|
290
|
+
def self.lmap_on_event(fn, decider)
|
291
|
+
dimap_on_event(fn, ->(event) { event }, decider)
|
288
292
|
end
|
289
293
|
|
290
|
-
def self.rmap_on_event(
|
291
|
-
dimap_on_event(
|
294
|
+
def self.rmap_on_event(fn, decider)
|
295
|
+
dimap_on_event(->(event) { event }, fn, decider)
|
292
296
|
end
|
293
297
|
|
294
|
-
def self.dimap_on_event(
|
298
|
+
def self.dimap_on_event(fl, fr, decider)
|
295
299
|
define do
|
296
300
|
initial_state decider.initial_state
|
297
301
|
|
@@ -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.
|
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-
|
10
|
+
date: 2025-06-23 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: concurrent-ruby
|