turso_libsql 0.0.0 → 0.1.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9042a62d9edb2a8d561a9abf342f023a5abb8645c77cbdacddfa02b7c733f389
|
4
|
+
data.tar.gz: efb3bd164df4b1867a5fc94b0ee03984057b271f806a202fc9177cfbfc997001
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 674c3288de9c1bc6e3cafff199f2868f532776d3fa289302573a1ef1edc82687ffc6b8bab92cd44308d8a441bf436a69d068be886b86bdd455e6f6ad2ff21ba9
|
7
|
+
data.tar.gz: 31298baac13d6b7f575d01db35fbee30a0d752819f9addf1b003a205e367174c8811fbc37425463fec8a556353376e0ba6cea0d2be2a3eef945c4784b530d857
|
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:
|
@@ -216,8 +221,12 @@ module CLibsql # :nodoc:
|
|
216
221
|
attach_function :libsql_statement_bind_named, [Statement.by_value, :string, Value.by_value], Bind.by_value
|
217
222
|
attach_function :libsql_statement_query, [Statement.by_value], Rows.by_value
|
218
223
|
attach_function :libsql_statement_execute, [Statement.by_value], Execute.by_value
|
224
|
+
attach_function :libsql_statement_column_count, [Statement.by_value], :size_t
|
225
|
+
attach_function :libsql_statement_reset, [Statement.by_value], :void
|
219
226
|
|
220
227
|
attach_function :libsql_rows_next, [Rows.by_value], Row.by_value
|
228
|
+
attach_function :libsql_rows_column_length, [Rows.by_value], :uint32
|
229
|
+
attach_function :libsql_rows_column_name, [Rows.by_value, :uint32], Slice.by_value
|
221
230
|
|
222
231
|
attach_function :libsql_row_empty, [Row.by_value], :bool
|
223
232
|
attach_function :libsql_row_value, [Row.by_value, :uint32], ResultValue.by_value
|
@@ -244,6 +253,8 @@ end
|
|
244
253
|
module Libsql
|
245
254
|
class Blob < String; end
|
246
255
|
|
256
|
+
class ClosedException < Exception; end
|
257
|
+
|
247
258
|
module Prepareable
|
248
259
|
def execute(sql, params = [])
|
249
260
|
prepare(sql) { |stmt| stmt.execute(params) }
|
@@ -262,11 +273,24 @@ module Libsql
|
|
262
273
|
end
|
263
274
|
|
264
275
|
def to_h = columns.zip(to_a).to_h
|
265
|
-
|
266
|
-
def
|
276
|
+
|
277
|
+
def length
|
278
|
+
raise ClosedException if closed?
|
279
|
+
|
280
|
+
@inner.length
|
281
|
+
end
|
282
|
+
|
283
|
+
def columns
|
284
|
+
raise ClosedException if closed?
|
285
|
+
|
286
|
+
(0...length).map { |i| @inner.name_at(i).to_s }
|
287
|
+
end
|
288
|
+
|
267
289
|
def each = (0...length).each { |i| yield self[i] }
|
268
290
|
|
269
291
|
def [](index)
|
292
|
+
raise ClosedException if closed?
|
293
|
+
|
270
294
|
case index
|
271
295
|
in Integer then @inner.value_at(index)[:ok].convert
|
272
296
|
in String
|
@@ -277,7 +301,16 @@ module Libsql
|
|
277
301
|
end
|
278
302
|
end
|
279
303
|
|
280
|
-
def close
|
304
|
+
def close
|
305
|
+
raise ClosedException if closed?
|
306
|
+
|
307
|
+
@inner.deinit
|
308
|
+
@inner = nil
|
309
|
+
end
|
310
|
+
|
311
|
+
def closed?
|
312
|
+
@inner.nil?
|
313
|
+
end
|
281
314
|
end
|
282
315
|
|
283
316
|
class Rows
|
@@ -287,11 +320,25 @@ module Libsql
|
|
287
320
|
@inner = inner
|
288
321
|
end
|
289
322
|
|
323
|
+
def column_count
|
324
|
+
raise ClosedException if closed?
|
325
|
+
|
326
|
+
@inner.length
|
327
|
+
end
|
328
|
+
|
329
|
+
def columns
|
330
|
+
raise ClosedException if closed?
|
331
|
+
|
332
|
+
(0...column_count).map { |i| @inner.name_at(i).to_s }
|
333
|
+
end
|
334
|
+
|
290
335
|
def to_a
|
291
336
|
map(&:to_h)
|
292
337
|
end
|
293
338
|
|
294
339
|
def next
|
340
|
+
raise ClosedException if closed?
|
341
|
+
|
295
342
|
row = @inner.next
|
296
343
|
Row.new row unless row.empty?
|
297
344
|
end
|
@@ -303,7 +350,16 @@ module Libsql
|
|
303
350
|
end
|
304
351
|
end
|
305
352
|
|
306
|
-
def close
|
353
|
+
def close
|
354
|
+
raise ClosedException if closed?
|
355
|
+
|
356
|
+
@inner.deinit
|
357
|
+
@inner = nil
|
358
|
+
end
|
359
|
+
|
360
|
+
def closed?
|
361
|
+
@inner.nil?
|
362
|
+
end
|
307
363
|
end
|
308
364
|
|
309
365
|
class Statement
|
@@ -312,6 +368,8 @@ module Libsql
|
|
312
368
|
end
|
313
369
|
|
314
370
|
def bind(params)
|
371
|
+
raise ClosedException if closed?
|
372
|
+
|
315
373
|
case params
|
316
374
|
in Array then params.each { |v| @inner.bind_value convert(v) }
|
317
375
|
in Hash
|
@@ -322,19 +380,44 @@ module Libsql
|
|
322
380
|
end
|
323
381
|
|
324
382
|
def execute(params = [])
|
383
|
+
raise ClosedException if closed?
|
384
|
+
|
325
385
|
bind params
|
326
|
-
@inner.execute
|
386
|
+
@inner.execute[:rows_changed]
|
327
387
|
end
|
328
388
|
|
329
389
|
def query(params = [])
|
390
|
+
raise ClosedException if closed?
|
391
|
+
|
330
392
|
bind params
|
331
393
|
rows = Rows.new @inner.query
|
332
394
|
return rows unless block_given?
|
333
395
|
|
334
|
-
begin yield rows ensure
|
396
|
+
begin yield rows ensure rows.close end
|
335
397
|
end
|
336
398
|
|
337
|
-
def
|
399
|
+
def column_count
|
400
|
+
raise ClosedException if closed?
|
401
|
+
|
402
|
+
@inner.column_count
|
403
|
+
end
|
404
|
+
|
405
|
+
def reset
|
406
|
+
raise ClosedException if closed?
|
407
|
+
|
408
|
+
@inner.reset
|
409
|
+
end
|
410
|
+
|
411
|
+
def close
|
412
|
+
raise ClosedException if closed?
|
413
|
+
|
414
|
+
@inner.deinit
|
415
|
+
@inner = nil
|
416
|
+
end
|
417
|
+
|
418
|
+
def closed?
|
419
|
+
@inner.nil?
|
420
|
+
end
|
338
421
|
|
339
422
|
private
|
340
423
|
|
@@ -357,16 +440,37 @@ module Libsql
|
|
357
440
|
end
|
358
441
|
|
359
442
|
def prepare(sql)
|
443
|
+
raise ClosedException if closed?
|
444
|
+
|
360
445
|
stmt = Statement.new @inner.prepare sql
|
361
446
|
return stmt unless block_given?
|
362
447
|
|
363
448
|
begin yield stmt ensure stmt.close end
|
364
449
|
end
|
365
450
|
|
366
|
-
def execute_batch(sql)
|
451
|
+
def execute_batch(sql)
|
452
|
+
raise ClosedException if closed?
|
453
|
+
|
454
|
+
@inner.execute_batch(sql)
|
455
|
+
end
|
456
|
+
|
457
|
+
def rollback
|
458
|
+
raise ClosedException if closed?
|
459
|
+
|
460
|
+
@inner.rollback
|
461
|
+
@inner = nil
|
462
|
+
end
|
463
|
+
|
464
|
+
def commit
|
465
|
+
raise ClosedException if closed?
|
466
|
+
|
467
|
+
@inner.commit
|
468
|
+
@inner = nil
|
469
|
+
end
|
367
470
|
|
368
|
-
def
|
369
|
-
|
471
|
+
def closed?
|
472
|
+
@inner.nil?
|
473
|
+
end
|
370
474
|
end
|
371
475
|
|
372
476
|
class Connection
|
@@ -377,6 +481,8 @@ module Libsql
|
|
377
481
|
end
|
378
482
|
|
379
483
|
def transaction
|
484
|
+
raise ClosedException if closed?
|
485
|
+
|
380
486
|
tx = Transaction.new @inner.transaction
|
381
487
|
return tx unless block_given?
|
382
488
|
|
@@ -392,6 +498,8 @@ module Libsql
|
|
392
498
|
end
|
393
499
|
|
394
500
|
def prepare(sql)
|
501
|
+
raise ClosedException if closed?
|
502
|
+
|
395
503
|
stmt = Statement.new @inner.prepare sql
|
396
504
|
|
397
505
|
return stmt unless block_given?
|
@@ -401,7 +509,16 @@ module Libsql
|
|
401
509
|
|
402
510
|
def execute_batch(sql) = @inner.execute_batch(sql)
|
403
511
|
|
404
|
-
def close
|
512
|
+
def close
|
513
|
+
raise ClosedException if closed?
|
514
|
+
|
515
|
+
@inner.deinit
|
516
|
+
@inner = nil
|
517
|
+
end
|
518
|
+
|
519
|
+
def closed?
|
520
|
+
@inner.nil?
|
521
|
+
end
|
405
522
|
end
|
406
523
|
|
407
524
|
class Database
|
@@ -423,18 +540,31 @@ module Libsql
|
|
423
540
|
end
|
424
541
|
|
425
542
|
def sync
|
543
|
+
raise ClosedException if closed?
|
544
|
+
|
426
545
|
@inner.sync
|
427
546
|
end
|
428
547
|
|
429
548
|
def connect
|
549
|
+
raise ClosedException if closed?
|
550
|
+
|
430
551
|
conn = Connection.new @inner.connect
|
431
552
|
|
432
|
-
return unless block_given?
|
553
|
+
return conn unless block_given?
|
433
554
|
|
434
555
|
begin yield conn ensure conn.close end
|
435
556
|
end
|
436
557
|
|
437
|
-
def close
|
558
|
+
def close
|
559
|
+
raise ClosedException if closed?
|
560
|
+
|
561
|
+
@inner.deinit
|
562
|
+
@inner = nil
|
563
|
+
end
|
564
|
+
|
565
|
+
def closed?
|
566
|
+
@inner.nil?
|
567
|
+
end
|
438
568
|
end
|
439
569
|
end
|
440
570
|
|
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.1
|
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,7 +60,7 @@ 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
|
- - ">="
|
Binary file
|