fbe 0.21.3 → 0.22.0
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/fbe/middleware/sqlite_store.rb +5 -3
- data/lib/fbe/octo.rb +2 -1
- data/lib/fbe.rb +1 -1
- data/test/fbe/middleware/test_sqlite_store.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5a39208fa372c54abc221588d0a96f234cfd7ba3c56a65fa1c9d71a5eb119e9
|
4
|
+
data.tar.gz: 97ef98fd304ce75ec5558a8915d3a8f95482cf0d203d3ede0882021b7bc036ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e17fbbbc95d55c4e0a9ec6611ba5ab1fcee8e42fb9e126a3d46bdb3e20bbad7d0c140d58f519275f71ce11d4a2d6399a211868638e208324b42dc5e577a988e1
|
7
|
+
data.tar.gz: d1fac9af3a2e773f23ad7a9392499feb01af4b7786654cf2fdb7140744e2fec4386d5ce45b49ea37432a9f31b9d9ca97fcec3b7c8be5b638b833ce6215b898f0
|
data/Gemfile.lock
CHANGED
@@ -51,8 +51,9 @@ class Fbe::Middleware::SqliteStore
|
|
51
51
|
# @param version [String] Version identifier for cache compatibility
|
52
52
|
# @param loog [Loog] Logger instance (optional, defaults to Loog::NULL)
|
53
53
|
# @param maxsize [Integer] Maximum database size in bytes (optional, defaults to 10MB)
|
54
|
+
# @param maxvsize [Integer] Maximum size in bytes of a single value (optional, defaults to 10Kb)
|
54
55
|
# @raise [ArgumentError] If path is nil/empty, directory doesn't exist, or version is nil/empty
|
55
|
-
def initialize(path, version, loog: Loog::NULL, maxsize: 10 * 1024 * 1024)
|
56
|
+
def initialize(path, version, loog: Loog::NULL, maxsize: 10 * 1024 * 1024, maxvsize: 10 * 1024)
|
56
57
|
raise ArgumentError, 'Database path cannot be nil or empty' if path.nil? || path.empty?
|
57
58
|
dir = File.dirname(path)
|
58
59
|
raise ArgumentError, "Directory #{dir} does not exist" unless File.directory?(dir)
|
@@ -61,6 +62,7 @@ class Fbe::Middleware::SqliteStore
|
|
61
62
|
@version = version
|
62
63
|
@loog = loog
|
63
64
|
@maxsize = maxsize
|
65
|
+
@maxvsize = maxvsize
|
64
66
|
end
|
65
67
|
|
66
68
|
# Read a value from the cache.
|
@@ -91,10 +93,10 @@ class Fbe::Middleware::SqliteStore
|
|
91
93
|
def write(key, value)
|
92
94
|
return if value.is_a?(Array) && value.any? do |vv|
|
93
95
|
req = JSON.parse(vv[0])
|
94
|
-
req['
|
96
|
+
req['method'] != 'get'
|
95
97
|
end
|
96
98
|
value = JSON.dump(value)
|
97
|
-
return if value.bytesize >
|
99
|
+
return if value.bytesize > @maxvsize
|
98
100
|
perform do |t|
|
99
101
|
t.execute(<<~SQL, [key, value, Time.now.utc.iso8601])
|
100
102
|
INSERT INTO cache(key, value, touched_at) VALUES(?1, ?2, ?3)
|
data/lib/fbe/octo.rb
CHANGED
@@ -83,7 +83,8 @@ def Fbe.octo(options: $options, global: $global, loog: $loog)
|
|
83
83
|
)
|
84
84
|
if options.sqlite_cache
|
85
85
|
maxsize = options.sqlite_cache_maxsize || (10 * 1024 * 1024)
|
86
|
-
|
86
|
+
maxvsize = options.sqlite_cache_maxxsize || (10 * 1024)
|
87
|
+
store = Fbe::Middleware::SqliteStore.new(options.sqlite_cache, Fbe::VERSION, loog:, maxsize:, maxvsize:)
|
87
88
|
loog.info(
|
88
89
|
"Using HTTP cache in SQLite file: #{store.path} (" \
|
89
90
|
"#{File.exist?(store.path) ? "#{File.size(store.path)} bytes" : 'file is absent'}, " \
|
data/lib/fbe.rb
CHANGED
@@ -143,8 +143,8 @@ class SqliteStoreTest < Fbe::Test
|
|
143
143
|
Fbe::Middleware::SqliteStore.new(f, '0.0.1').then do |store|
|
144
144
|
store.write('a', 'a' * 9_997)
|
145
145
|
store.write('b', 'b' * 9_998)
|
146
|
-
store.write('c', 'c' *
|
147
|
-
store.write('d', 'd' *
|
146
|
+
store.write('c', 'c' * 19_999)
|
147
|
+
store.write('d', 'd' * 30_000)
|
148
148
|
assert_equal('a' * 9_997, store.read('a'))
|
149
149
|
assert_equal('b' * 9_998, store.read('b'))
|
150
150
|
assert_nil(store.read('c'))
|