factbase 0.19.2 → 0.19.3

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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/Gemfile.lock +27 -25
  4. data/LICENSE.txt +1 -1
  5. data/LICENSES/MIT.txt +1 -1
  6. data/README.md +2 -2
  7. data/Rakefile +1 -1
  8. data/factbase.gemspec +1 -1
  9. data/lib/factbase/accum.rb +2 -2
  10. data/lib/factbase/cached/cached_fact.rb +4 -8
  11. data/lib/factbase/cached/cached_factbase.rb +2 -2
  12. data/lib/factbase/cached/cached_query.rb +2 -2
  13. data/lib/factbase/cached/cached_term.rb +2 -2
  14. data/lib/factbase/churn.rb +2 -2
  15. data/lib/factbase/fact.rb +2 -2
  16. data/lib/factbase/fact_as_yaml.rb +2 -2
  17. data/lib/factbase/flatten.rb +2 -2
  18. data/lib/factbase/impatient.rb +2 -2
  19. data/lib/factbase/indexed/indexed_absent.rb +1 -1
  20. data/lib/factbase/indexed/indexed_and.rb +1 -1
  21. data/lib/factbase/indexed/indexed_eq.rb +1 -1
  22. data/lib/factbase/indexed/indexed_exists.rb +1 -1
  23. data/lib/factbase/indexed/indexed_fact.rb +2 -2
  24. data/lib/factbase/indexed/indexed_factbase.rb +2 -2
  25. data/lib/factbase/indexed/indexed_gt.rb +1 -1
  26. data/lib/factbase/indexed/indexed_lt.rb +1 -1
  27. data/lib/factbase/indexed/indexed_not.rb +1 -1
  28. data/lib/factbase/indexed/indexed_one.rb +1 -1
  29. data/lib/factbase/indexed/indexed_or.rb +1 -1
  30. data/lib/factbase/indexed/indexed_query.rb +2 -2
  31. data/lib/factbase/indexed/indexed_term.rb +2 -2
  32. data/lib/factbase/indexed/indexed_unique.rb +1 -1
  33. data/lib/factbase/inv.rb +2 -2
  34. data/lib/factbase/lazy_taped.rb +1 -1
  35. data/lib/factbase/lazy_taped_array.rb +1 -1
  36. data/lib/factbase/lazy_taped_hash.rb +1 -1
  37. data/lib/factbase/light.rb +2 -2
  38. data/lib/factbase/logged.rb +2 -2
  39. data/lib/factbase/pre.rb +2 -2
  40. data/lib/factbase/query.rb +2 -2
  41. data/lib/factbase/rules.rb +2 -2
  42. data/lib/factbase/sync/sync_factbase.rb +2 -2
  43. data/lib/factbase/sync/sync_query.rb +2 -2
  44. data/lib/factbase/syntax.rb +2 -2
  45. data/lib/factbase/tallied.rb +2 -2
  46. data/lib/factbase/taped.rb +2 -2
  47. data/lib/factbase/tee.rb +2 -2
  48. data/lib/factbase/term.rb +2 -2
  49. data/lib/factbase/terms/absent.rb +1 -1
  50. data/lib/factbase/terms/agg.rb +1 -1
  51. data/lib/factbase/terms/always.rb +1 -1
  52. data/lib/factbase/terms/and.rb +1 -1
  53. data/lib/factbase/terms/arithmetic.rb +1 -1
  54. data/lib/factbase/terms/as.rb +1 -1
  55. data/lib/factbase/terms/assert.rb +1 -1
  56. data/lib/factbase/terms/base.rb +2 -2
  57. data/lib/factbase/terms/best.rb +1 -1
  58. data/lib/factbase/terms/boolean.rb +1 -1
  59. data/lib/factbase/terms/compare.rb +1 -1
  60. data/lib/factbase/terms/concat.rb +2 -2
  61. data/lib/factbase/terms/count.rb +1 -1
  62. data/lib/factbase/terms/defn.rb +3 -3
  63. data/lib/factbase/terms/div.rb +1 -1
  64. data/lib/factbase/terms/either.rb +1 -1
  65. data/lib/factbase/terms/empty.rb +1 -1
  66. data/lib/factbase/terms/env.rb +1 -1
  67. data/lib/factbase/terms/eq.rb +1 -1
  68. data/lib/factbase/terms/exists.rb +1 -1
  69. data/lib/factbase/terms/first.rb +1 -1
  70. data/lib/factbase/terms/gt.rb +1 -1
  71. data/lib/factbase/terms/gte.rb +1 -1
  72. data/lib/factbase/terms/head.rb +1 -1
  73. data/lib/factbase/terms/inverted.rb +1 -1
  74. data/lib/factbase/terms/join.rb +1 -1
  75. data/lib/factbase/terms/lt.rb +1 -1
  76. data/lib/factbase/terms/lte.rb +1 -1
  77. data/lib/factbase/terms/many.rb +1 -1
  78. data/lib/factbase/terms/matches.rb +2 -2
  79. data/lib/factbase/terms/max.rb +1 -1
  80. data/lib/factbase/terms/min.rb +1 -1
  81. data/lib/factbase/terms/minus.rb +1 -1
  82. data/lib/factbase/terms/never.rb +1 -1
  83. data/lib/factbase/terms/nil.rb +1 -1
  84. data/lib/factbase/terms/not.rb +1 -1
  85. data/lib/factbase/terms/nth.rb +1 -1
  86. data/lib/factbase/terms/one.rb +2 -2
  87. data/lib/factbase/terms/or.rb +1 -1
  88. data/lib/factbase/terms/plus.rb +1 -1
  89. data/lib/factbase/terms/prev.rb +1 -1
  90. data/lib/factbase/terms/simplified.rb +2 -2
  91. data/lib/factbase/terms/size.rb +1 -1
  92. data/lib/factbase/terms/sorted.rb +1 -1
  93. data/lib/factbase/terms/sprintf.rb +2 -2
  94. data/lib/factbase/terms/sum.rb +1 -1
  95. data/lib/factbase/terms/times.rb +1 -1
  96. data/lib/factbase/terms/to_float.rb +1 -1
  97. data/lib/factbase/terms/to_integer.rb +1 -1
  98. data/lib/factbase/terms/to_string.rb +1 -1
  99. data/lib/factbase/terms/to_time.rb +1 -1
  100. data/lib/factbase/terms/traced.rb +1 -1
  101. data/lib/factbase/terms/type.rb +1 -1
  102. data/lib/factbase/terms/undef.rb +2 -2
  103. data/lib/factbase/terms/unique.rb +1 -1
  104. data/lib/factbase/terms/when.rb +1 -1
  105. data/lib/factbase/terms/zero.rb +1 -1
  106. data/lib/factbase/to_json.rb +2 -2
  107. data/lib/factbase/to_xml.rb +2 -2
  108. data/lib/factbase/to_yaml.rb +2 -2
  109. data/lib/factbase/version.rb +3 -3
  110. data/lib/factbase.rb +2 -2
  111. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 515345c86598dcc29f0795b9bb64fe31fc770469f596185103bc3ae62b95bec9
