ex_aequo_base 0.1.13 → 0.1.15
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/lib/ex_aequo/base/all.rb +1 -0
- data/lib/ex_aequo/base/fn.rb +22 -3
- data/lib/ex_aequo/base/string.rb +4 -0
- data/lib/ex_aequo/base/to_proc/string.rb +7 -0
- data/lib/ex_aequo/base/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 818ee0917708d69324d4ef782e519cbc45154342c9bdc7b051767e624d5f5ebc
|
4
|
+
data.tar.gz: fd2cdedca009cfd91f1efa52aced6f7c8a9e45025a670646be1321af93750091
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6210d719649347dbe62ae7ac27338fbe74818e45da4e1e24b045b4cb1d4dcee316edfc4ac8ec684fc8534cbf62d16afc6c59c067b46c2ea0e3aa61bcc51425c8
|
7
|
+
data.tar.gz: ae514e524453f43f07207c2ed533748c6633dd82698a5aa2e521045046343bbbec3960838982895820d1510415f07aced1ab3a2c6294da687f333215ba2382b7
|
data/lib/ex_aequo/base/all.rb
CHANGED
@@ -6,6 +6,7 @@ require_relative 'forwarder'
|
|
6
6
|
require_relative 'kernel'
|
7
7
|
require_relative 'open_struct'
|
8
8
|
require_relative 'regexp'
|
9
|
+
require_relative 'string'
|
9
10
|
# require_relative 'match_data'
|
10
11
|
# Colorize = ExAequo::Base::Colorize
|
11
12
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
data/lib/ex_aequo/base/fn.rb
CHANGED
@@ -10,21 +10,27 @@ module ExAequo
|
|
10
10
|
'!' => _not,
|
11
11
|
}
|
12
12
|
|
13
|
-
|
14
13
|
def mk_fun(fn_desc)
|
15
14
|
case fn_desc
|
16
15
|
in String
|
17
16
|
mk_op(fn_desc)
|
18
17
|
in Symbol
|
19
|
-
|
18
|
+
-> { it.send(fn_desc) }
|
20
19
|
in Array
|
21
|
-
|
20
|
+
-> { it.send(*fn_desc) }
|
22
21
|
in _
|
23
22
|
fn_desc.to_proc
|
24
23
|
end
|
25
24
|
# TODO: Allow for other fn_desc then Array and Symbol
|
26
25
|
end
|
27
26
|
|
27
|
+
def mk_fun_or(fn_desc=nil, &blk)
|
28
|
+
raise ArgumentError, "symbolic fn_desc and block are not allowed" if !fn_desc.nil? && blk
|
29
|
+
raise ArgumentError, "symbolic fn_desc or a block must be provided" unless !fn_desc.nil? || blk
|
30
|
+
|
31
|
+
blk ? blk : mk_fun(fn_desc)
|
32
|
+
end
|
33
|
+
|
28
34
|
def mk_fun_pipeline(fn_descs)
|
29
35
|
fns = fn_descs.map { mk_fun it }
|
30
36
|
-> do
|
@@ -32,6 +38,19 @@ module ExAequo
|
|
32
38
|
end
|
33
39
|
end
|
34
40
|
|
41
|
+
def mk_fun_pipeline_and(fn_descs = [], &blk)
|
42
|
+
if blk
|
43
|
+
fns = fn_descs.map { mk_fun it }
|
44
|
+
-> do
|
45
|
+
val = fns.inject(it) { |acc, f| f.(acc) }
|
46
|
+
blk.(val)
|
47
|
+
end
|
48
|
+
else
|
49
|
+
raise ArgumentError, "need a blok or a fn_desc" if fn_descs.empty?
|
50
|
+
mk_fun_pipeline(fn_descs)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
35
54
|
def mk_op(op)
|
36
55
|
Operators.fetch(op) { raise ArgumentError, "undefined operator #{op.inspect}" }
|
37
56
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ex_aequo_base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Dober
|
@@ -67,11 +67,13 @@ files:
|
|
67
67
|
- lib/ex_aequo/base/match_data.rb
|
68
68
|
- lib/ex_aequo/base/open_struct.rb
|
69
69
|
- lib/ex_aequo/base/regexp.rb
|
70
|
+
- lib/ex_aequo/base/string.rb
|
70
71
|
- lib/ex_aequo/base/string/colorize.rb
|
71
72
|
- lib/ex_aequo/base/to_proc.rb
|
72
73
|
- lib/ex_aequo/base/to_proc/false_class.rb
|
73
74
|
- lib/ex_aequo/base/to_proc/nil_class.rb
|
74
75
|
- lib/ex_aequo/base/to_proc/regexp.rb
|
76
|
+
- lib/ex_aequo/base/to_proc/string.rb
|
75
77
|
- lib/ex_aequo/base/to_proc/true_class.rb
|
76
78
|
- lib/ex_aequo/base/version.rb
|
77
79
|
homepage: https://codeberg.org/lab419/rb_ex_aequo_base
|