sbf-do_sqlite3 0.10.17

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 93e77ffe1bd340c6e9cc68bd64f07cd6f50369cbe210ba0c2849d8a81f5a0e5d
4
+ data.tar.gz: d96c14f4361dc477ee0b1e11f8f700c24c4c5097f00dce7f99d67a03512b146c
5
+ SHA512:
6
+ metadata.gz: f96eed84a64a072b0dc391c75f0d7c37151ebf9adcccf32efaa6cc3c672bc0b5c6d0173b2c3cae181fad0ee1026012f7ed79fca2173dbc65db9003f2a3fe59cc
7
+ data.tar.gz: ff14bea8455d2fbc4844cf2dc194866d5bbee87e46b66aaf995389390521a88b248e7a8968ed8100fa0b8949006910d8e5c6cada2172e85b6421ecd83a6df667
@@ -0,0 +1,119 @@
1
+ ## 0.10.17 2016-01-24
2
+
3
+ No changes
4
+
5
+ ## 0.10.16 2015-05-17
6
+
7
+ No changes
8
+
9
+ ## 0.10.15 2015-02-15
10
+
11
+ * Ruby 2.2 support
12
+ * Windows support on 2.1.x and 2.2.x
13
+
14
+ ## 0.10.14 2014-02-13
15
+
16
+ * Don't do DNS lookup in transaction loading
17
+ * Allow for subsecond timestamp parsing
18
+
19
+ ## 0.10.13 2013-05-27
20
+
21
+ * Windows binary for Ruby 2.0
22
+
23
+ ## 0.10.12 2013-01-21
24
+
25
+ * jdbc-sqlite3 driver loading fix
26
+ * Improve handling of floats / doubles in sqlite3 on JRuby
27
+
28
+ ## 0.10.11 2012-12-29
29
+
30
+ * Rename C symbols to prevent name collitions
31
+
32
+ ## 0.10.10 2012-10-11
33
+
34
+ * Add support to C driver for busy\_timeout
35
+
36
+ ## 0.10.9 2012-08-13
37
+
38
+ * Fix segfault when loading custom extensions
39
+
40
+ ## 0.10.8 2012-02-10
41
+
42
+ * Ruby 1.9.3 compatibility on Windows
43
+ * Fix issue with sqlite3_load_extension
44
+
45
+ ## 0.10.7 2011-10-13
46
+
47
+ * Ruby 1.9.3 compatibility
48
+
49
+ ## 0.10.6 2011-05-22
50
+
51
+ Bugfixes
52
+ * Fix an issue on some platforms when multiple DO drivers are loaded
53
+
54
+ ## 0.10.5 2011-05-03
55
+
56
+ Bugfixes
57
+ * Fix an issue with DateTime
58
+
59
+ ## 0.10.4 2011-04-28
60
+
61
+ New features
62
+ * Add save point to transactions (all)
63
+ * JRuby 1.9 mode support (encodings etc.)
64
+
65
+ Bugfixes
66
+ * Fix bug when using nested transactions in concurrent scenarios (all)
67
+ * Use column aliases instead of names (jruby)
68
+ * DST calculation fixes (all)
69
+
70
+ Other
71
+ * Refactor to DRY up the adapters (all)
72
+ * Many style fixes
73
+ * Switch back to RSpec
74
+
75
+ ## 0.10.3 2011-01-30
76
+ * Reworked transactions
77
+ * Fix a DST bug that could cause datetimes in the wrong timezone
78
+
79
+ ## 0.10.2 2010-05-19
80
+ * Make Encoding.default_internal aware
81
+ * Rework logging for making callbacks possible
82
+ * Remove handling Object types directly
83
+
84
+ ## 0.10.1.1 2010-01-24
85
+
86
+ * JRuby-only: Fix for handling boolean results with a TRUE value.
87
+
88
+ ## 0.10.1 2010-01-08
89
+
90
+ * Support for Ruby 1.8 and 1.9 on Windows.
91
+ * Switch to Jeweler for Gem building tasks (this change may be temporary).
92
+ * Switch to using Bacon for running specs: This should make specs friendlier to
93
+ new Ruby implementations that are not yet 100% MRI-compatible, and in turn,
94
+ pave the road for our own IronRuby and MacRuby support.
95
+ * Switch to the newly added rake-compiler `JavaExtensionTask` for compiling
96
+ JRuby extensions, instead of our (broken) home-grown solution.
97
+
98
+ ## 0.10.0 2009-09-15
99
+ * Improvements
100
+ * JRuby Support (using *do_jdbc*)
101
+
102
+ ## 0.9.12 2009-05-17
103
+ * Improvements
104
+ * rake-compiler for Windows support
105
+
106
+ ## 0.9.11 2009-01-19
107
+ * Improvements
108
+ * Ruby 1.9 support
109
+ * Fixes
110
+ * Fix Windows gem
111
+
112
+ ## 0.9.9 2008-11-27
113
+ * Improvements
114
+ * Added cross compile rake tasks for Windows gems [Jonathan Stott, Luis Lavena]
115
+ * Added initial support for Ruby 1.9 [John Harrison]
116
+
117
+ * Bug Fixes
118
+ * Removed sqlite3.dll from source gem [Dan Kubb]
119
+ * Removed hard coded .bundle from source [Dirkjan Bussink]
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2007 - 2011 Yehuda Katz, Dirkjan Bussink
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.markdown ADDED
@@ -0,0 +1,94 @@
1
+ # do_sqlite3
2
+
3
+ * <http://dataobjects.info>
4
+
5
+ ## Description
6
+
7
+ A SQLite3 driver for DataObjects.
8
+
9
+ ## Features/Problems
10
+
11
+ This driver implements the DataObjects API for the SQLite3 relational database.
12
+
13
+ ## Synopsis
14
+
15
+ An example of usage:
16
+
17
+ ```ruby
18
+ @connection = DataObjects::Connection.new("sqlite3://employees")
19
+ @reader = @connection.create_command('SELECT * FROM users').execute_reader
20
+ @reader.next!
21
+ ```
22
+
23
+ ## Requirements
24
+
25
+ This driver is provided for the following platforms:
26
+ * Ruby MRI (1.8.6/7), 1.9: tested on Linux, Mac OS X and Windows platforms.
27
+
28
+ Additionally you should have the following prerequisites:
29
+ * `data_objects` gem
30
+
31
+ ## Install
32
+
33
+ To install the gem:
34
+
35
+ gem install do_sqlite3
36
+
37
+ To compile and install from source:
38
+
39
+ * Install rake-compiler: `gem install rake-compiler`.
40
+
41
+ * For MRI/Rubinius extensions:
42
+ * Install the `gcc` compiler. On OS X, you should install XCode tools. On
43
+ Ubuntu, run `apt-get install build-essential`.
44
+ * Install Ruby and SQLite3.
45
+ * Install the Ruby and SQLite3 development headers.
46
+ * On Debian-Linux distributions, you can install the following packages
47
+ with `apt`: `ruby-dev` `libsqlite3-dev`.
48
+ * If you want to cross-compile for Windows:
49
+ * Install MinGW:
50
+ * On Debian-Linux distributions, you can install the following package
51
+ with `apt`: `mingw32`.
52
+ * On OS X, this can install the following package with MacPorts: `i386-mingw32-gcc`.
53
+ * Run `rake-compiler cross-ruby`.
54
+ * Run `rake-compiler update-config`.
55
+
56
+ * For JRuby extensions:
57
+ * Install the Java Development Kit (provided if you are
58
+ on a recent version of Mac OS X) from <http://java.sun.com>.
59
+ * Install a recent version of JRuby. Ensure `jruby` is in your `PATH` and/or
60
+ you have configured the `JRUBY_HOME` environment variable to point to your
61
+ JRuby installation.
62
+ * Install `data_objects` and `do_jdbc` with `jruby -S rake install`.
63
+
64
+ * Then, install this driver with `(jruby -S) rake install`.
65
+
66
+ For more information, see the SQLite3 driver wiki page:
67
+ <http://wiki.github.com/firespring/datamapper-do/sqlite3>.
68
+
69
+ ## Developers
70
+
71
+ Follow the above installation instructions. Additionally, you'll need:
72
+ * `rspec` gem for running specs.
73
+ * `YARD` gem for generating documentation.
74
+
75
+ See the DataObjects wiki for more comprehensive information on installing and
76
+ contributing to the JRuby-variant of this driver:
77
+ <http://wiki.github.com/firespring/datamapper-do/jruby>.
78
+
79
+ To run specs:
80
+
81
+ rake spec
82
+
83
+ To run specs without compiling extensions first:
84
+
85
+ rake spec_no_compile
86
+
87
+ To run individual specs:
88
+
89
+ rake spec SPEC=spec/connection_spec.rb
90
+
91
+ ## License
92
+
93
+ This code is licensed under an **MIT (X11) License**. Please see the
94
+ accompanying `LICENSE` file.
data/Rakefile ADDED
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'pathname'
3
+ require 'bundler'
4
+ require 'rubygems/package_task'
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ require 'rake'
8
+ require 'rake/clean'
9
+
10
+ ROOT = Pathname(__FILE__).dirname.expand_path
11
+
12
+ # rubocop:disable Style/StringConcatenation
13
+ require ROOT + 'lib/do_sqlite3/version'
14
+ # rubocop:enable Style/StringConcatenation
15
+
16
+ SUDO = 'sudo'.freeze unless ENV['SUDOLESS']
17
+ BINARY_VERSION = '3071700'.freeze
18
+
19
+ CLEAN.include(%w({tmp,pkg}/ **/*.{o,so,bundle,jar,log,a,gem,dSYM,obj,pdb,exp,DS_Store,rbc,db} ext/do_sqlite3/Makefile ext-java/target))
20
+
21
+ FileList['tasks/**/*.rake'].each { |task| import task }
@@ -0,0 +1,55 @@
1
+ #ifndef RUBY_COMPAT_H
2
+ #define RUBY_COMPAT_H
3
+
4
+ /*
5
+ * Rules for better ruby C extensions:
6
+ *
7
+ * Never use the R<TYPE> macros directly, always use R<TYPE>_<FIELD>
8
+ *
9
+ * Never compare with RBASIC(obj)->klass, always use
10
+ * rb_obj_is_instance_of()
11
+ *
12
+ * Never use RHASH(obj)->tbl or RHASH_TBL().
13
+ *
14
+ */
15
+
16
+
17
+ // Array
18
+ #ifndef RARRAY_PTR
19
+ #define RARRAY_PTR(obj) RARRAY(obj)->ptr
20
+ #endif
21
+
22
+ #ifndef RARRAY_LEN
23
+ #define RARRAY_LEN(obj) RARRAY(obj)->len
24
+ #endif
25
+
26
+ // String
27
+ #ifndef RSTRING_PTR
28
+ #define RSTRING_PTR(obj) RSTRING(obj)->ptr
29
+ #endif
30
+
31
+ #ifndef RSTRING_LEN
32
+ #define RSTRING_LEN(obj) RSTRING(obj)->len
33
+ #endif
34
+
35
+ #ifndef rb_str_ptr
36
+ #define rb_str_ptr(str) RSTRING_PTR(str)
37
+ #endif
38
+
39
+ #ifndef rb_str_ptr_readonly
40
+ #define rb_str_ptr_readonly(str) RSTRING_PTR(str)
41
+ #endif
42
+
43
+ #ifndef rb_str_flush
44
+ #define rb_str_flush(str)
45
+ #endif
46
+
47
+ #ifndef rb_str_update
48
+ #define rb_str_update(str)
49
+ #endif
50
+
51
+ #ifndef rb_str_len
52
+ #define rb_str_len(str) RSTRING_LEN(str)
53
+ #endif
54
+
55
+ #endif