4
- data.tar.gz: adcf851edc23a66a4297bf4888ae54987431cc853f3157d751bbb57f5a89ef01
3
+ metadata.gz: aba67403ce0d88eedb16e819e8000c675c43e45908d9e937a08394aa27b76ce2
4
+ data.tar.gz: 955fe52ce4c8d8fca527f3471fee46d73f1f56a85b7778440df964e26de2d62f
5
5
  SHA512:
6
- metadata.gz: 37488e2dd8a395abb1ddfb4700fa794592d3ce910981f4c468c2f6b0ebdfa703400873f5caea6cdee42a62971ae88009956fb6cb38b3bc5d8eebca698bdf4367
7
- data.tar.gz: 7798feb2f2e05fb795e6cfffe3a3311d6e2867fd4b21d1ffb5f1e03aa818bacae442faf47a507a99a402081d5048146be883685adcef62a9ace4ef85ac4ee90e
6
+ metadata.gz: 7fb94faf1459fc521be7d810831c870530898605664f8c2ae74fb15c66846b4c84957e63cb593e9c2f8d6c21f5584227d057a08e51d618994aaeeb3e4e427505
7
+ data.tar.gz: 8ca685bc0115e1bc8ab7aa478218c179eb898cfb6a1fd7d38b8b082c3bfd479f48dd72ef82e06700cd6547bd0673d596d885521f8d43e92da879e9b01ebc2d90
data/Gemfile CHANGED
@@ -1,18 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  source 'https://rubygems.org'
7
7
  gemspec
8
8
 
9
9
  gem 'benchmark', '~>0.5', require: false
10
- gem 'minitest', '~>5.25', require: false
10
+ gem 'minitest', '~>6.0', require: false
11
11
  gem 'minitest-reporters', '~>1.7', require: false
