factbase 0.0.19 → 0.0.20

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: bf6bf5824dca2b686d94a18b4341e2fbcd08adf286e228043418c98e2633673a
4
- data.tar.gz: e37dcd3ad0fc483ed24586e353bc48d9afc6ec42384ef39f0cab9d30a85ede93
3
+ metadata.gz: fd5f2d977ba317805b5306d1a7a04c6f26e8cd6be228c254fdcd6ae322c9ecfb
4
+ data.tar.gz: a0f30e312586a23952f0df00a2ddf16de2818cafca8043d03acce21a0fbfa29b
5
5
  SHA512:
6
- metadata.gz: 00d59f7a614600ba776343545188b3ba4a0ea5f6f4470da577cd7506b6286a1f28f6232c03d47425d235132d9d1d694d5a212dcfd0ffcf3096269e1da900b6ab
7
- data.tar.gz: 4572157aab7d5d5844905a1bee96e002233efdbf2667c245438c746f765c8c9aa41ede733c6c24ec9fa01728304a2e9b8d5e18d4d46ac0a04bd8d8666d70178c
6
+ metadata.gz: 056656b1a3034c5e5e7025de734767d5c42957ba02e2f276a55a4257f4adaf3e01bf15b28488a8fd7727718f9d36980872d80cb5f63c0cf0a85675c93d6e712c
7
+ data.tar.gz: 1639980c0f9de4db14857068f97f5b3931027aa1ec49b3bdbe402828c017dc4c8b0bcd0469f6d17f0329cd3008748e06d044a0448fef4f2af4f6dce6e930f4c6
data/factbase.gemspec CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
27
27
  s.required_ruby_version = '>=2.3'
28
28
  s.name = 'factbase'
29
- s.version = '0.0.19'
29
+ s.version = '0.0.20'
30
30
  s.license = 'MIT'
31
31
  s.summary = 'Factbase'
32
32
  s.description = 'Fact base in memory and on disc'
@@ -109,19 +109,34 @@ class Factbase::Looged
109
109
  end
110
110
 
111
111
  def each(&)
112
- r = @query.each(&)
113
- raise 'Invalid return from query.each' unless r.is_a?(Integer)
114
- if r.zero?
115
- @loog.debug("Nothing found by '#{@expr}'")
112
+ if block_given?
113
+ r = @query.each(&)
114
+ raise ".each of #{@query.class} returned #{r.class}" unless r.is_a?(Integer)
115
+ if r.zero?
116
+ @loog.debug("Nothing found by '#{@expr}'")
117
+ else
118
+ @loog.debug("Found #{r} fact(s) by '#{@expr}'")
119
+ end
120
+ r
116
121
  else
117
- @loog.debug("Found #{r} fact(s) by '#{@expr}'")
122
+ array = []
123
+ # rubocop:disable Style/MapIntoArray
124
+ @query.each do |f|
125
+ array << f
126
+ end
127
+ # rubocop:enable Style/MapIntoArray
128
+ if array.empty?
129
+ @loog.debug("Nothing found by '#{@expr}'")
130
+ else
131
+ @loog.debug("Found #{array.size} fact(s) by '#{@expr}'")
132
+ end
133
+ array
118
134
  end
119
- r
120
135
  end
121
136
 
122
137
  def delete!
123
138
  r = @query.delete!
124
- raise 'Invalid return from query.delete!' unless r.is_a?(Integer)
139
+ raise ".delete! of #{@query.class} returned #{r.class}" unless r.is_a?(Integer)
125
140
  if r.zero?
126
141
  @loog.debug("Nothing deleted by '#{@expr}'")
127
142
  else
@@ -51,6 +51,18 @@ class TestLooged < Minitest::Test
51
51
  assert_equal(2, Factbase::Looged.new(fb, Loog::NULL).query('()').each(&:to_s))
52
52
  end
53
53
 
54
+ def test_returns_int_when_empty
55
+ fb = Factbase.new
56
+ assert_equal(0, Factbase::Looged.new(fb, Loog::NULL).query('()').each(&:to_s))
57
+ end
58
+
59
+ def test_logs_when_enumerator
60
+ fb = Factbase::Looged.new(Factbase.new, Loog::NULL)
61
+ assert_equal(0, fb.query('()').each.to_a.size)
62
+ fb.insert
63
+ assert_equal(1, fb.query('()').each.to_a.size)
64
+ end
65
+
54
66
  def test_proper_logging
55
67
  log = Loog::Buffer.new
56
68
  fb = Factbase::Looged.new(Factbase.new, log)
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.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko