sbf-do_sqlite3 0.10.17

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.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog.markdown +119 -0
  3. data/LICENSE +20 -0
  4. data/README.markdown +94 -0
  5. data/Rakefile +21 -0
  6. data/ext/do_sqlite3/compat.h +55 -0
  7. data/ext/do_sqlite3/do_common.c +510 -0
  8. data/ext/do_sqlite3/do_common.h +132 -0
  9. data/ext/do_sqlite3/do_sqlite3.c +448 -0
  10. data/ext/do_sqlite3/do_sqlite3.h +22 -0
  11. data/ext/do_sqlite3/do_sqlite3_extension.c +87 -0
  12. data/ext/do_sqlite3/error.h +85 -0
  13. data/ext/do_sqlite3/extconf.rb +26 -0
  14. data/lib/do_sqlite3/transaction.rb +21 -0
  15. data/lib/do_sqlite3/version.rb +5 -0
  16. data/lib/do_sqlite3.rb +13 -0
  17. data/spec/command_spec.rb +6 -0
  18. data/spec/connection_spec.rb +26 -0
  19. data/spec/encoding_spec.rb +7 -0
  20. data/spec/error/sql_error_spec.rb +7 -0
  21. data/spec/reader_spec.rb +6 -0
  22. data/spec/result_spec.rb +17 -0
  23. data/spec/spec_helper.rb +138 -0
  24. data/spec/typecast/array_spec.rb +6 -0
  25. data/spec/typecast/bigdecimal_spec.rb +9 -0
  26. data/spec/typecast/boolean_spec.rb +9 -0
  27. data/spec/typecast/byte_array_spec.rb +6 -0
  28. data/spec/typecast/class_spec.rb +6 -0
  29. data/spec/typecast/date_spec.rb +9 -0
  30. data/spec/typecast/datetime_spec.rb +9 -0
  31. data/spec/typecast/float_spec.rb +10 -0
  32. data/spec/typecast/integer_spec.rb +6 -0
  33. data/spec/typecast/nil_spec.rb +18 -0
  34. data/spec/typecast/other_spec.rb +6 -0
  35. data/spec/typecast/range_spec.rb +6 -0
  36. data/spec/typecast/string_spec.rb +6 -0
  37. data/spec/typecast/time_spec.rb +7 -0
  38. data/tasks/compile.rake +23 -0
  39. data/tasks/release.rake +14 -0
  40. data/tasks/retrieve.rake +16 -0
  41. data/tasks/spec.rake +10 -0
  42. metadata +100 -0
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+ require 'data_objects/spec/shared/command_spec'
3
+
4
+ describe DataObjects::Sqlite3::Command do
5
+ it_behaves_like 'a Command'
6
+ end
@@ -0,0 +1,26 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+ require 'data_objects/spec/shared/connection_spec'
3
+
4
+ describe DataObjects::Sqlite3::Connection do
5
+ before :all do
6
+ @driver = CONFIG.scheme
7
+ @user = CONFIG.user
8
+ @password = CONFIG.pass
9
+ @host = CONFIG.host
10
+ @port = CONFIG.port
11
+ @database = CONFIG.database
12
+ end
13
+
14
+ it_behaves_like 'a Connection'
15
+
16
+ describe 'connecting with busy timeout' do
17
+ it 'connects with a valid timeout' do
18
+ expect(DataObjects::Connection.new("#{CONFIG.uri}?busy_timeout=200")).not_to be_nil
19
+ end
20
+
21
+ it 'raises an error when passed an invalid value' do
22
+ expect { DataObjects::Connection.new("#{CONFIG.uri}?busy_timeout=stuff") }
23
+ .to raise_error(ArgumentError)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+ require 'data_objects/spec/shared/encoding_spec'
3
+
4
+ describe DataObjects::Sqlite3::Connection do
5
+ it_behaves_like 'returning correctly encoded strings for the default database encoding'
6
+ it_behaves_like 'returning correctly encoded strings for the default internal encoding'
7
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/error/sql_error_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 raising SQLError' do
5
+ # This fails for now, need to think of a query that also exposes the issue on sqlite :S
6
+ # it_behaves_like 'raising a SQLError'
7
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+ require 'data_objects/spec/shared/reader_spec'
3
+
4
+ describe DataObjects::Sqlite3::Reader do
5
+ it_behaves_like 'a Reader'
6
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
+ require 'data_objects/spec/shared/result_spec'
3
+
4
+ # splitting the descibe into two separate declaration avoids
5
+ # concurrent execution of the "it_behaves_like ....." calls
6
+ # which would lock the database
7
+
8
+ # TODO
9
+ # the locked database created a deadlock which is worth exploring since
10
+ # such situation could appear in the wild too
11
+ describe DataObjects::Sqlite3::Result do
12
+ it_behaves_like 'a Result'
13
+ end
14
+
15
+ describe DataObjects::Sqlite3::Result do
16
+ it_behaves_like 'a Result which returns inserted key with sequences'
17
+ end
@@ -0,0 +1,138 @@
1
+ $TESTING = true
2
+
3
+ require 'rubygems'
4
+ require 'rspec'
5
+ require 'date'
6
+ require 'ostruct'
7
+ require 'fileutils'
8
+ require 'win32console' if RUBY_PLATFORM =~ /mingw|mswin/
9
+
10
+ driver_lib = File.expand_path('../lib', __dir__)
11
+ $LOAD_PATH.unshift(driver_lib) unless $LOAD_PATH.include?(driver_lib)
12
+
13
+ # Prepend data_objects/do_jdbc in the repository to the load path.
14
+ # DO NOT USE installed gems, except when running the specs from gem.
15
+ repo_root = File.expand_path('../..', __dir__)
16
+ lib_path = "#{repo_root}/data_objects/lib"
17
+ $LOAD_PATH.unshift(lib_path) if File.directory?(lib_path) && !$LOAD_PATH.include?(lib_path)
18
+
19
+ require 'data_objects'
20
+ require 'data_objects/spec/setup'
21
+ require 'data_objects/spec/lib/pending_helpers'
22
+ require 'do_sqlite3'
23
+
24
+ CONFIG = OpenStruct.new
25
+ CONFIG.scheme = 'sqlite3'
26
+ CONFIG.database = ENV['DO_SQLITE3_DATABASE'] || ':memory:'
27
+ CONFIG.uri = ENV['DO_SQLITE3_SPEC_URI'] || "#{CONFIG.scheme}:#{CONFIG.database}"
28
+ CONFIG.driver = 'sqlite3'
29
+
30
+ module DataObjectsSpecHelpers
31
+ def setup_test_environment
32
+ conn = DataObjects::Connection.new(CONFIG.uri)
33
+
34
+ conn.create_command(<<-EOF).execute_non_query
35
+ DROP TABLE IF EXISTS "invoices"
36
+ EOF
37
+
38
+ conn.create_command(<<-EOF).execute_non_query
39
+ DROP TABLE IF EXISTS "users"
40
+ EOF
41
+
42
+ conn.create_command(<<-EOF).execute_non_query
43
+ DROP TABLE IF EXISTS "widgets"
44
+ EOF
45
+
46
+ conn.create_command(<<-EOF).execute_non_query
47
+ CREATE TABLE "users" (
48
+ "id" SERIAL,
49
+ "name" VARCHAR(200) default 'Billy' NULL,
50
+ "fired_at" timestamp,
51
+ PRIMARY KEY ("id")
52
+ );
53
+ EOF
54
+
55
+ conn.create_command(<<-EOF).execute_non_query
56
+ CREATE TABLE "invoices" (
57
+ "invoice_number" varchar(50) NOT NULL,
58
+ PRIMARY KEY ("invoice_number")
59
+ );
60
+ EOF
61
+
62
+ local_offset = Rational(Time.local(2008, 2, 14).utc_offset, 86_400)
63
+ t = DateTime.civil(2008, 2, 14, 0o0, 31, 12, local_offset)
64
+ conn.create_command(<<-EOF).execute_non_query
65
+ CREATE TABLE "widgets" (
66
+ "id" INTEGER PRIMARY KEY AUTOINCREMENT,
67
+ "code" char(8) default 'A14' NULL,
68
+ "name" varchar(200) default 'Super Widget' NULL,
69
+ "shelf_location" text NULL,
70
+ "description" text NULL,
71
+ "image_data" blob NULL,
72
+ "ad_description" text NULL,
73
+ "ad_image" blob NULL,
74
+ "whitepaper_text" text NULL,
75
+ "cad_drawing" blob,
76
+ "flags" boolean default 'f',
77
+ "number_in_stock" smallint default 500,
78
+ "number_sold" integer default 0,
79
+ "super_number" bigint default 9223372036854775807,
80
+ "weight" float default 1.23,
81
+ "cost1" double precision default 10.23,
82
+ "cost2" decimal(8,2) default 50.23,
83
+ "release_date" date default '2008-02-14',
84
+ "release_datetime" timestamp default '#{t}',
85
+ "release_timestamp" timestamp with time zone default '2008-02-14 00:31:31'
86
+ );
87
+ EOF
88
+
89
+ 1.upto(16) do |n|
90
+ conn.create_command(<<-EOF).execute_non_query
91
+ insert into widgets(code, name, shelf_location, description, image_data, ad_description, ad_image, whitepaper_text, cad_drawing, super_number, weight) VALUES ('W#{n.to_s.rjust(7, '0')}', 'Widget #{n}', 'A14', 'This is a description', 'IMAGE DATA', 'Buy this product now!', 'AD IMAGE DATA', 'String', X'434144200120002044524157494e47', 1234, 13.4);
92
+ EOF
93
+ end
94
+
95
+ conn.create_command(<<-EOF).execute_non_query
96
+ update widgets set flags = 't' where id = 2
97
+ EOF
98
+
99
+ conn.create_command(<<-EOF).execute_non_query
100
+ update widgets set ad_description = NULL where id = 3
101
+ EOF
102
+
103
+ conn.create_command(<<-EOF).execute_non_query
104
+ update widgets set flags = NULL where id = 4
105
+ EOF
106
+
107
+ conn.create_command(<<-EOF).execute_non_query
108
+ update widgets set cost1 = NULL where id = 5
109
+ EOF
110
+
111
+ conn.create_command(<<-EOF).execute_non_query
112
+ update widgets set cost2 = NULL where id = 6
113
+ EOF
114
+
115
+ conn.create_command(<<-EOF).execute_non_query
116
+ update widgets set release_date = NULL where id = 7
117
+ EOF
118
+
119
+ conn.create_command(<<-EOF).execute_non_query
120
+ update widgets set release_datetime = NULL where id = 8
121
+ EOF
122
+
123
+ conn.create_command(<<-EOF).execute_non_query
124
+ update widgets set release_timestamp = NULL where id = 9
125
+ EOF
126
+
127
+ conn.create_command(<<-EOF).execute_non_query
128
+ update widgets set release_datetime = '2008-07-14 00:31:12' where id = 10
129
+ EOF
130
+
131
+ conn.close
132
+ end
133
+ end
134
+
135
+ RSpec.configure do |config|
136
+ config.include(DataObjectsSpecHelpers)
137
+ config.include(DataObjects::Spec::PendingHelpers)
138
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/array_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Array' do
5
+ it_behaves_like 'supporting Array'
6
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/bigdecimal_spec'
3
+
4
+ # Sqlite3 doesn't support decimals natively, so autocasting is not available:
5
+ # http://www.sqlite.org/datatype3.html
6
+
7
+ describe 'DataObjects::Sqlite3 with BigDecimal' do
8
+ it_behaves_like 'supporting BigDecimal'
9
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/boolean_spec'
3
+
4
+ # Sqlite3 doesn't support booleans natively, so autocasting is not available:
5
+ # http://www.sqlite.org/datatype3.html
6
+
7
+ describe 'DataObjects::Sqlite3 with Boolean' do
8
+ it_behaves_like 'supporting Boolean'
9
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/byte_array_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with ByteArray' do
5
+ it_behaves_like 'supporting ByteArray'
6
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/class_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Class' do
5
+ it_behaves_like 'supporting Class'
6
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/date_spec'
3
+
4
+ # Sqlite3 doesn't support dates natively, so autocasting is not available:
5
+ # http://www.sqlite.org/datatype3.html
6
+
7
+ describe 'DataObjects::Sqlite3 with Date' do
8
+ it_behaves_like 'supporting Date'
9
+ end
@@ -0,0 +1,9 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/datetime_spec'
3
+
4
+ # Sqlite3 doesn't support datetimes natively, so autocasting is not available:
5
+ # http://www.sqlite.org/datatype3.html
6
+
7
+ describe 'DataObjects::Sqlite3 with DateTime' do
8
+ it_behaves_like 'supporting DateTime'
9
+ end
@@ -0,0 +1,10 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/float_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Float' do
5
+ it_behaves_like 'supporting Float'
6
+ end
7
+
8
+ describe 'DataObjects::Sqlite3 with Float' do
9
+ it_behaves_like 'supporting Float autocasting'
10
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/integer_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Integer' do
5
+ it_behaves_like 'supporting Integer'
6
+ end
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/nil_spec'
3
+
4
+ # splitting the descibe into two separate declaration avoids
5
+ # concurrent execution of the "it_behaves_like ....." calls
6
+ # which would lock the database
7
+
8
+ describe 'DataObjects::Sqlite3 with Nil' do
9
+ it_behaves_like 'supporting Nil'
10
+ end
11
+
12
+ describe 'DataObjects::Sqlite3 with Nil' do
13
+ it_behaves_like 'supporting writing an Nil'
14
+ end
15
+
16
+ describe 'DataObjects::Sqlite3 with Nil' do
17
+ it_behaves_like 'supporting Nil autocasting'
18
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/other_spec'
3
+
4
+ describe 'DataObjects::H2 with other (unknown) type' do
5
+ it_behaves_like 'supporting other (unknown) type'
6
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/range_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Range' do
5
+ it_behaves_like 'supporting Range'
6
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/string_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with String' do
5
+ it_behaves_like 'supporting String'
6
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
2
+ require 'data_objects/spec/shared/typecast/time_spec'
3
+
4
+ describe 'DataObjects::Sqlite3 with Time' do
5
+ it_behaves_like 'supporting Time'
6
+ it_behaves_like 'supporting sub second Time'
7
+ end
@@ -0,0 +1,23 @@
1
+ begin
2
+ gem 'rake-compiler', '~>1.2'
3
+ require 'rake/extensiontask'
4
+
5
+ def gemspec
6
+ @gemspec ||= Gem::Specification.load(File.expand_path('../do_sqlite3.gemspec', __dir__))
7
+ end
8
+
9
+ Rake::ExtensionTask.new('do_sqlite3', gemspec) do |ext|
10
+ sqlite3_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', 'sqlite3'))
11
+
12
+ ext.lib_dir = "lib/#{gemspec.name}"
13
+
14
+ ext.cross_config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
15
+ ext.cross_config_options << "--with-sqlite3-include=#{sqlite3_lib}/include"
16
+ ext.cross_config_options << "--with-sqlite3-lib=#{sqlite3_lib}/lib"
17
+
18
+
19
+ # automatically add build options to avoid need of manual input
20
+ end
21
+ rescue LoadError
22
+ warn 'To compile, install rake-compiler (gem install rake-compiler)'
23
+ end
@@ -0,0 +1,14 @@
1
+ desc 'Builds all gems (native, binaries for JRuby and Windows)'
2
+ task :build_all do
3
+ `rake clean`
4
+ `rake build`
5
+ end
6
+
7
+ desc 'Release all gems (native, binaries for JRuby and Windows)'
8
+ task release_all: :build_all do
9
+ Dir.children("pkg").each do |gem_path|
10
+ command = "gem push pkg/#{gem_path}"
11
+ puts "Executing #{command.inspect}:"
12
+ sh command
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ begin
2
+ gem 'rake-compiler', '~>1.2'
3
+ require 'rake/clean'
4
+ require 'rake/extensioncompiler'
5
+
6
+ # required folder structure for --with-sqlite3-dir (include + lib)
7
+ directory 'vendor/sqlite3/lib'
8
+ directory 'vendor/sqlite3/include'
9
+
10
+ # clobber vendored packages
11
+ CLOBBER.include('vendor')
12
+
13
+ # vendor:sqlite3
14
+ task 'vendor:sqlite3' => %w[vendor/sqlite3/lib/sqlite3.lib vendor/sqlite3/include/sqlite3.h]
15
+ rescue LoadError
16
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,10 @@
1
+ require 'rspec/core/rake_task'
2
+
3
+ RSpec::Core::RakeTask.new(spec: %i(clean compile)) do |spec|
4
+ spec.pattern = './spec/**/*_spec.rb'
5
+
6
+ require 'simplecov'
7
+ SimpleCov.start do
8
+ minimum_coverage 100
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sbf-do_sqlite3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.17
5
+ platform: ruby
6
+ authors:
7
+ - Dirkjan Bussink
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-10-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: sbf-data_objects
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.17
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.10.17
27
+ description: Implements the DataObjects API for Sqlite3
28
+ email: d.bussink@gmail.com
29
+ executables: []
30
+ extensions:
31
+ - ext/do_sqlite3/extconf.rb
32
+ extra_rdoc_files:
33
+ - ChangeLog.markdown
34
+ - LICENSE
35
+ - README.markdown
36
+ files:
37
+ - ChangeLog.markdown
38
+ - LICENSE
39
+ - README.markdown
40
+ - Rakefile
41
+ - ext/do_sqlite3/compat.h
42
+ - ext/do_sqlite3/do_common.c
43
+ - ext/do_sqlite3/do_common.h
44
+ - ext/do_sqlite3/do_sqlite3.c
45
+ - ext/do_sqlite3/do_sqlite3.h
46
+ - ext/do_sqlite3/do_sqlite3_extension.c
47
+ - ext/do_sqlite3/error.h
48
+ - ext/do_sqlite3/extconf.rb
49
+ - lib/do_sqlite3.rb
50
+ - lib/do_sqlite3/transaction.rb
51
+ - lib/do_sqlite3/version.rb
52
+ - spec/command_spec.rb
53
+ - spec/connection_spec.rb
54
+ - spec/encoding_spec.rb
55
+ - spec/error/sql_error_spec.rb
56
+ - spec/reader_spec.rb
57
+ - spec/result_spec.rb
58
+ - spec/spec_helper.rb
59
+ - spec/typecast/array_spec.rb
60
+ - spec/typecast/bigdecimal_spec.rb
61
+ - spec/typecast/boolean_spec.rb
62
+ - spec/typecast/byte_array_spec.rb
63
+ - spec/typecast/class_spec.rb
64
+ - spec/typecast/date_spec.rb
65
+ - spec/typecast/datetime_spec.rb
66
+ - spec/typecast/float_spec.rb
67
+ - spec/typecast/integer_spec.rb
68
+ - spec/typecast/nil_spec.rb
69
+ - spec/typecast/other_spec.rb
70
+ - spec/typecast/range_spec.rb
71
+ - spec/typecast/string_spec.rb
72
+ - spec/typecast/time_spec.rb
73
+ - tasks/compile.rake
74
+ - tasks/release.rake
75
+ - tasks/retrieve.rake
76
+ - tasks/spec.rake
77
+ homepage: https://github.com/firespring/datamapper-do/do_do_sqlite3
78
+ licenses:
79
+ - Nonstandard
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.7.8
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubygems_version: 3.4.10
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: DataObjects Sqlite3 Driver
100
+ test_files: []