12
12
  gem 'os', '~>1.1', require: false
13
13
  gem 'qbash', '~>0.4', require: false
14
14
  gem 'rake', '~>13.2', require: false
15
- gem 'rdoc', '6.17.0', require: false # GPL
15
+ gem 'rdoc', '7.1.0', require: false # GPL
16
16
  gem 'rubocop', '~>1.74', require: false
17
17
  gem 'rubocop-minitest', '~>0.38', require: false
18
18
  gem 'rubocop-performance', '~>1.25', require: false
data/Gemfile.lock CHANGED
@@ -21,46 +21,48 @@ GEM
21
21
  backtrace (0.4.1)
22
22
  benchmark (0.5.0)
23
23
  builder (3.3.0)
24
- concurrent-ruby (1.3.5)
25
- date (3.5.0)
24
+ concurrent-ruby (1.3.6)
25
+ date (3.5.1)
26
26
  decoor (0.1.0)
27
27
  docile (1.4.1)
28
- elapsed (0.2.0)
28
+ elapsed (0.2.2)
29
29
  loog (~> 0.6)
30
30
  tago (~> 0.1)
31
31
  ellipsized (0.3.0)
32
- erb (6.0.0)
33
- json (2.17.1)
32
+ erb (6.0.1)
33
+ json (2.18.0)
34
34
  language_server-protocol (3.17.0.5)
35
35
  lint_roller (1.1.0)
36
36
  logger (1.7.0)
37
- loog (0.6.1)
37
+ loog (0.7.2)
38
+ ellipsized
38
39
  logger (~> 1.0)
39
- minitest (5.27.0)
40
+ minitest (6.0.1)
41
+ prism (~> 1.5)
40
42
  minitest-reporters (1.7.1)
41
43
  ansi
42
44
  builder
43
45
  minitest (>= 5.0)
44
46
  ruby-progressbar
45
- nokogiri (1.18.10-arm64-darwin)
47
+ nokogiri (1.19.0-arm64-darwin)
46
48
  racc (~> 1.4)
47
- nokogiri (1.18.10-x64-mingw-ucrt)
49
+ nokogiri (1.19.0-x64-mingw-ucrt)
48
50
  racc (~> 1.4)
49
- nokogiri (1.18.10-x86_64-darwin)
51
+ nokogiri (1.19.0-x86_64-darwin)
50
52
  racc (~> 1.4)
51
- nokogiri (1.18.10-x86_64-linux-gnu)
53
+ nokogiri (1.19.0-x86_64-linux-gnu)
52
54
  racc (~> 1.4)
53
55
  os (1.1.4)
54
56
  others (0.1.1)
55
57
  parallel (1.27.0)
56
- parser (3.3.10.0)
58
+ parser (3.3.10.1)
57
59
  ast (~> 2.4.1)
58
60
  racc
59
- prism (1.6.0)
60
- psych (5.2.6)
61
+ prism (1.8.0)
62
+ psych (5.3.1)
61
63
  date
62
64
  stringio
63
- qbash (0.4.8)
65
+ qbash (0.6.0)
64
66
  backtrace (> 0)
65
67
  elapsed (> 0)
66
68
  loog (> 0)
@@ -68,13 +70,13 @@ GEM
68
70
  racc (1.8.1)
69
71
  rainbow (3.1.1)
70
72
  rake (13.3.1)
71
- rdoc (6.17.0)
73
+ rdoc (7.1.0)
72
74
  erb
73
75
  psych (>= 4.0.0)
74
76
  tsort
75
77
  regexp_parser (2.11.3)
76
78
  rexml (3.4.4)
77
- rubocop (1.81.7)
79
+ rubocop (1.82.1)
78
80
  json (~> 2.3)
79
81
  language_server-protocol (~> 3.17.0.2)
80
82
  lint_roller (~> 1.1.0)
@@ -82,12 +84,12 @@ GEM
82
84
  parser (>= 3.3.0.2)
83
85
  rainbow (>= 2.2.2, < 4.0)
84
86
  regexp_parser (>= 2.9.3, < 3.0)
85
- rubocop-ast (>= 1.47.1, < 2.0)
87
+ rubocop-ast (>= 1.48.0, < 2.0)
86
88
  ruby-progressbar (~> 1.7)
87
89
  unicode-display_width (>= 2.4.0, < 4.0)
