factbase 0.1.1 → 0.2.0
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/Gemfile.lock +5 -5
- data/README.md +8 -0
- data/factbase.gemspec +5 -5
- data/lib/factbase/term.rb +6 -0
- data/lib/factbase/terms/casting.rb +58 -0
- data/lib/factbase/terms/math.rb +22 -22
- data/lib/factbase/terms/system.rb +36 -0
- data/lib/factbase.rb +1 -1
- data/test/factbase/terms/test_aggregates.rb +0 -6
- data/test/factbase/terms/test_aliases.rb +0 -6
- data/test/factbase/terms/test_casting.rb +51 -0
- data/test/factbase/terms/test_defn.rb +0 -6
- data/test/factbase/terms/test_logical.rb +0 -6
- data/test/factbase/terms/test_math.rb +16 -18
- data/test/factbase/terms/test_strings.rb +0 -6
- data/test/factbase/terms/test_system.rb +37 -0
- data/test/factbase/test_term.rb +0 -6
- data/test/test__helper.rb +8 -0
- metadata +26 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4659be0304d67fcd6639ae27a0ca2ebc065a9dc7499d45454447ca18812e0698
|
4
|
+
data.tar.gz: 40df86a0bd3a24b11f4124cb234683a7fc8e58fa05835bbfb7e761323c2746a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03deff34f5739536073ec7c6fc0869a1d2a213528ebef2b7832a794ca3a086fb19642dcb497e2a8cc37305e2ed818e84765c37a7ea9b5390f6dc30b8271479bf
|
7
|
+
data.tar.gz: 48e1693cdea380fd71408521f6e7ec4783427f2316445361ce549c597bb9b836a75e3227b9c370e0afe4b780cd8f1ded9f38d28d17622b3cb993923ee62bdaea
|
data/Gemfile.lock
CHANGED
@@ -2,13 +2,13 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
factbase (0.0.0)
|
5
|
-
backtrace (
|
6
|
-
decoor (
|
5
|
+
backtrace (> 0)
|
6
|
+
decoor (> 0)
|
7
7
|
json (~> 2.7)
|
8
|
-
loog (
|
8
|
+
loog (> 0)
|
9
9
|
nokogiri (~> 1.10)
|
10
|
-
others (
|
11
|
-
tago (
|
10
|
+
others (> 0)
|
11
|
+
tago (> 0)
|
12
12
|
yaml (~> 0.3)
|
13
13
|
|
14
14
|
GEM
|
data/README.md
CHANGED
@@ -102,6 +102,9 @@ Also, some simple arithmetic:
|
|
102
102
|
* `(times v1 v2)` is a multiplication of `∏v1` and `∏v2`
|
103
103
|
* `(div v1 v2)` is a division of `∏v1` by `∏v2`
|
104
104
|
|
105
|
+
It's possible to add and deduct string values to time values, like
|
106
|
+
`(plus t '2 days')` or ``(minus t '14 hours')``.
|
107
|
+
|
105
108
|
Types may be converted:
|
106
109
|
|
107
110
|
* `(to_int v)` is an integer of `v`
|
@@ -144,6 +147,11 @@ It's also possible to use a sub-query in a shorter form than with the `agg`:
|
|
144
147
|
|
145
148
|
* `(empty q)` is true if the subquery `q` is empty
|
146
149
|
|
150
|
+
There are some system-level terms:
|
151
|
+
|
152
|
+
* `(env v1 v2)` returns the value of environment variable `v1` or the string
|
153
|
+
`v2` if it's not set
|
154
|
+
|
147
155
|
## How to contribute
|
148
156
|
|
149
157
|
Read
|
data/factbase.gemspec
CHANGED
@@ -42,13 +42,13 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.files = `git ls-files`.split($RS)
|
43
43
|
s.rdoc_options = ['--charset=UTF-8']
|
44
44
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
45
|
-
s.add_dependency 'backtrace', '
|
46
|
-
s.add_dependency 'decoor', '
|
45
|
+
s.add_dependency 'backtrace', '>0'
|
46
|
+
s.add_dependency 'decoor', '>0'
|
47
47
|
s.add_dependency 'json', '~>2.7'
|
48
|
-
s.add_dependency 'loog', '
|
48
|
+
s.add_dependency 'loog', '>0'
|
49
49
|
s.add_dependency 'nokogiri', '~>1.10'
|
50
|
-
s.add_dependency 'others', '
|
51
|
-
s.add_dependency 'tago', '
|
50
|
+
s.add_dependency 'others', '>0'
|
51
|
+
s.add_dependency 'tago', '>0'
|
52
52
|
s.add_dependency 'yaml', '~>0.3'
|
53
53
|
s.metadata['rubygems_mfa_required'] = 'true'
|
54
54
|
end
|
data/lib/factbase/term.rb
CHANGED
@@ -65,6 +65,9 @@ class Factbase::Term
|
|
65
65
|
require_relative 'terms/strings'
|
66
66
|
include Factbase::Term::Strings
|
67
67
|
|
68
|
+
require_relative 'terms/casting'
|
69
|
+
include Factbase::Term::Casting
|
70
|
+
|
68
71
|
require_relative 'terms/meta'
|
69
72
|
include Factbase::Term::Meta
|
70
73
|
|
@@ -77,6 +80,9 @@ class Factbase::Term
|
|
77
80
|
require_relative 'terms/defn'
|
78
81
|
include Factbase::Term::Defn
|
79
82
|
|
83
|
+
require_relative 'terms/system'
|
84
|
+
include Factbase::Term::System
|
85
|
+
|
80
86
|
require_relative 'terms/debug'
|
81
87
|
include Factbase::Term::Debug
|
82
88
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2024 Yegor Bugayenko
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
10
|
+
# furnished to do so, subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
13
|
+
# copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
22
|
+
|
23
|
+
require_relative '../../factbase'
|
24
|
+
|
25
|
+
# Casting terms.
|
26
|
+
#
|
27
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
|
+
# Copyright:: Copyright (c) 2024 Yegor Bugayenko
|
29
|
+
# License:: MIT
|
30
|
+
module Factbase::Term::Casting
|
31
|
+
def to_string(fact, maps)
|
32
|
+
assert_args(1)
|
33
|
+
vv = the_values(0, fact, maps)
|
34
|
+
return nil if vv.nil?
|
35
|
+
vv[0].to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_integer(fact, maps)
|
39
|
+
assert_args(1)
|
40
|
+
vv = the_values(0, fact, maps)
|
41
|
+
return nil if vv.nil?
|
42
|
+
vv[0].to_i
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_float(fact, maps)
|
46
|
+
assert_args(1)
|
47
|
+
vv = the_values(0, fact, maps)
|
48
|
+
return nil if vv.nil?
|
49
|
+
vv[0].to_f
|
50
|
+
end
|
51
|
+
|
52
|
+
def to_time(fact, maps)
|
53
|
+
assert_args(1)
|
54
|
+
vv = the_values(0, fact, maps)
|
55
|
+
return nil if vv.nil?
|
56
|
+
Time.parse(vv[0].to_s)
|
57
|
+
end
|
58
|
+
end
|
data/lib/factbase/terms/math.rb
CHANGED
@@ -51,27 +51,6 @@ module Factbase::Term::Math
|
|
51
51
|
vv.any? { |v| (v.is_a?(Integer) || v.is_a?(Float)) && v.zero? }
|
52
52
|
end
|
53
53
|
|
54
|
-
def to_str(fact, maps)
|
55
|
-
assert_args(1)
|
56
|
-
vv = the_values(0, fact, maps)
|
57
|
-
return nil if vv.nil?
|
58
|
-
vv[0].to_s
|
59
|
-
end
|
60
|
-
|
61
|
-
def to_int(fact, maps)
|
62
|
-
assert_args(1)
|
63
|
-
vv = the_values(0, fact, maps)
|
64
|
-
return nil if vv.nil?
|
65
|
-
vv[0].to_i
|
66
|
-
end
|
67
|
-
|
68
|
-
def to_float(fact, maps)
|
69
|
-
assert_args(1)
|
70
|
-
vv = the_values(0, fact, maps)
|
71
|
-
return nil if vv.nil?
|
72
|
-
vv[0].to_f
|
73
|
-
end
|
74
|
-
|
75
54
|
def eq(fact, maps)
|
76
55
|
cmp(:==, fact, maps)
|
77
56
|
end
|
@@ -107,6 +86,27 @@ module Factbase::Term::Math
|
|
107
86
|
rights = the_values(1, fact, maps)
|
108
87
|
return nil if rights.nil?
|
109
88
|
raise 'Too many values at second position, one expected' unless rights.size == 1
|
110
|
-
lefts[0]
|
89
|
+
v = lefts[0]
|
90
|
+
r = rights[0]
|
91
|
+
if v.is_a?(Time) && r.is_a?(String)
|
92
|
+
(num, units) = r.split
|
93
|
+
num = num.to_i
|
94
|
+
r =
|
95
|
+
case units
|
96
|
+
when 'seconds'
|
97
|
+
num
|
98
|
+
when 'minutes'
|
99
|
+
num * 60
|
100
|
+
when 'hours'
|
101
|
+
num * 60 * 60
|
102
|
+
when 'days'
|
103
|
+
num * 60 * 60 * 24
|
104
|
+
when 'weeks'
|
105
|
+
num * 60 * 60 * 24 * 7
|
106
|
+
else
|
107
|
+
raise "Unknown time unit '#{units}' in '#{r}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
v.send(op, r)
|
111
111
|
end
|
112
112
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2024 Yegor Bugayenko
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
10
|
+
# furnished to do so, subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
13
|
+
# copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
22
|
+
|
23
|
+
require_relative '../../factbase'
|
24
|
+
|
25
|
+
# System-level terms.
|
26
|
+
#
|
27
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
28
|
+
# Copyright:: Copyright (c) 2024 Yegor Bugayenko
|
29
|
+
# License:: MIT
|
30
|
+
module Factbase::Term::System
|
31
|
+
def env(fact, maps)
|
32
|
+
assert_args(2)
|
33
|
+
n = the_values(0, fact, maps)[0]
|
34
|
+
ENV.fetch(n.upcase) { the_values(1, fact, maps)[1] }
|
35
|
+
end
|
36
|
+
end
|
data/lib/factbase.rb
CHANGED
@@ -81,7 +81,7 @@ require 'yaml'
|
|
81
81
|
# License:: MIT
|
82
82
|
class Factbase
|
83
83
|
# Current version of the gem (changed by .rultor.yml on every release)
|
84
|
-
VERSION = '0.
|
84
|
+
VERSION = '0.2.0'
|
85
85
|
|
86
86
|
# An exception that may be thrown in a transaction, to roll it back.
|
87
87
|
class Rollback < StandardError; end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2024 Yegor Bugayenko
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
10
|
+
# furnished to do so, subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
13
|
+
# copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
22
|
+
|
23
|
+
require 'minitest/autorun'
|
24
|
+
require_relative '../../test__helper'
|
25
|
+
require_relative '../../../lib/factbase/term'
|
26
|
+
|
27
|
+
# Math test.
|
28
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
29
|
+
# Copyright:: Copyright (c) 2024 Yegor Bugayenko
|
30
|
+
# License:: MIT
|
31
|
+
class TestCasting < Minitest::Test
|
32
|
+
def test_to_str
|
33
|
+
t = Factbase::Term.new(:to_string, [Time.now])
|
34
|
+
assert_equal('String', t.evaluate(fact, []).class.to_s)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_to_integer
|
38
|
+
t = Factbase::Term.new(:to_integer, [[42, 'hello']])
|
39
|
+
assert_equal('Integer', t.evaluate(fact, []).class.to_s)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_to_float
|
43
|
+
t = Factbase::Term.new(:to_float, [[3.14, 'hello']])
|
44
|
+
assert_equal('Float', t.evaluate(fact, []).class.to_s)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_to_time
|
48
|
+
t = Factbase::Term.new(:to_time, [%w[2023-01-01 hello]])
|
49
|
+
assert_equal('Time', t.evaluate(fact, []).class.to_s)
|
50
|
+
end
|
51
|
+
end
|
@@ -21,6 +21,7 @@
|
|
21
21
|
# SOFTWARE.
|
22
22
|
|
23
23
|
require 'minitest/autorun'
|
24
|
+
require_relative '../../test__helper'
|
24
25
|
require_relative '../../../lib/factbase/term'
|
25
26
|
|
26
27
|
# Math test.
|
@@ -91,30 +92,27 @@ class TestMath < Minitest::Test
|
|
91
92
|
assert(!t.evaluate(fact('bar' => [100]), []))
|
92
93
|
end
|
93
94
|
|
94
|
-
def test_to_str
|
95
|
-
t = Factbase::Term.new(:to_str, [Time.now])
|
96
|
-
assert_equal('String', t.evaluate(fact, []).class.to_s)
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_to_int
|
100
|
-
t = Factbase::Term.new(:to_int, [[42, 'hello']])
|
101
|
-
assert_equal('Integer', t.evaluate(fact, []).class.to_s)
|
102
|
-
end
|
103
|
-
|
104
|
-
def test_to_float
|
105
|
-
t = Factbase::Term.new(:to_float, [[3.14, 'hello']])
|
106
|
-
assert_equal('Float', t.evaluate(fact, []).class.to_s)
|
107
|
-
end
|
108
|
-
|
109
95
|
def test_plus
|
110
96
|
t = Factbase::Term.new(:plus, [:foo, 42])
|
111
97
|
assert_equal(46, t.evaluate(fact('foo' => 4), []))
|
112
98
|
assert(t.evaluate(fact, []).nil?)
|
113
99
|
end
|
114
100
|
|
115
|
-
|
101
|
+
def test_plus_time
|
102
|
+
t = Factbase::Term.new(:plus, [:foo, '12 days'])
|
103
|
+
assert_equal(Time.parse('2024-01-13'), t.evaluate(fact('foo' => Time.parse('2024-01-01')), []))
|
104
|
+
assert(t.evaluate(fact, []).nil?)
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_minus
|
108
|
+
t = Factbase::Term.new(:minus, [:foo, 42])
|
109
|
+
assert_equal(58, t.evaluate(fact('foo' => 100), []))
|
110
|
+
assert(t.evaluate(fact, []).nil?)
|
111
|
+
end
|
116
112
|
|
117
|
-
def
|
118
|
-
Factbase::
|
113
|
+
def test_minus_time
|
114
|
+
t = Factbase::Term.new(:minus, [:foo, '4 hours'])
|
115
|
+
assert_equal(Time.parse('2024-01-01T06:04'), t.evaluate(fact('foo' => Time.parse('2024-01-01T10:04')), []))
|
116
|
+
assert(t.evaluate(fact, []).nil?)
|
119
117
|
end
|
120
118
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2024 Yegor Bugayenko
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
10
|
+
# furnished to do so, subject to the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
13
|
+
# copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
# SOFTWARE.
|
22
|
+
|
23
|
+
require 'minitest/autorun'
|
24
|
+
require_relative '../../test__helper'
|
25
|
+
require_relative '../../../lib/factbase/term'
|
26
|
+
|
27
|
+
# System test.
|
28
|
+
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
29
|
+
# Copyright:: Copyright (c) 2024 Yegor Bugayenko
|
30
|
+
# License:: MIT
|
31
|
+
class TestSystem < Minitest::Test
|
32
|
+
def test_env
|
33
|
+
ENV.store('FOO', 'bar')
|
34
|
+
t = Factbase::Term.new(:env, ['FOO', ''])
|
35
|
+
assert_equal('bar', t.evaluate(fact, []))
|
36
|
+
end
|
37
|
+
end
|
data/test/factbase/test_term.rb
CHANGED
data/test/test__helper.rb
CHANGED
@@ -32,3 +32,11 @@ require 'minitest/autorun'
|
|
32
32
|
|
33
33
|
require 'minitest/reporters'
|
34
34
|
Minitest::Reporters.use! [Minitest::Reporters::SpecReporter.new]
|
35
|
+
|
36
|
+
# Default methods for all tests.
|
37
|
+
class Minitest::Test
|
38
|
+
def fact(map = {})
|
39
|
+
require 'factbase/fact'
|
40
|
+
Factbase::Fact.new(Mutex.new, map)
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decoor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: json
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: loog
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0
|
61
|
+
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: nokogiri
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,30 +84,30 @@ dependencies:
|
|
84
84
|
name: others
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
89
|
+
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: tago
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0
|
103
|
+
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - ">"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0
|
110
|
+
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: yaml
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,6 +170,7 @@ files:
|
|
170
170
|
- lib/factbase/term.rb
|
171
171
|
- lib/factbase/terms/aggregates.rb
|
172
172
|
- lib/factbase/terms/aliases.rb
|
173
|
+
- lib/factbase/terms/casting.rb
|
173
174
|
- lib/factbase/terms/debug.rb
|
174
175
|
- lib/factbase/terms/defn.rb
|
175
176
|
- lib/factbase/terms/logical.rb
|
@@ -177,16 +178,19 @@ files:
|
|
177
178
|
- lib/factbase/terms/meta.rb
|
178
179
|
- lib/factbase/terms/ordering.rb
|
179
180
|
- lib/factbase/terms/strings.rb
|
181
|
+
- lib/factbase/terms/system.rb
|
180
182
|
- lib/factbase/to_json.rb
|
181
183
|
- lib/factbase/to_xml.rb
|
182
184
|
- lib/factbase/to_yaml.rb
|
183
185
|
- renovate.json
|
184
186
|
- test/factbase/terms/test_aggregates.rb
|
185
187
|
- test/factbase/terms/test_aliases.rb
|
188
|
+
- test/factbase/terms/test_casting.rb
|
186
189
|
- test/factbase/terms/test_defn.rb
|
187
190
|
- test/factbase/terms/test_logical.rb
|
188
191
|
- test/factbase/terms/test_math.rb
|
189
192
|
- test/factbase/terms/test_strings.rb
|
193
|
+
- test/factbase/terms/test_system.rb
|
190
194
|
- test/factbase/test_accum.rb
|
191
195
|
- test/factbase/test_fact.rb
|
192
196
|
- test/factbase/test_flatten.rb
|