factbase 0.0.54 → 0.0.55
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/factbase/flatten.rb +1 -1
- data/lib/factbase.rb +2 -1
- data/test/factbase/test_flatten.rb +6 -0
- data/test/test_factbase.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f23a2ee8985f8912a626f1c74153b90f6a6c6f19f60c271c582e7227a7c3cde2
|
4
|
+
data.tar.gz: 5142b0ebef7e0475e7a4c1f7344decf6e3cdb421d47f7174dea4dcb19aeecd44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 618aeddaa9b2a25c10f11cc9a4eb070bf5469b8e3d79d94135401166f5e42c0b7161365e4bc8b6eb6b2853a7f8cb57a873d77de3f3b83b0913d9c6e10d4cc07e
|
7
|
+
data.tar.gz: f6666996b7b015706fda6aea48ab15dcf8bcbb130259f80983890551be9c58253a4c8cd499850d4b79700a52c2e524fde9a66d2f053a65b962987e9e77fd0e40
|
data/lib/factbase/flatten.rb
CHANGED
@@ -38,7 +38,7 @@ class Factbase::Flatten
|
|
38
38
|
# @return [Array<HashMap>] The hashmaps, but improved
|
39
39
|
def it
|
40
40
|
@maps
|
41
|
-
.sort_by { |m| m[@sorter] }
|
41
|
+
.sort_by { |m| m[@sorter] || [] }
|
42
42
|
.map { |m| m.sort.to_h }
|
43
43
|
.map { |m| m.transform_values { |v| v.size == 1 ? v[0] : v } }
|
44
44
|
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.0.
|
84
|
+
VERSION = '0.0.55'
|
85
85
|
|
86
86
|
# An exception that may be thrown in a transaction, to roll it back.
|
87
87
|
class Rollback < StandardError; end
|
@@ -214,6 +214,7 @@ class Factbase
|
|
214
214
|
#
|
215
215
|
# @param [Bytes] bytes Byte array to import
|
216
216
|
def import(bytes)
|
217
|
+
raise 'Empty input, cannot load a factbase' if bytes.empty?
|
217
218
|
@maps += Marshal.load(bytes)
|
218
219
|
end
|
219
220
|
end
|
@@ -36,4 +36,10 @@ class TestFlatten < Minitest::Test
|
|
36
36
|
assert(42, to[1]['b'])
|
37
37
|
assert(2, to[2]['c'].size)
|
38
38
|
end
|
39
|
+
|
40
|
+
def test_without_sorter
|
41
|
+
maps = [{ 'b' => [42], 'i' => [44] }, { 'a' => 33 }]
|
42
|
+
to = Factbase::Flatten.new(maps, 'i').it
|
43
|
+
assert(33, to[0]['a'])
|
44
|
+
end
|
39
45
|
end
|
data/test/test_factbase.rb
CHANGED
@@ -90,6 +90,18 @@ class TestFactbase < Minitest::Test
|
|
90
90
|
assert_equal(1, f2.query('(eq foo 42)').each.to_a.count)
|
91
91
|
end
|
92
92
|
|
93
|
+
def test_reads_from_empty_file
|
94
|
+
fb = Factbase.new
|
95
|
+
Tempfile.open do |f|
|
96
|
+
File.binwrite(f.path, '')
|
97
|
+
assert(
|
98
|
+
assert_raises do
|
99
|
+
fb.import(File.binread(f.path))
|
100
|
+
end.message.include?('cannot load a factbase')
|
101
|
+
)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
93
105
|
def test_empty_or_not
|
94
106
|
fb = Factbase.new
|
95
107
|
assert_equal(0, fb.size)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: factbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.55
|
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-06-
|
11
|
+
date: 2024-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|