88
- rubocop-ast (1.48.0)
90
+ rubocop-ast (1.49.0)
89
91
  parser (>= 3.3.7.2)
90
- prism (~> 1.4)
92
+ prism (~> 1.7)
91
93
  rubocop-minitest (0.38.2)
92
94
  lint_roller (~> 1.1)
93
95
  rubocop (>= 1.75.0, < 2.0)
@@ -110,15 +112,15 @@ GEM
110
112
  simplecov-html (0.13.2)
111
113
  simplecov_json_formatter (0.1.4)
112
114
  stackprof (0.2.27)
113
- stringio (3.1.9)
114
- tago (0.4.0)
115
+ stringio (3.2.0)
116
+ tago (0.6.0)
115
117
  threads (0.5.0)
116
118
  backtrace (~> 0)
117
119
  concurrent-ruby (~> 1.0)
118
120
  tsort (0.2.0)
119
121
  unicode-display_width (3.2.0)
120
122
  unicode-emoji (~> 4.1)
121
- unicode-emoji (4.1.0)
123
+ unicode-emoji (4.2.0)
122
124
  yaml (0.4.0)
123
125
  yard (0.9.38)
124
126
 
@@ -136,12 +138,12 @@ PLATFORMS
136
138
  DEPENDENCIES
137
139
  benchmark (~> 0.5)
138
140
  factbase!
139
- minitest (~> 5.25)
141
+ minitest (~> 6.0)
140
142
  minitest-reporters (~> 1.7)
141
143
  os (~> 1.1)
142
144
  qbash (~> 0.4)
143
145
  rake (~> 13.2)
144
- rdoc (= 6.17.0)
146
+ rdoc (= 7.1.0)
145
147
  rubocop (~> 1.74)
146
148
  rubocop-minitest (~> 0.38)
147
149
  rubocop-performance (~> 1.25)
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/LICENSES/MIT.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  (The MIT License)
2
2
 
3
- Copyright (c) 2024-2025 Yegor Bugayenko
3
+ Copyright (c) 2024-2026 Yegor Bugayenko
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the 'Software'), to deal
data/README.md CHANGED
@@ -27,7 +27,7 @@ f = fb.insert
27
27
  f.kind = 'book'
28
28
  f.title = 'Object Thinking'
29
29
  fb.query('(eq kind "book")').each do |f|
30
- f.seen = true
30
+ f.seen = Time.now
31
31
  end
32
32
  fb.insert
33
33
  fb.query('(not (exists seen))').each do |f|
@@ -210,7 +210,7 @@ This is the result of the benchmark:
210
210
 
211
211
  <!-- benchmark_begin -->
