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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48e3aa4baba1a3e241c30002133a56627b43e9ef5ce903c46fbafe2873a8625f
4
- data.tar.gz: f6fe14cbed445d1bd07e743f4b29f4eca2b65c3b46438a73c4654644626f8ae3
3
+ metadata.gz: 4659be0304d67fcd6639ae27a0ca2ebc065a9dc7499d45454447ca18812e0698
4
+ data.tar.gz: 40df86a0bd3a24b11f4124cb234683a7fc8e58fa05835bbfb7e761323c2746a7
5
5
  SHA512:
6
- metadata.gz: 0b9900e9aefabc39c5a84af552c34011fa54cffaa9828f3eb84aa677ec2f006ee6a32028cb74be5d04a65a7e68e7d516f072d7b78dd89aa91a04168c67fdd561
7
- data.tar.gz: 915d162e0b9ff8f533ef3f34f9b39cca0593fd1823a14918acb99f0f1f9d88aaf08016d85d5fdfd892410ebe701392a16322f8c4dc8cb16fc93e064287b29d01
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 (~> 0.3)
6
- decoor (~> 0.0)
5
+ backtrace (> 0)
6
+ decoor (> 0)
7
7
  json (~> 2.7)
8
- loog (~> 0.2)
8
+ loog (> 0)
9
9
  nokogiri (~> 1.10)
10
- others (~> 0.0)
11
- tago (~> 0.0)
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', '~>0.3'
46
- s.add_dependency 'decoor', '~>0.0'
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', '~>0.2'
48
+ s.add_dependency 'loog', '>0'
49
49
  s.add_dependency 'nokogiri', '~>1.10'
50
- s.add_dependency 'others', '~>0.0'
51
- s.add_dependency 'tago', '~>0.0'
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
@@ -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].send(op, rights[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.1.1'
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
@@ -67,10 +67,4 @@ class TestAggregates < Minitest::Test
67
67
  assert_equal(r, t.evaluate(nil, maps), q)
68
68
  end
69
69
  end
70
-
71
- private
72
-
73
- def fact(map = {})
74
- Factbase::Fact.new(Mutex.new, map)
75
- end
76
70
  end
@@ -71,10 +71,4 @@ class TestAliases < Minitest::Test
71
71
  end
72
72
  end
73
73
  end
74
-
75
- private
76
-
77
- def fact(map = {})
78
- Factbase::Fact.new(Mutex.new, map)
79
- end
80
74
  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
@@ -62,10 +62,4 @@ class TestDefn < Minitest::Test
62
62
  t = Factbase::Term.new(:undef, [:hello])
63
63
  assert_equal(true, t.evaluate(fact, []))
64
64
  end
65
-
66
- private
67
-
68
- def fact(map = {})
69
- Factbase::Fact.new(Mutex.new, map)
70
- end
71
65
  end
@@ -69,10 +69,4 @@ class TestLogical < Minitest::Test
69
69
  assert(!t.evaluate(fact('foo' => 4), []))
70
70
  assert(t.evaluate(fact('foo' => 5, 'bar' => 5), []))
71
71
  end
72
-
73
- private
74
-
75
- def fact(map = {})
76
- Factbase::Fact.new(Mutex.new, map)
77
- end
78
72
  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
- private
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 fact(map = {})
118
- Factbase::Fact.new(Mutex.new, map)
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
@@ -50,10 +50,4 @@ class TestStrings < Minitest::Test
50
50
  t = Factbase::Term.new(:sprintf, ['hi, %s!', 'Jeff'])
51
51
  assert_equal('hi, Jeff!', t.evaluate(fact, []))
52
52
  end
53
-
54
- private
55
-
56
- def fact(map = {})
57
- Factbase::Fact.new(Mutex.new, map)
58
- end
59
53
  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
@@ -90,10 +90,4 @@ class TestTerm < Minitest::Test
90
90
  end.message
91
91
  assert(msg.include?('at (at)'), msg)
92
92
  end
93
-
94
- private
95
-
96
- def fact(map = {})
97
- Factbase::Fact.new(Mutex.new, map)
98
- end
99
93
  end
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.1.1
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-17 00:00:00.000000000 Z
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.3'
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.3'
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.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.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.2'
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.2'
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.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.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.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.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