factbase 0.19.0 → 0.19.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c20d4add4664149fc5c070ec64321a79c8ac07ef81c69ae2b64bac1e9fd0c4e9
4
- data.tar.gz: ff9a8f121d9cfafa6ad97a634c79fc2ec834a07ee0d17042eb3fc5fa8c529501
3
+ metadata.gz: 7bf5fda6f7bf7cfd9e62897b505924688938a0acfb326e0533ad80e9be8e01cd
4
+ data.tar.gz: 10f2a249d9e3eb5bcc560a6cf07606cec54a6d35d325c00c7c6ee17075cc92f3
5
5
  SHA512:
6
- metadata.gz: 3f93283308d6f15766fca09f253da85145efc28975e51259ee88f0954cc6a7f584700de2ff604478bd5a48f1c86153243949a6280732a466412a739f38e9a1e2
7
- data.tar.gz: e21602f7612821dd2389e831056389900f62a3ef3b1bf998f6ebbe722cfc9684357383c754ad0556a346534cf7a6bc76489706e0f0f58ea23336a918be71b442
6
+ metadata.gz: bef44475330c1835b4822894ca5460427e47271b60927d7dc920889dc77d5eb2249f77f334a9c283d87df137342642c10042ea66b41ad2de71ddfeb4a17443f9
7
+ data.tar.gz: 0b5d3cbfff4ac2479ea5887fae0e6b545dfe5b1dc5e008503f04a517eb6922a1604864d6348864515a87c2518ab3c227a62fa34a35659cffee73c97be7209dbd
data/Gemfile.lock CHANGED
@@ -36,7 +36,7 @@ GEM
36
36
  logger (1.7.0)
37
37
  loog (0.6.1)
38
38
  logger (~> 1.0)
39
- minitest (5.26.2)
39
+ minitest (5.27.0)
40
40
  minitest-reporters (1.7.1)
41
41
  ansi
42
42
  builder
@@ -42,8 +42,13 @@ class Factbase::IndexedAnd
42
42
  end
43
43
  end
44
44
  )
45
- j = tuples.map { |t| entry[:index][t] || [] }.reduce(&:|)
46
- r = (maps & []) | j
45
+ j = tuples.flat_map { |t| entry[:index][t] || [] }.uniq(&:object_id)
46
+ r =
47
+ if maps.respond_to?(:inserted)
48
+ Factbase::Taped.new(j, inserted: maps.inserted, deleted: maps.deleted, added: maps.added)
49
+ else
50
+ j
51
+ end
47
52
  else
48
53
  @term.operands.each do |o|
49
54
  n = o.predict(maps, fb, params)
@@ -36,11 +36,11 @@ class Factbase::IndexedEq
36
36
  else
37
37
  [@term.operands[1]]
38
38
  end
39
- if vv.empty?
40
- (maps & [])
39
+ j = vv.flat_map { |v| entry[:index][v] || [] }.uniq(&:object_id)
40
+ if maps.respond_to?(:inserted)
41
+ Factbase::Taped.new(j, inserted: maps.inserted, deleted: maps.deleted, added: maps.added)
41
42
  else
42
- j = vv.map { |v| entry[:index][v] || [] }.reduce(&:|)
43
- (maps & []) | j
43
+ j
44
44
  end
45
45
  end
46
46
 
@@ -49,8 +49,7 @@ class Factbase::IndexedFactbase
49
49
  def query(term, maps = nil)
50
50
  term = to_term(term) if term.is_a?(String)
51
51
  q = @origin.query(term, maps)
52
- q = Factbase::IndexedQuery.new(q, @idx, self) if term.abstract?
53
- q
52
+ Factbase::IndexedQuery.new(q, @idx, self)
54
53
  end
55
54
 
56
55
  # Run an ACID transaction.
@@ -46,7 +46,7 @@ class Factbase::IndexedQuery
46
46
  # @param [Factbase] fb The factbase
47
47
  # @param [Hash] params Optional params accessible in the query via the "$" symbol
48
48
  # @return [String|Integer|Float|Time|Array|NilClass] The value evaluated
49
- def one(fb = @fb, params = nil)
49
+ def one(fb = @fb, params = {})
50
50
  @origin.one(fb, params)
51
51
  end
52
52
 
@@ -54,7 +54,8 @@ class Factbase::IndexedQuery
54
54
  # @param [Factbase] fb The factbase
55
55
  # @return [Integer] Total number of facts deleted
56
56
  def delete!(fb = @fb)
57
+ result = @origin.delete!(fb)
57
58
  @idx.clear
58
- @origin.delete!(fb)
59
+ result
59
60
  end
60
61
  end
@@ -9,5 +9,5 @@
9
9
  # License:: MIT
10
10
  class Factbase
11
11
  # Current version of the gem (changed by .rultor.yml on every release)
12
- VERSION = '0.19.0' unless const_defined?(:VERSION)
12
+ VERSION = '0.19.1' unless const_defined?(:VERSION)
13
13
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.0
4
+ version: 0.19.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko