amalgalite 1.9.4-x86-mingw32 → 2.0.0-x86-mingw32

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.md +19 -2
  3. data/Manifest.txt +4 -54
  4. data/README.md +1 -1
  5. data/TODO.md +4 -3
  6. data/amalgalite.gemspec +39 -0
  7. data/ext/amalgalite/c/amalgalite.c +0 -1
  8. data/ext/amalgalite/c/amalgalite_constants.c +155 -10
  9. data/ext/amalgalite/c/extconf.rb +5 -2
  10. data/ext/amalgalite/c/gen_constants.rb +32 -1
  11. data/ext/amalgalite/c/sqlite3.c +19308 -9112
  12. data/ext/amalgalite/c/sqlite3.h +909 -296
  13. data/ext/amalgalite/c/sqlite3ext.h +11 -0
  14. data/lib/amalgalite/2.7/amalgalite.so +0 -0
  15. data/lib/amalgalite/3.0/amalgalite.so +0 -0
  16. data/lib/amalgalite/3.1/amalgalite.so +0 -0
  17. data/lib/amalgalite/3.2/amalgalite.so +0 -0
  18. data/lib/amalgalite/3.3/amalgalite.so +0 -0
  19. data/lib/amalgalite/3.4/amalgalite.so +0 -0
  20. data/lib/amalgalite/column.rb +20 -2
  21. data/lib/amalgalite/result/row.rb +83 -0
  22. data/lib/amalgalite/result.rb +15 -0
  23. data/lib/amalgalite/statement.rb +32 -24
  24. data/lib/amalgalite/type_maps/default_map.rb +48 -56
  25. data/lib/amalgalite/version.rb +1 -1
  26. metadata +36 -123
  27. data/Rakefile +0 -27
  28. data/bin/amalgalite-pack +0 -147
  29. data/examples/a.rb +0 -9
  30. data/examples/blob.rb +0 -88
  31. data/examples/bootstrap.rb +0 -36
  32. data/examples/define_aggregate.rb +0 -75
  33. data/examples/define_function.rb +0 -104
  34. data/examples/fts5.rb +0 -152
  35. data/examples/gem-db.rb +0 -94
  36. data/examples/require_me.rb +0 -11
  37. data/examples/requires.rb +0 -42
  38. data/examples/schema-info.rb +0 -34
  39. data/ext/amalgalite/c/amalgalite_requires_bootstrap.c +0 -283
  40. data/lib/amalgalite/2.4/amalgalite.so +0 -0
  41. data/lib/amalgalite/2.5/amalgalite.so +0 -0
  42. data/lib/amalgalite/2.6/amalgalite.so +0 -0
  43. data/lib/amalgalite/core_ext/kernel/require.rb +0 -21
  44. data/lib/amalgalite/packer.rb +0 -231
  45. data/lib/amalgalite/requires.rb +0 -151
  46. data/spec/aggregate_spec.rb +0 -158
  47. data/spec/amalgalite_spec.rb +0 -4
  48. data/spec/blob_spec.rb +0 -78
  49. data/spec/boolean_spec.rb +0 -24
  50. data/spec/busy_handler.rb +0 -157
  51. data/spec/data/iso-3166-country.txt +0 -242
  52. data/spec/data/iso-3166-schema.sql +0 -22
  53. data/spec/data/iso-3166-subcountry.txt +0 -3995
  54. data/spec/data/make-iso-db.sh +0 -12
  55. data/spec/database_spec.rb +0 -505
  56. data/spec/default_map_spec.rb +0 -92
  57. data/spec/function_spec.rb +0 -78
  58. data/spec/integeration_spec.rb +0 -97
  59. data/spec/iso_3166_database.rb +0 -58
  60. data/spec/json_spec.rb +0 -24
  61. data/spec/packer_spec.rb +0 -60
  62. data/spec/paths_spec.rb +0 -28
  63. data/spec/progress_handler_spec.rb +0 -91
  64. data/spec/requires_spec.rb +0 -54
  65. data/spec/rtree_spec.rb +0 -66
  66. data/spec/schema_spec.rb +0 -131
  67. data/spec/spec_helper.rb +0 -48
  68. data/spec/sqlite3/constants_spec.rb +0 -108
  69. data/spec/sqlite3/database_status_spec.rb +0 -36
  70. data/spec/sqlite3/status_spec.rb +0 -22
  71. data/spec/sqlite3/version_spec.rb +0 -28
  72. data/spec/sqlite3_spec.rb +0 -53
  73. data/spec/statement_spec.rb +0 -168
  74. data/spec/storage_map_spec.rb +0 -38
  75. data/spec/tap_spec.rb +0 -57
  76. data/spec/text_map_spec.rb +0 -20
  77. data/spec/type_map_spec.rb +0 -14
  78. data/spec/version_spec.rb +0 -8
  79. data/tasks/custom.rake +0 -101
  80. data/tasks/default.rake +0 -257
  81. data/tasks/extension.rake +0 -28
  82. data/tasks/this.rb +0 -208
  83. /data/{LICENSE → LICENSE.txt} +0 -0
metadata CHANGED
@@ -1,43 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amalgalite
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.4
4
+ version: 2.0.0
5
5
  platform: x86-mingw32
6
6
  authors:
7
7
  - Jeremy Hinegardner
8
- autorequire:
9
- bindir: bin
8
+ bindir: exe
10
9
  cert_chain: []
11
- date: 2024-03-04 00:00:00.000000000 Z
10
+ date: 2025-11-16 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: arrayfields
13
+ name: csv
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '4.9'
18
+ version: '3.3'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '4.9'
25
+ version: '3.3'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: rspec
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '3.12'
32
+ version: '3.13'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '3.12'
39
+ version: '3.13'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rspec_junit_formatter
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -58,124 +57,111 @@ dependencies:
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: '13.0'
60
+ version: '13.3'
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: '13.0'
67
+ version: '13.3'
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: rake-compiler
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: '1.2'
74
+ version: '1.3'
76
75
  type: :development
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - "~>"
81
80
  - !ruby/object:Gem::Version
82
- version: '1.2'
81
+ version: '1.3'
83
82
  - !ruby/object:Gem::Dependency
84
83
  name: rake-compiler-dock
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: '1.2'
88
+ version: '1.10'
90
89
  type: :development
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: '1.2'
95
+ version: '1.10'
97
96
  - !ruby/object:Gem::Dependency
98
97
  name: rdoc
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - "~>"
102
101
  - !ruby/object:Gem::Version
103
- version: '6.5'
102
+ version: '6.15'
104
103
  type: :development
105
104
  prerelease: false
106
105
  version_requirements: !ruby/object:Gem::Requirement
107
106
  requirements:
108
107
  - - "~>"
109
108
  - !ruby/object:Gem::Version
110
- version: '6.5'
109
+ version: '6.15'
111
110
  - !ruby/object:Gem::Dependency
112
111
  name: simplecov
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
114
  - - "~>"
116
115
  - !ruby/object:Gem::Version
117
- version: '0.21'
116
+ version: '0.22'
118
117
  type: :development
119
118
  prerelease: false
120
119
  version_requirements: !ruby/object:Gem::Requirement
121
120
  requirements:
122
121
  - - "~>"
123
122
  - !ruby/object:Gem::Version
124
- version: '0.21'
123
+ version: '0.22'
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: archive-zip
127
126
  requirement: !ruby/object:Gem::Requirement
128
127
  requirements:
129
128
  - - "~>"
130
129
  - !ruby/object:Gem::Version
131
- version: '0.12'
130
+ version: '0.13'
132
131
  type: :development
133
132
  prerelease: false
134
133
  version_requirements: !ruby/object:Gem::Requirement
135
134
  requirements:
136
135
  - - "~>"
137
136
  - !ruby/object:Gem::Version
138
- version: '0.12'
139
- description: Amalgalite embeds the SQLite database engine as a ruby extension. There
140
- is no need to install SQLite separately.
137
+ version: '0.13'
138
+ description: |-
139
+ Amalgalite embeds the SQLite database engine as a ruby extension. There is no
140
+ need to install SQLite separately.
141
141
  email: jeremy@copiousfreetime.org
142
- executables:
143
- - amalgalite-pack
142
+ executables: []
144
143
  extensions: []
145
144
  extra_rdoc_files:
146
145
  - CONTRIBUTING.md
147
146
  - HISTORY.md
147
+ - LICENSE.txt
148
148
  - Manifest.txt
149
149
  - README.md
150
150
  - TODO.md
151
151
  - ext/amalgalite/c/notes.txt
152
- - spec/data/iso-3166-country.txt
153
- - spec/data/iso-3166-subcountry.txt
154
152
  files:
155
153
  - CONTRIBUTING.md
156
154
  - HISTORY.md
157
- - LICENSE
155
+ - LICENSE.txt
158
156
  - Manifest.txt
159
157
  - README.md
160
- - Rakefile
161
158
  - TODO.md
162
- - bin/amalgalite-pack
163
- - examples/a.rb
164
- - examples/blob.rb
165
- - examples/bootstrap.rb
166
- - examples/define_aggregate.rb
167
- - examples/define_function.rb
168
- - examples/fts5.rb
169
- - examples/gem-db.rb
170
- - examples/require_me.rb
171
- - examples/requires.rb
172
- - examples/schema-info.rb
159
+ - amalgalite.gemspec
173
160
  - ext/amalgalite/c/amalgalite.c
174
161
  - ext/amalgalite/c/amalgalite.h
175
162
  - ext/amalgalite/c/amalgalite_blob.c
176
163
  - ext/amalgalite/c/amalgalite_constants.c
177
164
  - ext/amalgalite/c/amalgalite_database.c
178
- - ext/amalgalite/c/amalgalite_requires_bootstrap.c
179
165
  - ext/amalgalite/c/amalgalite_statement.c
180
166
  - ext/amalgalite/c/extconf.rb
181
167
  - ext/amalgalite/c/gen_constants.rb
@@ -185,28 +171,27 @@ files:
185
171
  - ext/amalgalite/c/sqlite3_options.h
186
172
  - ext/amalgalite/c/sqlite3ext.h
187
173
  - lib/amalgalite.rb
188
- - lib/amalgalite/2.4/amalgalite.so
189
- - lib/amalgalite/2.5/amalgalite.so
190
- - lib/amalgalite/2.6/amalgalite.so
191
174
  - lib/amalgalite/2.7/amalgalite.so
192
175
  - lib/amalgalite/3.0/amalgalite.so
193
176
  - lib/amalgalite/3.1/amalgalite.so
177
+ - lib/amalgalite/3.2/amalgalite.so
178
+ - lib/amalgalite/3.3/amalgalite.so
179
+ - lib/amalgalite/3.4/amalgalite.so
194
180
  - lib/amalgalite/aggregate.rb
195
181
  - lib/amalgalite/blob.rb
196
182
  - lib/amalgalite/boolean.rb
197
183
  - lib/amalgalite/busy_timeout.rb
198
184
  - lib/amalgalite/column.rb
199
- - lib/amalgalite/core_ext/kernel/require.rb
200
185
  - lib/amalgalite/csv_table_importer.rb
201
186
  - lib/amalgalite/database.rb
202
187
  - lib/amalgalite/function.rb
203
188
  - lib/amalgalite/index.rb
204
189
  - lib/amalgalite/memory_database.rb
205
- - lib/amalgalite/packer.rb
206
190
  - lib/amalgalite/paths.rb
207
191
  - lib/amalgalite/profile_tap.rb
208
192
  - lib/amalgalite/progress_handler.rb
209
- - lib/amalgalite/requires.rb
193
+ - lib/amalgalite/result.rb
194
+ - lib/amalgalite/result/row.rb
210
195
  - lib/amalgalite/schema.rb
211
196
  - lib/amalgalite/sqlite3.rb
212
197
  - lib/amalgalite/sqlite3/constants.rb
@@ -226,48 +211,10 @@ files:
226
211
  - lib/amalgalite/type_maps/text_map.rb
227
212
  - lib/amalgalite/version.rb
228
213
  - lib/amalgalite/view.rb
229
- - spec/aggregate_spec.rb
230
- - spec/amalgalite_spec.rb
231
- - spec/blob_spec.rb
232
- - spec/boolean_spec.rb
233
- - spec/busy_handler.rb
234
- - spec/data/iso-3166-country.txt
235
- - spec/data/iso-3166-schema.sql
236
- - spec/data/iso-3166-subcountry.txt
237
- - spec/data/make-iso-db.sh
238
- - spec/database_spec.rb
239
- - spec/default_map_spec.rb
240
- - spec/function_spec.rb
241
- - spec/integeration_spec.rb
242
- - spec/iso_3166_database.rb
243
- - spec/json_spec.rb
244
- - spec/packer_spec.rb
245
- - spec/paths_spec.rb
246
- - spec/progress_handler_spec.rb
247
- - spec/requires_spec.rb
248
- - spec/rtree_spec.rb
249
- - spec/schema_spec.rb
250
- - spec/spec_helper.rb
251
- - spec/sqlite3/constants_spec.rb
252
- - spec/sqlite3/database_status_spec.rb
253
- - spec/sqlite3/status_spec.rb
254
- - spec/sqlite3/version_spec.rb
255
- - spec/sqlite3_spec.rb
256
- - spec/statement_spec.rb
257
- - spec/storage_map_spec.rb
258
- - spec/tap_spec.rb
259
- - spec/text_map_spec.rb
260
- - spec/type_map_spec.rb
261
- - spec/version_spec.rb
262
- - tasks/custom.rake
263
- - tasks/default.rake
264
- - tasks/extension.rake
265
- - tasks/this.rb
266
214
  homepage: http://github.com/copiousfreetime/amalgalite
267
215
  licenses:
268
216
  - BSD-3-Clause
269
217
  metadata: {}
270
- post_install_message:
271
218
  rdoc_options:
272
219
  - "--main"
273
220
  - README.md
@@ -279,52 +226,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
279
226
  requirements:
280
227
  - - ">="
281
228
  - !ruby/object:Gem::Version
282
- version: '2.4'
229
+ version: '2.7'
283
230
  - - "<"
284
231
  - !ruby/object:Gem::Version
285
- version: 3.2.dev
232
+ version: 3.5.dev
286
233
  required_rubygems_version: !ruby/object:Gem::Requirement
287
234
  requirements:
288
235
  - - ">="
289
236
  - !ruby/object:Gem::Version
290
237
  version: '0'
291
238
  requirements: []
292
- rubygems_version: 3.3.4
293
- signing_key:
239
+ rubygems_version: 3.6.9
294
240
  specification_version: 4
295
241
  summary: Amalgalite embeds the SQLite database engine as a ruby extension. There is
296
242
  no need to install SQLite separately.