212
212
  ```text
213
-
213
+
214
214
  query all facts from an empty factbase 0.00
215
215
  insert 20000 facts 0.67
216
216
  export 20000 facts 0.02
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'os'
data/factbase.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'English'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'others'
@@ -9,7 +9,7 @@ require_relative '../factbase'
9
9
  # Accumulator of props, a decorator of +Factbase::Fact+.
10
10
  #
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Factbase::Accum
15
15
  # Ctor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'others'
@@ -9,17 +9,15 @@ require_relative '../../factbase'
9
9
  # A single fact in a factbase, which is sensitive to changes.
10
10
  #
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Factbase::CachedFact
15
15
  # Ctor.
16
16
  # @param [Factbase::Fact] origin The original fact
17
17
  # @param [Hash] cache Cache of queries (to clean it on attribute addition)
18
- # @param [Boolean] fresh True if this is a newly inserted fact (not yet in cache)
19
- def initialize(origin, cache, fresh: false)
18
+ def initialize(origin, cache, **)
20
19
  @origin = origin
21
20
  @cache = cache
22
- @fresh = fresh
23
21
  end
24
22
 
25
23
  def to_s
@@ -28,9 +26,7 @@ class Factbase::CachedFact
28
26
 
29
27
  # When a method is missing, this method is called.
30
28
  others do |*args|
31
- # Only clear cache when modifying properties on existing (non-fresh) facts
32
- # Fresh facts are not in the cache yet, so modifications don't affect it
33
- @cache.clear if args[0].to_s.end_with?('=') && !@fresh
29
+ @cache.clear if args[0].to_s.end_with?('=')
34
30
  @origin.send(*args)
35
31
  end
36
32
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'decoor'
@@ -13,7 +13,7 @@ require_relative 'cached_term'
13
13
  # A factbase with a cache.
14
14
  #
15
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
16
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
17
17
  # License:: MIT
18
18
  class Factbase::CachedFactbase
19
19
  decoor(:origin)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../../factbase'
@@ -9,7 +9,7 @@ require_relative 'cached_fact'
9
9
  # Query with a cache, a decorator of another query.
10
10
  #
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Factbase::CachedQuery
15
15
  include Enumerable
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../../factbase'
@@ -8,7 +8,7 @@ require_relative '../../factbase'
8
8
  # Term with a cache.
9
9
  #
10
10
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
11
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
11
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
12
12
  # License:: MIT
13
13
  module Factbase::CachedTerm
14
14
  # Does it match the fact?
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # A churn.
7
7
  #
8
8
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
9
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
9
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
10
10
  # License:: MIT
11
11
  class Factbase::Churn
12
12
  attr_reader :inserted, :deleted, :added
data/lib/factbase/fact.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'json'
@@ -25,7 +25,7 @@ require_relative '../factbase'
25
25
  # It is NOT thread-safe!
26
26
  #
27
27
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
28
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
28
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
29
29
  # License:: MIT
30
30
  class Factbase::Fact
31
31
  # Ctor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'ellipsized'
@@ -17,7 +17,7 @@ require_relative '../factbase'
17
17
  # puts Factbase::FactAsYaml.new(f).to_s
18
18
  #
19
19
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
20
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
20
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
21
21
  # License:: MIT
22
22
  class Factbase::FactAsYaml
23
23
  # Constructor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../factbase'
@@ -8,7 +8,7 @@ require_relative '../factbase'
8
8
  # Make maps suitable for printing.
9
9
  #
10
10
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
11
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
11
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
12
12
  # License:: MIT
13
13
  class Factbase::Flatten
14
14
  # Constructor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'decoor'
@@ -11,7 +11,7 @@ require_relative 'syntax'
11
11
  # A decorator of a Factbase, that terminates long-running queries.
12
12
  #
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
14
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
14
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
15
15
  # License:: MIT
16
16
  class Factbase::Impatient
17
17
  # Ctor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'absent'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'and'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'eq'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'exists'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'others'
@@ -9,7 +9,7 @@ require_relative '../../factbase'
9
9
  # A single fact in a factbase, which is sensitive to changes.
10
10
  #
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Factbase::IndexedFact
15
15
  # Ctor.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'decoor'
@@ -13,7 +13,7 @@ require_relative 'indexed_term'
13
13
  # A factbase with an index.
14
14
  #
15
15
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
16
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
16
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
17
17
  # License:: MIT
18
18
  class Factbase::IndexedFactbase
19
19
  decoor(:origin)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'gt'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'lt'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'not'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'one'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'or'.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../../factbase'
@@ -9,7 +9,7 @@ require_relative 'indexed_fact'
9
9
  # Query with an index, a decorator of another query.
10
10
  #
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
12
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
12
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
13
13
  # License:: MIT
14
14
  class Factbase::IndexedQuery
15
15
  include Enumerable
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'tago'
@@ -19,7 +19,7 @@ require_relative '../indexed/indexed_unique'
19
19
  # Term with an index.
20
20
  #
21
21
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
22
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
22
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
23
23
  # License:: MIT
24
24
  module Factbase::IndexedTerm
25
25
  # Reduces the provided list of facts (maps) to a smaller array, if it's possible.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  # Indexed term 'unique'.
data/lib/factbase/inv.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'others'
@@ -20,7 +20,7 @@ require_relative '../factbase'
20
20
  # one is the fact just touched.
21
21
  #
22
22
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
23
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
23
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  class Factbase::Inv
26
26
  decoor(:fb)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../factbase'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../factbase'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../factbase'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require_relative '../factbase'
@@ -8,7 +8,7 @@ require_relative '../factbase'
8
8
  # A decorator of a Factbase, that forbids most of the operations.
9
9
  #
10
10
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
11
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
11
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
12
12
  # License:: MIT
13
13
  class Factbase::Light
14
14
  def initialize(fb)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
3
+ # SPDX-FileCopyrightText: Copyright (c) 2024-2026 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
6
  require 'decoor'
@@ -12,7 +12,7 @@ require_relative 'syntax'
12
12
  # A decorator of a Factbase, that logs all operations.
13
13
  #
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
15
- # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
15
+ # Copyright:: Copyright (c) 2024-2026 Yegor Bugayenko
16
16
  # License:: MIT
17
17
  class Factbase::Logged
18
18
  # Ctor.