turso_libsql 0.0.1 → 0.1.2
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de0be6e4a1939210654efb34f3d5b4bd11ffc6f0e147eb834be31f98a83b9789
|
4
|
+
data.tar.gz: 1dbc0222a2dbe3f61a2583a4751ce937535abfa6b6923d4664451920c612e940
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 378198f7635a719b402a0e3f4e45602c37372ce75f079dc22e97b29f39b6487c4f04deab2b259b7482d9dc4ba3291f20ca29bb21a1edfd88490d5d549d8b96ce
|
7
|
+
data.tar.gz: c71d6809b090d469faa2f3432d6a5c99dc850b81028fa29a3696c4755c4268127c3d7208ce1f211860a21718d86666c7621f6fb1933a5483b230e719cc3de957
|
Binary file
|
Binary file
|
Binary file
|
data/lib/libsql.rb
CHANGED
@@ -5,8 +5,9 @@ module CLibsql # :nodoc:
|
|
5
5
|
|
6
6
|
file =
|
7
7
|
case RUBY_PLATFORM
|
8
|
-
in /darwin/ then '
|
8
|
+
in /arm64-darwin/ then 'aarch64-apple-darwin/liblibsql.dylib'
|
9
9
|
in /x86_64-linux/ then 'x86_64-unknown-linux-gnu/liblibsql.so'
|
10
|
+
in /aarch64-linux/ then 'aarch64-unknown-linux-gnu/liblibsql.so'
|
10
11
|
in /arm64-linux/ then 'aarch64-unknown-linux-gnu/liblibsql.so'
|
11
12
|
end
|
12
13
|
|
@@ -40,7 +41,7 @@ module CLibsql # :nodoc:
|
|
40
41
|
def self.init(desc) = CLibsql.libsql_database_init(desc).tap(&:verify)
|
41
42
|
def sync = CLibsql.libsql_database_sync(self).tap(&:verify)
|
42
43
|
def connect = CLibsql.libsql_database_connect(self).tap(&:verify)
|
43
|
-
def deinit = CLibsql.libsql_database_deinit
|
44
|
+
def deinit = CLibsql.libsql_database_deinit(self)
|
44
45
|
end
|
45
46
|
|
46
47
|
class Connection < FFI::Struct # :nodoc:
|
@@ -78,7 +79,9 @@ module CLibsql # :nodoc:
|
|
78
79
|
def bind_named(name, value) = CLibsql.libsql_statement_bind_named(self, name, value).tap(&:verify)
|
79
80
|
def query = CLibsql.libsql_statement_query(self).tap(&:verify)
|
80
81
|
def execute = CLibsql.libsql_statement_execute(self).tap(&:verify)
|
81
|
-
def
|
82
|
+
def column_count = CLibsql.libsql_statement_column_count(self)
|
83
|
+
def reset = CLibsql.libsql_statement_reset(self)
|
84
|
+
def deinit = CLibsql.libsql_statement_deinit(self)
|
82
85
|
end
|
83
86
|
|
84
87
|
class Rows < FFI::Struct # :nodoc:
|
@@ -89,6 +92,8 @@ module CLibsql # :nodoc:
|
|
89
92
|
|
90
93
|
def next = CLibsql.libsql_rows_next(self).tap(&:verify)
|
91
94
|
def deinit = CLibsql.libsql_rows_deinit(self)
|
95
|
+
def name_at(index) = CLibsql.libsql_rows_column_name(self, index)
|
96
|
+
def length = CLibsql.libsql_rows_column_length(self)
|
92
97
|
end
|
93
98
|
|
94
99
|
class Row < FFI::Struct # :nodoc:
|
@@ -158,7 +163,7 @@ module CLibsql # :nodoc:
|
|
158
163
|
s
|
159
164
|
end
|
160
165
|
|
161
|
-
def deinit = CLibsql.libsql_slice_deinit
|
166
|
+
def deinit = CLibsql.libsql_slice_deinit(self)
|
162
167
|
end
|
163
168
|
|
164
169
|
class ValueUnion < FFI::Union # :nodoc:
|
@@ -191,8 +196,6 @@ module CLibsql # :nodoc:
|
|
191
196
|
end
|
192
197
|
|
193
198
|
class Config < FFI::Struct # :nodoc:
|
194
|
-
include Verify
|
195
|
-
|
196
199
|
layout logger: :pointer,
|
197
200
|
version: :pointer
|
198
201
|
end
|
@@ -216,8 +219,12 @@ module CLibsql # :nodoc:
|
|
216
219
|
attach_function :libsql_statement_bind_named, [Statement.by_value, :string, Value.by_value], Bind.by_value
|
217
220
|
attach_function :libsql_statement_query, [Statement.by_value], Rows.by_value
|
218
221
|
attach_function :libsql_statement_execute, [Statement.by_value], Execute.by_value
|
222
|
+
attach_function :libsql_statement_column_count, [Statement.by_value], :size_t
|
223
|
+
attach_function :libsql_statement_reset, [Statement.by_value], :void
|
219
224
|
|
220
225
|
attach_function :libsql_rows_next, [Rows.by_value], Row.by_value
|
226
|
+
attach_function :libsql_rows_column_length, [Rows.by_value], :uint32
|
227
|
+
attach_function :libsql_rows_column_name, [Rows.by_value, :uint32], Slice.by_value
|
221
228
|
|
222
229
|
attach_function :libsql_row_empty, [Row.by_value], :bool
|
223
230
|
attach_function :libsql_row_value, [Row.by_value, :uint32], ResultValue.by_value
|
@@ -244,13 +251,15 @@ end
|
|
244
251
|
module Libsql
|
245
252
|
class Blob < String; end
|
246
253
|
|
254
|
+
class ClosedException < Exception; end
|
255
|
+
|
247
256
|
module Prepareable
|
248
|
-
def execute(sql, params = [])
|
249
|
-
prepare(sql) { |stmt| stmt.execute(params) }
|
257
|
+
def execute(sql, params = [], &block)
|
258
|
+
prepare(sql) { |stmt| stmt.execute(params, &block) }
|
250
259
|
end
|
251
260
|
|
252
|
-
def query(sql, params = [])
|
253
|
-
prepare(sql) { |stmt| stmt.query(params) }
|
261
|
+
def query(sql, params = [], &block)
|
262
|
+
prepare(sql) { |stmt| stmt.query(params, &block) }
|
254
263
|
end
|
255
264
|
end
|
256
265
|
|
@@ -262,11 +271,24 @@ module Libsql
|
|
262
271
|
end
|
263
272
|
|
264
273
|
def to_h = columns.zip(to_a).to_h
|
265
|
-
|
266
|
-
def
|
274
|
+
|
275
|
+
def length
|
276
|
+
raise ClosedException if closed?
|
277
|
+
|
278
|
+
@inner.length
|
279
|
+
end
|
280
|
+
|
281
|
+
def columns
|
282
|
+
raise ClosedException if closed?
|
283
|
+
|
284
|
+
(0...length).map { |i| @inner.name_at(i).to_s }
|
285
|
+
end
|
286
|
+
|
267
287
|
def each = (0...length).each { |i| yield self[i] }
|
268
288
|
|
269
289
|
def [](index)
|
290
|
+
raise ClosedException if closed?
|
291
|
+
|
270
292
|
case index
|
271
293
|
in Integer then @inner.value_at(index)[:ok].convert
|
272
294
|
in String
|
@@ -277,7 +299,16 @@ module Libsql
|
|
277
299
|
end
|
278
300
|
end
|
279
301
|
|
280
|
-
def close
|
302
|
+
def close
|
303
|
+
raise ClosedException if closed?
|
304
|
+
|
305
|
+
@inner.deinit
|
306
|
+
@inner = nil
|
307
|
+
end
|
308
|
+
|
309
|
+
def closed?
|
310
|
+
@inner.nil?
|
311
|
+
end
|
281
312
|
end
|
282
313
|
|
283
314
|
class Rows
|
@@ -287,11 +318,25 @@ module Libsql
|
|
287
318
|
@inner = inner
|
288
319
|
end
|
289
320
|
|
321
|
+
def column_count
|
322
|
+
raise ClosedException if closed?
|
323
|
+
|
324
|
+
@inner.length
|
325
|
+
end
|
326
|
+
|
327
|
+
def columns
|
328
|
+
raise ClosedException if closed?
|
329
|
+
|
330
|
+
(0...column_count).map { |i| @inner.name_at(i).to_s }
|
331
|
+
end
|
332
|
+
|
290
333
|
def to_a
|
291
334
|
map(&:to_h)
|
292
335
|
end
|
293
336
|
|
294
337
|
def next
|
338
|
+
raise ClosedException if closed?
|
339
|
+
|
295
340
|
row = @inner.next
|
296
341
|
Row.new row unless row.empty?
|
297
342
|
end
|
@@ -303,7 +348,16 @@ module Libsql
|
|
303
348
|
end
|
304
349
|
end
|
305
350
|
|
306
|
-
def close
|
351
|
+
def close
|
352
|
+
raise ClosedException if closed?
|
353
|
+
|
354
|
+
@inner.deinit
|
355
|
+
@inner = nil
|
356
|
+
end
|
357
|
+
|
358
|
+
def closed?
|
359
|
+
@inner.nil?
|
360
|
+
end
|
307
361
|
end
|
308
362
|
|
309
363
|
class Statement
|
@@ -312,6 +366,8 @@ module Libsql
|
|
312
366
|
end
|
313
367
|
|
314
368
|
def bind(params)
|
369
|
+
raise ClosedException if closed?
|
370
|
+
|
315
371
|
case params
|
316
372
|
in Array then params.each { |v| @inner.bind_value convert(v) }
|
317
373
|
in Hash
|
@@ -322,19 +378,44 @@ module Libsql
|
|
322
378
|
end
|
323
379
|
|
324
380
|
def execute(params = [])
|
381
|
+
raise ClosedException if closed?
|
382
|
+
|
325
383
|
bind params
|
326
|
-
@inner.execute
|
384
|
+
@inner.execute[:rows_changed]
|
327
385
|
end
|
328
386
|
|
329
387
|
def query(params = [])
|
388
|
+
raise ClosedException if closed?
|
389
|
+
|
330
390
|
bind params
|
331
391
|
rows = Rows.new @inner.query
|
332
392
|
return rows unless block_given?
|
333
393
|
|
334
|
-
begin yield rows ensure
|
394
|
+
begin yield rows ensure rows.close end
|
395
|
+
end
|
396
|
+
|
397
|
+
def column_count
|
398
|
+
raise ClosedException if closed?
|
399
|
+
|
400
|
+
@inner.column_count
|
335
401
|
end
|
336
402
|
|
337
|
-
def
|
403
|
+
def reset
|
404
|
+
raise ClosedException if closed?
|
405
|
+
|
406
|
+
@inner.reset
|
407
|
+
end
|
408
|
+
|
409
|
+
def close
|
410
|
+
raise ClosedException if closed?
|
411
|
+
|
412
|
+
@inner.deinit
|
413
|
+
@inner = nil
|
414
|
+
end
|
415
|
+
|
416
|
+
def closed?
|
417
|
+
@inner.nil?
|
418
|
+
end
|
338
419
|
|
339
420
|
private
|
340
421
|
|
@@ -357,16 +438,37 @@ module Libsql
|
|
357
438
|
end
|
358
439
|
|
359
440
|
def prepare(sql)
|
441
|
+
raise ClosedException if closed?
|
442
|
+
|
360
443
|
stmt = Statement.new @inner.prepare sql
|
361
444
|
return stmt unless block_given?
|
362
445
|
|
363
446
|
begin yield stmt ensure stmt.close end
|
364
447
|
end
|
365
448
|
|
366
|
-
def execute_batch(sql)
|
449
|
+
def execute_batch(sql)
|
450
|
+
raise ClosedException if closed?
|
451
|
+
|
452
|
+
@inner.execute_batch(sql)
|
453
|
+
end
|
454
|
+
|
455
|
+
def rollback
|
456
|
+
raise ClosedException if closed?
|
367
457
|
|
368
|
-
|
369
|
-
|
458
|
+
@inner.rollback
|
459
|
+
@inner = nil
|
460
|
+
end
|
461
|
+
|
462
|
+
def commit
|
463
|
+
raise ClosedException if closed?
|
464
|
+
|
465
|
+
@inner.commit
|
466
|
+
@inner = nil
|
467
|
+
end
|
468
|
+
|
469
|
+
def closed?
|
470
|
+
@inner.nil?
|
471
|
+
end
|
370
472
|
end
|
371
473
|
|
372
474
|
class Connection
|
@@ -377,6 +479,8 @@ module Libsql
|
|
377
479
|
end
|
378
480
|
|
379
481
|
def transaction
|
482
|
+
raise ClosedException if closed?
|
483
|
+
|
380
484
|
tx = Transaction.new @inner.transaction
|
381
485
|
return tx unless block_given?
|
382
486
|
|
@@ -392,6 +496,8 @@ module Libsql
|
|
392
496
|
end
|
393
497
|
|
394
498
|
def prepare(sql)
|
499
|
+
raise ClosedException if closed?
|
500
|
+
|
395
501
|
stmt = Statement.new @inner.prepare sql
|
396
502
|
|
397
503
|
return stmt unless block_given?
|
@@ -401,7 +507,16 @@ module Libsql
|
|
401
507
|
|
402
508
|
def execute_batch(sql) = @inner.execute_batch(sql)
|
403
509
|
|
404
|
-
def close
|
510
|
+
def close
|
511
|
+
raise ClosedException if closed?
|
512
|
+
|
513
|
+
@inner.deinit
|
514
|
+
@inner = nil
|
515
|
+
end
|
516
|
+
|
517
|
+
def closed?
|
518
|
+
@inner.nil?
|
519
|
+
end
|
405
520
|
end
|
406
521
|
|
407
522
|
class Database
|
@@ -423,18 +538,31 @@ module Libsql
|
|
423
538
|
end
|
424
539
|
|
425
540
|
def sync
|
541
|
+
raise ClosedException if closed?
|
542
|
+
|
426
543
|
@inner.sync
|
427
544
|
end
|
428
545
|
|
429
546
|
def connect
|
547
|
+
raise ClosedException if closed?
|
548
|
+
|
430
549
|
conn = Connection.new @inner.connect
|
431
550
|
|
432
|
-
return unless block_given?
|
551
|
+
return conn unless block_given?
|
433
552
|
|
434
553
|
begin yield conn ensure conn.close end
|
435
554
|
end
|
436
555
|
|
437
|
-
def close
|
556
|
+
def close
|
557
|
+
raise ClosedException if closed?
|
558
|
+
|
559
|
+
@inner.deinit
|
560
|
+
@inner = nil
|
561
|
+
end
|
562
|
+
|
563
|
+
def closed?
|
564
|
+
@inner.nil?
|
565
|
+
end
|
438
566
|
end
|
439
567
|
end
|
440
568
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turso_libsql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Levy Albuquerque
|
@@ -9,15 +9,43 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 1980-01-01 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ffi
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.17'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.17'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.10'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.10'
|
13
41
|
description: libSQL Ruby SDK
|
14
42
|
email: levy@turso.tech
|
15
43
|
executables: []
|
16
44
|
extensions: []
|
17
45
|
extra_rdoc_files: []
|
18
46
|
files:
|
47
|
+
- lib/lib/aarch64-apple-darwin/liblibsql.dylib
|
19
48
|
- lib/lib/aarch64-unknown-linux-gnu/liblibsql.so
|
20
|
-
- lib/lib/universal2-apple-darwin/liblibsql.dylib
|
21
49
|
- lib/lib/x86_64-unknown-linux-gnu/liblibsql.so
|
22
50
|
- lib/libsql.rb
|
23
51
|
homepage: https://rubygems.org/gems/turso_libsql
|
@@ -32,14 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
32
60
|
requirements:
|
33
61
|
- - ">="
|
34
62
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
63
|
+
version: '3.3'
|
36
64
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
65
|
requirements:
|
38
66
|
- - ">="
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '0'
|
41
69
|
requirements: []
|
42
|
-
rubygems_version: 3.
|
70
|
+
rubygems_version: 3.3.26
|
43
71
|
signing_key:
|
44
72
|
specification_version: 4
|
45
73
|
summary: libSQL
|
Binary file
|