297
- test_files:
298
- - spec/aggregate_spec.rb
299
- - spec/amalgalite_spec.rb
300
- - spec/blob_spec.rb
301
- - spec/boolean_spec.rb
302
- - spec/busy_handler.rb
303
- - spec/data/iso-3166-country.txt
304
- - spec/data/iso-3166-schema.sql
305
- - spec/data/iso-3166-subcountry.txt
306
- - spec/data/make-iso-db.sh
307
- - spec/database_spec.rb
308
- - spec/default_map_spec.rb
309
- - spec/function_spec.rb
310
- - spec/integeration_spec.rb
311
- - spec/iso_3166_database.rb
312
- - spec/json_spec.rb
313
- - spec/packer_spec.rb
314
- - spec/paths_spec.rb
315
- - spec/progress_handler_spec.rb
316
- - spec/requires_spec.rb
317
- - spec/rtree_spec.rb
318
- - spec/schema_spec.rb
319
- - spec/spec_helper.rb
320
- - spec/sqlite3/constants_spec.rb
321
- - spec/sqlite3/database_status_spec.rb
322
- - spec/sqlite3/status_spec.rb
323
- - spec/sqlite3/version_spec.rb
324
- - spec/sqlite3_spec.rb
325
- - spec/statement_spec.rb
326
- - spec/storage_map_spec.rb
327
- - spec/tap_spec.rb
328
- - spec/text_map_spec.rb
329
- - spec/type_map_spec.rb
330
- - spec/version_spec.rb
243
+ test_files: []
data/Rakefile DELETED
@@ -1,27 +0,0 @@
1
- # vim: syntax=ruby
2
- load 'tasks/this.rb'
3
-
4
- This.name = "amalgalite"
5
- This.author = "Jeremy Hinegardner"
6
- This.email = "jeremy@copiousfreetime.org"
7
- This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
8
-
9
- This.ruby_gemspec do |spec|
10
- spec.add_dependency( 'arrayfields', '~> 4.9' )
11
-
12
- spec.add_development_dependency( 'rspec', '~> 3.12' )
13
- spec.add_development_dependency( 'rspec_junit_formatter','~> 0.6' )
14
- spec.add_development_dependency( 'rake', '~> 13.0' )
15
- spec.add_development_dependency( 'rake-compiler', '~> 1.2' )
16
- spec.add_development_dependency( 'rake-compiler-dock', '~> 1.2' )
17
- spec.add_development_dependency( 'rdoc', '~> 6.5' )
18
- spec.add_development_dependency( 'simplecov', '~> 0.21' )
19
- spec.add_development_dependency( 'archive-zip', '~> 0.12' )
20
-
21
- spec.extensions.concat This.extension_conf_files
22
- spec.license = "BSD-3-Clause"
23
- end
24
-
25
- load 'tasks/default.rake'
26
- load 'tasks/extension.rake'
27
- load 'tasks/custom.rake'
data/bin/amalgalite-pack DELETED
@@ -1,147 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'optparse'
3
- require 'pathname'
4
-
5
- #
6
- # add relative paths to the load path if we are not a gem and calculate what the
7
- # strip path will be if we decide to pack --self
8
- #
9
- this_path = Pathname.new( File.expand_path( __FILE__ ) )
10
- gem_path = Pathname.new( Gem.dir )
11
- rel_path = this_path.relative_path_from( gem_path )
12
- if ".." == rel_path.to_s.split( File::SEPARATOR ).first then
13
- lib_path = File.join( File.dirname( __FILE__ ), "../lib" )
14
- $:.unshift lib_path
15
- $:.unshift File.join( File.dirname( __FILE__ ), "../ext" )
16
- end
17
-
18
- #
19
- # snapshot of what is needed for amalgalite requires, this info may only be used
20
- # when packing amalgalite itself
21
- #
22
- loaded_features_before = $LOADED_FEATURES.dup
23
- require 'amalgalite/packer'
24
- loaded_features_after = $LOADED_FEATURES.dup
25
- load_diff = loaded_features_after - loaded_features_before
26
-
27
- #
28
- # strip off any LOAD_PATH elements from the front of load_diff since that
29
- # will conflict with Amalgalite::Packer.amalgalite_require_order. Also
30
- # strip out any 'rubygems' items since those are not used by Amalgalite
31
- # and show as a side effect fo the "require 'amalgalite/packer'"
32
- #
33
- strip_paths = $LOAD_PATH.sort.reverse
34
- amalgalite_needs = []
35
- load_diff.each do |f|
36
- next if f.split( File::SEPARATOR ).include?( "rubygems" )
37
- appended = false
38
- strip_paths.each do |path|
39
- if 0 == f.index(path ) then
40
- rel_path = f.sub( path, '' ).sub(%r{\A#{File::SEPARATOR}},'')
41
- amalgalite_needs << rel_path
42
- appended = true
43
- break
44
- end
45
- end
46
- amalgalite_needs << f unless appended
47
- end
48
-
49
- #
50
- # Commandline parser
51
- #
52
- options = {}
53
- begin
54
- parser = OptionParser.new do |op|
55
- op.banner = "Usage: #{op.program_name} [options] <files>"
56
- op.separator ""
57
-
58
- op.on("--dbfile DB", "The Database file in which to pack files") do |d|
59
- options[:dbfile] = d
60
- end
61
-
62
- op.on("--drop-table", "Drop the table before inserting rows") do |t|
63
- options[:drop_table] = t
64
- end
65
-
66
- op.on("-m", "--merge", "Merge these files into the existing table overwriting rows that conflict") do |m|
67
- options[:merge] = true
68
- end
69
-
70
- op.on("--require-order", "Dump Amalgalite's require order" ) do |m|
71
- puts amalgalite_needs
72
- exit 0
73
- end
74
-
75
- op.on("--self", "pack amalgalite itself into the database") do |d|
76
- options[:self] = true
77
- end
78
-
79
- op.on("--strip-prefix PREFIX", "strip this path prefix off the front of each file") do |p|
80
- options[:strip_prefix] = File.expand_path( p )
81
- end
82
-
83
- op.on("-t", "--table TABLE", "the table name to pack into") do |t|
84
- options[:table_name] = t
85
- end
86
-
87
- op.on("--verbose", "Be verbose about output") do |v|
88
- options[:verbose] = v
89
- end
90
-
91
- op.on("-z", "--compressed", "compress the file contents on storage") do |z|
92
- options[:compressed] = true
93
- end
94
-
95
- end
96
-
97
- parser.parse!
98
- require 'amalgalite/packer'
99
- file_list = ARGV.dup
100
-
101
-
102
- if options[:self] then
103
- options[:table_name] = Amalgalite::Requires::Bootstrap::DEFAULT_BOOTSTRAP_TABLE
104
- core_libs = (amalgalite_needs - Amalgalite::Packer.amalgalite_require_order).delete_if { |l| l.index(".rb").nil? }
105
-
106
- #
107
- # check and make sure nothing is missed
108
- #
109
- core_libs.each do |l|
110
- if l.index("amalgalite") then
111
- STDERR.puts "ERROR! require_order needs an update #{l}"
112
- exit 2
113
- end
114
- end
115
- file_list = core_libs.concat( Amalgalite::Packer.amalgalite_require_order )
116
- if options[:compressed] then
117
- STDERR.puts "Compressing --self is not allowed, reverting to uncompressed"
118
- options[:compressed] = false
119
- end
120
- end
121
- STDERR.puts parser if file_list.empty?
122
-
123
- packer = Amalgalite::Packer.new( options )
124
- packer.pack( file_list )
125
-
126
- rescue OptionParser::ParseError => pe
127
- STDERR.puts "ERROR : #{pe}"
128
- STDERR.puts parser
129
- exit 1
130
- end
131
-
132
- __END__
133
-
134
- puts <<-text
135
-
136
- Packing complete. To utilize the bootstrapping in #{dbfile} you must do
137
- one of the following:
138
-
139
- * statically compile the amalgalite C extension into your application
140
- * require 'amalgalite/#{RUBY_VERSION.sub(/\.\d$/,'')}/amalgalite3'
141
-
142
- Once one of those is working you can boostrap the Amalgalite library with
143
- this line in your code:
144
-
145
- Amalgalite::Requries::Boostrap.lift( 'dbfile' => '#{dbfile}' )
146
-
147
- text
data/examples/a.rb DELETED
@@ -1,9 +0,0 @@
1
- class A
2
- def initialize
3
- puts "Initialized A"
4
- end
5
-
6
- def a
7
- puts "called a"
8
- end
9
- end
data/examples/blob.rb DELETED
@@ -1,88 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- #
4
- # An Amalgalite example showing how Blob's can be utilized
5
- #
6
- # We'll make a database with one table, that we store files in. We'll use the
7
- # Blob incremental IO to store the files and retrieve them from the database
8
- #
9
- # This little program will store 1 or more files in the sqlite3 database when
10
- # the 'store' action is given, and cat a file to stdout on 'retrieve'
11
- #
12
- # e.g.
13
- #
14
- # ruby blob.rb store a.rb b.rb c.rb # => stores a.rb b.rb and c.rb in the db
15
- #
16
- # ruby blob.rb retrieve a.rb # => dumps a.rb to stdout
17
- #
18
-
19
- require 'rubygems'
20
- $: << "../lib"
21
- $: << "../ext"
22
- require 'amalgalite'
23
- require 'amalgalite/packer'
24
- VALID_ACTIONS = %w[ list retrieve store ]
25
- def usage
26
- STDERR.puts "Usage: #{File.basename($0)} ( #{VALID_ACTIONS.join(' | ')} ) file(s)"
27
- exit 1
28
- end
29
-
30
- #
31
- # This does the basic command line parsing
32
- #
33
- usage if ARGV.size < 1
34
- action = ARGV.shift
35
- usage unless VALID_ACTIONS.include? action
36
- file_list = ARGV
37
-
38
- #
39
- # create the database if it doesn't exist
40
- #
41
- db = Amalgalite::Database.new( "filestore.db" )
42
-
43
- case action
44
- #
45
- # list all the files that are stored in the database
46
- #
47
- when 'list'
48
- db.execute("SELECT filename FROM rubylibs") do |row|
49
- puts row['filename']
50
- end
51
-
52
- #
53
- # if we are doing the store action, then loop over the files and store them in
54
- # the database. This will use incremental IO to store the files directly from
55
- # the file names.
56
- #
57
- # It is slightly strange in that you have to tell the Blob object what column
58
- # it is going to, but that is necessary at this point to be able to hook
59
- # automatically into the lower level incremental blob IO api.
60
- #
61
- # This also shows using the $var syntax for binding name sql values in a
62
- # prepared statement.
63
- #
64
- when 'store'
65
- usage if file_list.empty?
66
- require 'amalgalite/packer'
67
-
68
- packer = Amalgalite::Packer.new( :dbfile => 'filestore.db',
69
- :compressed => false )
70
- packer.pack( file_list )
71
-
72
- #
73
- # dump the file that matches the right path to stdout. This also shows
74
- # positional sql varible binding using the '?' syntax.
75
- #
76
- when 'retrieve'
77
- usage if file_list.empty?
78
- db.execute("SELECT id, compressed, filename, contents FROM rubylibs WHERE filename = ?", file_list.first) do |row|
79
- STDERR.puts "Dumping #{row['filename']} to stdout"
80
- if row['compressed'] then
81
- s = row['contents'].to_s
82
- STDOUT.puts Amalgalite::Packer.gunzip( s )
83
- else
84
- row['contents'].write_to_io( STDOUT )
85
- end
86
- end
87
- end
88
- db.close
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # An example of requiring all the files in a table via the Bootstrap::lift
4
- # method.
5
- #
6
- # First use the blob.rb example in this same directory to load the a.rb file
7
- # into an example database:
8
- #
9
- # ruby blob.rb store a.rb
10
- #
11
- # Then run this example.
12
- #
13
-
14
- # Require "ONLY" then binary extension, do not +require+ the ruby based code
15
- $: << "../ext"
16
- require 'amalgalite/amalgalite3'
17
-
18
- # See what the load path is, notice that it is very small
19
- puts "Before $\" : #{$LOADED_FEATURES.inspect}"
20
-
21
- # tell the binary extension to "require" every file in the filestore.db in the
22
- # table 'files' orderd by column 'id'. The 'path' column is added to $LOADED_FEATURES and the
23
- # code in 'data' is evaled.
24
- Amalgalite::Requires::Bootstrap.lift( "dbfile" => "filestore.db",
25
- "table_name" => "rubylibs",
26
- "rowid_column" => "id",
27
- "filename_column" => "filename",
28
- "contents_column" => "contents" )
29
-
30
- # Notice that a.rb is in the list of files that has been required
31
- puts "After $\" : #{$LOADED_FEATURES.inspect}"
32
-
33
- # and look we prove that the code was eval'd appropriately
34
- a = A.new
35
- a.a
36
-