factbase 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|