openaustralia-sqlite3 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/API_CHANGES.rdoc +50 -0
  4. data/CHANGELOG.rdoc +273 -0
  5. data/ChangeLog.cvs +88 -0
  6. data/Gemfile +15 -0
  7. data/LICENSE +27 -0
  8. data/Manifest.txt +52 -0
  9. data/README.rdoc +99 -0
  10. data/Rakefile +10 -0
  11. data/ext/sqlite3/backup.c +168 -0
  12. data/ext/sqlite3/backup.h +15 -0
  13. data/ext/sqlite3/database.c +825 -0
  14. data/ext/sqlite3/database.h +15 -0
  15. data/ext/sqlite3/exception.c +94 -0
  16. data/ext/sqlite3/exception.h +8 -0
  17. data/ext/sqlite3/extconf.rb +55 -0
  18. data/ext/sqlite3/sqlite3.c +97 -0
  19. data/ext/sqlite3/sqlite3_ruby.h +52 -0
  20. data/ext/sqlite3/statement.c +447 -0
  21. data/ext/sqlite3/statement.h +16 -0
  22. data/faq/faq.rb +145 -0
  23. data/faq/faq.yml +426 -0
  24. data/lib/sqlite3.rb +10 -0
  25. data/lib/sqlite3/constants.rb +49 -0
  26. data/lib/sqlite3/database.rb +590 -0
  27. data/lib/sqlite3/errors.rb +44 -0
  28. data/lib/sqlite3/pragmas.rb +280 -0
  29. data/lib/sqlite3/resultset.rb +195 -0
  30. data/lib/sqlite3/statement.rb +144 -0
  31. data/lib/sqlite3/translator.rb +119 -0
  32. data/lib/sqlite3/value.rb +57 -0
  33. data/lib/sqlite3/version.rb +25 -0
  34. data/setup.rb +1333 -0
  35. data/tasks/faq.rake +9 -0
  36. data/tasks/gem.rake +37 -0
  37. data/tasks/native.rake +45 -0
  38. data/tasks/vendor_sqlite3.rake +87 -0
  39. data/test/helper.rb +18 -0
  40. data/test/test_backup.rb +33 -0
  41. data/test/test_collation.rb +82 -0
  42. data/test/test_database.rb +375 -0
  43. data/test/test_database_readonly.rb +29 -0
  44. data/test/test_deprecated.rb +44 -0
  45. data/test/test_encoding.rb +153 -0
  46. data/test/test_integration.rb +572 -0
  47. data/test/test_integration_open_close.rb +30 -0
  48. data/test/test_integration_pending.rb +115 -0
  49. data/test/test_integration_resultset.rb +159 -0
  50. data/test/test_integration_statement.rb +194 -0
  51. data/test/test_result_set.rb +37 -0
  52. data/test/test_sqlite3.rb +9 -0
  53. data/test/test_statement.rb +260 -0
  54. data/test/test_statement_execute.rb +35 -0
  55. metadata +218 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2efa444f5d065cf1e4027efc01464a3fd3c75553
4
+ data.tar.gz: 33b44e1cbf85b80f9ad51822c887d74140203bf3
5
+ SHA512:
6
+ metadata.gz: 286b4f5540c5d96b0331ec3de66683d9ca49902fe5b73858239b33cb78e2e3ffbc3f97bbad0502285ed882d44a023390d54c3f06897afb86255b748add338c34
7
+ data.tar.gz: 2225d96a2ce42ad53204a920e2411b389adce3d18851f798123e2753cceb67c5fc490f8f6ea8774a11124403b687a1236c0087256544996b67525ac2a4343bae
File without changes
@@ -0,0 +1,50 @@
1
+ = API Changes
2
+
3
+ * SQLite3::Database#execute only accepts an array for bind parameters.
4
+
5
+ * SQLite3::ResultSet used to query the database for the first row, regardless
6
+ of whether the user asked for it or not. I have removed that so that rows
7
+ will not be returned until the user asks for them. This is a subtle but
8
+ sometimes important change in behavior.
9
+
10
+ 83882d2208ed189361617d5ab8532a325aaf729d
11
+
12
+ * SQLite3::Database#trace now takes either a block or an object that responds
13
+ to "call". The previous implementation passed around a VALUE that was cast
14
+ to a void *. This is dangerous because the value could get garbage collected
15
+ before the proc was called. If the user wants data passed around with the
16
+ block, they should use variables available to the closure or create an
17
+ object.
18
+
19
+ * SQLite3::Statement#step automatically converts to ruby types, where before
20
+ all values were automatically yielded as strings. This will only be a
21
+ problem for people who were accessing information about the database that
22
+ wasn't previously passed through the pure ruby conversion code.
23
+
24
+ * SQLite3::Database#errmsg no longer takes a parameter to return error
25
+ messages as UTF-16. Do people even use that? I opt for staying UTF-8 when
26
+ possible. See test_integration.rb test_errmsg_utf16
27
+
28
+ * SQLite3::Database#authorize same changes as trace
29
+
30
+ * test/test_tc_database.rb was removed because we no longer use the Driver
31
+ design pattern.
32
+
33
+ = Garbage Collection Strategy
34
+
35
+ All statements keep pointers back to their respective database connections.
36
+ The @connection instance variable on the Statement handle keeps the database
37
+ connection alive. Memory allocated for a statement handler will be freed in
38
+ two cases:
39
+
40
+ * close is called on the statement
41
+ * The SQLite3::Database object gets garbage collected
42
+
43
+ We can't free the memory for the statement in the garbage collection function
44
+ for the statement handler. The reason is because there exists a race
45
+ condition. We cannot guarantee the order in which objects will be garbage
46
+ collected. So, it is possible that a connection and a statement are up for
47
+ garbage collection. If the database connection were to be free'd before the
48
+ statement, then boom. Instead we'll be conservative and free unclosed
49
+ statements when the connection is terminated.
50
+
@@ -0,0 +1,273 @@
1
+ === (in Git)
2
+
3
+ * Bugfixes:
4
+ * Reset exception message. Closes #80
5
+ * Reduce warnings due unused pointers. Closes #89
6
+ * Add BSD-3 license reference to gemspec. Refs #99 and #106
7
+
8
+ === 1.3.8 / 2013-08-17
9
+
10
+ * Enhancements:
11
+ * Windows: build against SQLite 3.7.17
12
+
13
+ * Bugfixes:
14
+ * Reset exception message. Closes #80
15
+ * Correctly convert BLOB values to Ruby. Closes #65
16
+ * Add MIT license reference to gemspec. Closes #99
17
+ * Remove unused pointer. Closes #89
18
+
19
+ * Internal:
20
+ * Backport improvements in cross compilation for Windows
21
+ * Use of Minitest for internal tests
22
+ * Use Gemfile (generated by Hoe) to deal with dependencies
23
+ * Cleanup Travis CI
24
+
25
+ === 1.3.7 / 2013-01-11
26
+
27
+ * Bugfixes
28
+ * Closing a bad statement twice will not segv.
29
+ * Aggregate handlers are initialized on each query. Closes #44
30
+
31
+ * Internal
32
+ * Unset environment variables that could affect cross compilation.
33
+
34
+ === 1.3.6 / 2012-04-16
35
+
36
+ * Enhancements
37
+ * Windows: build against SQLite 3.7.11
38
+ * Added SQLite3::ResultSet#each_hash for fetching each row as a hash.
39
+ * Added SQLite3::ResultSet#next_hash for fetching one row as a hash.
40
+
41
+ * Bugfixes
42
+ * Support both UTF-16LE and UTF-16BE encoding modes on PPC. Closes #63
43
+ * Protect parameters to custom functions from being garbage collected too
44
+ soon. Fixes #60. Thanks hirataya!
45
+ * Fix backwards compatibility with 1.2.5 with bind vars and `query` method.
46
+ Fixes #35.
47
+ * Fix double definition error caused by defining sqlite3_int64/uint64.
48
+ * Fix suspicious version regexp.
49
+
50
+ * Deprecations
51
+ * ArrayWithTypesAndFields#types is deprecated and the class will be removed
52
+ in version 2.0.0. Please use the `types` method on the ResultSet class
53
+ that created this object.
54
+ * ArrayWithTypesAndFields#fields is deprecated and the class will be removed
55
+ in version 2.0.0. Please use the `columns` method on the ResultSet class
56
+ that created this object.
57
+ * The ArrayWithTypesAndFields class will be removed in 2.0.0
58
+ * The ArrayWithTypes class will be removed in 2.0.0
59
+ * HashWithTypesAndFields#types is deprecated and the class will be removed
60
+ in version 2.0.0. Please use the `types` method on the ResultSet class
61
+ that created this object.
62
+ * HashWithTypesAndFields#fields is deprecated and the class will be removed
63
+ in version 2.0.0. Please use the `columns` method on the ResultSet class
64
+ that created this object.
65
+
66
+ === 1.3.5 / 2011-12-03 - ZOMG Holidays are here Edition!
67
+
68
+ * Enhancements
69
+ * Windows: build against SQLite 3.7.9
70
+ * Static: enable SQLITE_ENABLE_COLUMN_METADATA
71
+ * Added Statement#clear_bindings! to set bindings back to nil
72
+
73
+ * Bugfixes
74
+ * Fixed a segv on Database.new. Fixes #34 (thanks nobu!)
75
+ * Database error is not reset, so don't check it in Statement#reset!
76
+ * Remove conditional around Bignum statement bindings.
77
+ Fixes #52. Fixes #56. Thank you Evgeny Myasishchev.
78
+
79
+ * Internal
80
+ * Use proper endianness when testing database connection with UTF-16.
81
+ Fixes #40. Fixes #51
82
+ * Use -fPIC for static compilation when host is x86_64.
83
+
84
+ === 1.3.4 / 2011-07-25
85
+
86
+ * Enhancements:
87
+ * Windows: build against SQLite 3.7.7.1
88
+ * Windows: build static binaries that do not depend on sqlite3.dll be
89
+ installed anymore
90
+
91
+ * Bugfixes
92
+ * Backup API is conditionaly required so that older libsqlite3 can be used.
93
+ Thanks Hongli Lai.
94
+ * Fixed segmentation fault when nil is passed to SQLite3::Statement.new
95
+ * Fix extconf's hardcoded path that affected installation on certain systems.
96
+
97
+ === 1.3.3 / 2010-01-16
98
+
99
+ * Bugfixes
100
+ * Abort on installation if sqlite3_backup_init is missing. Fixes #19
101
+ * Gem has been renamed to 'sqlite3'. Please use `gem install sqlite3`
102
+
103
+ === 1.3.2 / 2010-10-30 / RubyConf Uruguay Edition!
104
+
105
+ * Enhancements:
106
+ * Windows: build against 3.7.3 version of SQLite3
107
+ * SQLite3::Database can now be open as readonly
108
+
109
+ db = SQLite3::Database.new('my.db', :readonly => true)
110
+
111
+ * Added SQLite3::SQLITE_VERSION and SQLite3::SQLITE_VERSION_NUMBER [nurse]
112
+
113
+ * Bugfixes
114
+ * type_translation= works along with Database#execute and a block
115
+ * defined functions are kept in a hash to prevent GC. #7
116
+ * Removed GCC specific flags from extconf.
117
+
118
+ * DEPRECATIONS
119
+ * SQLite3::Database#type_translation= will be deprecated in the future with
120
+ no replacement.
121
+ * SQlite3::Version will be deprecated in 2.0.0 with SQLite3::VERSION as the
122
+ replacement.
123
+
124
+ === 1.3.1 / 2010-07-09
125
+
126
+ * Enhancements
127
+ * Custom collations may be defined using SQLite3::Database#collation
128
+
129
+ * Bugfixes
130
+ * Statements returning 0 columns are automatically stepped. [RF #28308]
131
+ * SQLite3::Database#encoding works on 1.8 and 1.9
132
+
133
+ === 1.3.0 / 2010-06-06
134
+
135
+ * Enhancements
136
+ * Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove]
137
+ See API_CHANGES document for details.
138
+ This closes: Bug #27300, Bug #27241, Patch #16020
139
+ * Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
140
+ * Added support for type translations [tenderlove]
141
+
142
+ @db.translator.add_translator('sometime') do |type, thing|
143
+ 'output' # this will be returned as value for that column
144
+ end
145
+
146
+ * Experimental
147
+ * Added API to access and load extensions. [kashif]
148
+ These functions maps directly into SQLite3 own enable_load_extension()
149
+ and load_extension() C-API functions. See SQLite3::Database API documentation for details.
150
+ This closes: Patches #9178
151
+
152
+ * Bugfixes
153
+ * Corrected gem dependencies (runtime and development)
154
+ * Fixed threaded tests [Alexey Borzenkov]
155
+ * Removed GitHub gemspec
156
+ * Fixed "No definition for" warnings from RDoc
157
+ * Generate zip and tgz files for releases
158
+ * Added Luis Lavena as gem Author (maintainer)
159
+ * Prevent mkmf interfere with Mighty Snow Leopard
160
+ * Allow extension compilation search for common lib paths [kashif]
161
+ (lookup /usr/local, /opt/local and /usr)
162
+ * Corrected extension compilation under MSVC [romuloceccon]
163
+ * Define load_extension functionality based on availability [tenderlove]
164
+ * Deprecation notices for Database#query. Fixes RF #28192
165
+
166
+ === 1.3.0.beta.2 / 2010-05-15
167
+
168
+ * Enhancements
169
+ * Added support for type translations [tenderlove]
170
+
171
+ @db.translator.add_translator('sometime') do |type, thing|
172
+ 'output' # this will be returned as value for that column
173
+ end
174
+
175
+ * Bugfixes
176
+ * Allow extension compilation search for common lib paths [kashif]
177
+ (lookup /usr/local, /opt/local and /usr)
178
+ * Corrected extension compilation under MSVC [romuloceccon]
179
+ * Define load_extension functionality based on availability [tenderlove]
180
+ * Deprecation notices for Database#query. Fixes RF #28192
181
+
182
+ === 1.3.0.beta.1 / 2010-05-10
183
+
184
+ * Enhancements
185
+ * Complete rewrite of C-based adapter from SWIG to hand-crafted one [tenderlove]
186
+ See API_CHANGES document for details.
187
+ This closes: Bug #27300, Bug #27241, Patch #16020
188
+ * Improved UTF, Unicode, M17N, all that handling and proper BLOB handling [tenderlove, nurse]
189
+
190
+ * Experimental
191
+ * Added API to access and load extensions. [kashif]
192
+ These functions maps directly into SQLite3 own enable_load_extension()
193
+ and load_extension() C-API functions. See SQLite3::Database API documentation for details.
194
+ This closes: Patches #9178
195
+
196
+ * Bugfixes
197
+ * Corrected gem dependencies (runtime and development)
198
+ * Fixed threaded tests [Alexey Borzenkov]
199
+ * Removed GitHub gemspec
200
+ * Fixed "No definition for" warnings from RDoc
201
+ * Generate zip and tgz files for releases
202
+ * Added Luis Lavena as gem Author (maintainer)
203
+ * Prevent mkmf interfere with Mighty Snow Leopard
204
+
205
+ === 1.2.5 / 25 Jul 2009
206
+
207
+ * Check for illegal nil before executing SQL [Erik Veenstra]
208
+ * Switch to Hoe for gem task management and packaging.
209
+ * Advertise rake-compiler as development dependency.
210
+ * Build gem binaries for Windows.
211
+ * Improved Ruby 1.9 support compatibility.
212
+ * Taint returned values. Patch #20325.
213
+ * Database.open and Database.new now take an optional block [Gerrit Kaiser]
214
+
215
+
216
+ === 1.2.4.1 (internal) / 5 Jul 2009
217
+
218
+ * Check for illegal nil before executing SQL [Erik Veenstra]
219
+ * Switch to Hoe for gem task management and packaging.
220
+ * Advertise rake-compiler as development dependency.
221
+ * Build gem binaries for Windows.
222
+ * Improved Ruby 1.9 support compatibility.
223
+
224
+
225
+ === 1.2.4 / 27 Aug 2008
226
+
227
+ * Package the updated C file for source builds. [Jamis Buck]
228
+
229
+
230
+ === 1.2.3 / 26 Aug 2008
231
+
232
+ * Fix incorrect permissions on database.rb and translator.rb [Various]
233
+
234
+ * Avoid using Object#extend for greater speedups [Erik Veenstra]
235
+
236
+ * Ruby 1.9 compatibility tweaks for Array#zip [jimmy88@gmail.com]
237
+
238
+ * Fix linking against Ruby 1.8.5 [Rob Holland <rob@inversepath.com>]
239
+
240
+
241
+ === 1.2.2 / 31 May 2008
242
+
243
+ * Make the table_info method adjust the returned default value for the rows
244
+ so that the sqlite3 change in 3.3.8 and greater can be handled
245
+ transparently [Jamis Buck <jamis@37signals.com>]
246
+
247
+ * Ruby 1.9 compatibility tweaks [Roman Le Negrate <roman2k@free.fr>]
248
+
249
+ * Various performance enhancements [thanks Erik Veenstra]
250
+
251
+ * Correct busy_handler documentation [Rob Holland <rob@inversepath.com>]
252
+
253
+ * Use int_bind64 on Fixnum values larger than a 32bit C int can take. [Rob Holland <rob@inversepath.com>]
254
+
255
+ * Work around a quirk in SQLite's error reporting by calling sqlite3_reset
256
+ to produce a more informative error code upon a failure from
257
+ sqlite3_step. [Rob Holland <rob@inversepath.com>]
258
+
259
+ * Various documentation, test, and style tweaks [Rob Holland <rob@inversepath.com>]
260
+
261
+ * Be more granular with time/data translation [Rob Holland <rob@inversepath.com>]
262
+
263
+ * Use Date directly for parsing rather than going via Time [Rob Holland <rob@inversepath.com>]
264
+
265
+ * Check for the rt library and fdatasync so we link against that when
266
+ needed [Rob Holland <rob@inversepath.com>]
267
+
268
+ * Rename data structures to avoid collision on win32. based on patch
269
+ by: Luis Lavena [Rob Holland <rob@inversepath.com>]
270
+
271
+ * Add test for defaults [Daniel Rodríguez Troitiño]
272
+
273
+ * Correctly unquote double-quoted pragma defaults [Łukasz Dargiewicz <lukasz.dargiewicz@gmail.com>]
@@ -0,0 +1,88 @@
1
+ 2005-01-05 09:40 minam
2
+
3
+ * Rakefile, sqlite3-ruby-win32.gemspec, sqlite3-ruby.gemspec: Added
4
+ win32 gem.
5
+
6
+ 2005-01-05 07:31 minam
7
+
8
+ * Rakefile, test/tc_integration.rb, test/tests.rb: Added
9
+ native-vs-dl benchmark to Rakefile. Added SQLITE3_DRIVERS
10
+ environment variable to integration test to specify which
11
+ driver(s) should be tested (defaults to "Native").
12
+
13
+ 2005-01-04 14:26 minam
14
+
15
+ * ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
16
+ lib/sqlite3/driver/native/driver.rb, test/tc_database.rb,
17
+ test/tc_integration.rb, test/tests.rb: Unit tests: done. Bugs:
18
+ fixed.
19
+
20
+ 2005-01-03 23:13 minam
21
+
22
+ * ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
23
+ lib/sqlite3/driver/dl/driver.rb,
24
+ lib/sqlite3/driver/native/driver.rb, test/tc_integration.rb:
25
+ Custom functions (aggregate and otherwise) are supported by the
26
+ native driver now. Test cases for the same.
27
+
28
+ 2005-01-03 13:51 minam
29
+
30
+ * ext/sqlite3_api/MANIFEST, ext/sqlite3_api/extconf.rb,
31
+ ext/sqlite3_api/post-clean.rb, ext/sqlite3_api/post-distclean.rb,
32
+ ext/sqlite3_api/sqlite3_api.i, lib/sqlite3/database.rb,
33
+ lib/sqlite3/resultset.rb, lib/sqlite3/version.rb,
34
+ lib/sqlite3/driver/dl/driver.rb,
35
+ lib/sqlite3/driver/native/driver.rb, test/native-vs-dl.rb,
36
+ test/tc_integration.rb: Added preliminary implementation of
37
+ native driver (swig-based), and integration tests.
38
+
39
+ 2004-12-29 19:37 minam
40
+
41
+ * lib/sqlite3/driver/dl/driver.rb: Some fixes to allow the DL
42
+ driver to work with Ruby 1.8.1.
43
+
44
+ 2004-12-29 14:52 minam
45
+
46
+ * lib/sqlite3/: database.rb, version.rb: Made #quote a class method
47
+ (again). Bumped version to 0.6.
48
+
49
+ 2004-12-25 22:59 minam
50
+
51
+ * lib/sqlite3/driver/dl/api.rb: Added check for darwin in supported
52
+ platforms (thanks to bitsweat).
53
+
54
+ 2004-12-22 12:38 minam
55
+
56
+ * Rakefile: Rakefile wasn't packaging the README file.
57
+
58
+ 2004-12-21 22:28 minam
59
+
60
+ * Rakefile, sqlite3-ruby.gemspec, test/bm.rb: Packaging now works.
61
+ Added benchmarks.
62
+
63
+ 2004-12-21 21:45 minam
64
+
65
+ * LICENSE, README, Rakefile, setup.rb, sqlite3-ruby.gemspec,
66
+ doc/faq/faq.rb, doc/faq/faq.yml, lib/sqlite3.rb,
67
+ lib/sqlite3/statement.rb, lib/sqlite3/constants.rb,
68
+ lib/sqlite3/database.rb, lib/sqlite3/resultset.rb,
69
+ lib/sqlite3/translator.rb, lib/sqlite3/value.rb,
70
+ lib/sqlite3/version.rb, lib/sqlite3/errors.rb,
71
+ lib/sqlite3/pragmas.rb, lib/sqlite3/driver/dl/api.rb,
72
+ lib/sqlite3/driver/dl/driver.rb, test/mocks.rb,
73
+ test/tc_database.rb, test/tests.rb, test/driver/dl/tc_driver.rb:
74
+ Initial import
75
+
76
+ 2004-12-21 21:45 minam
77
+
78
+ * LICENSE, README, Rakefile, setup.rb, sqlite3-ruby.gemspec,
79
+ doc/faq/faq.rb, doc/faq/faq.yml, lib/sqlite3.rb,
80
+ lib/sqlite3/statement.rb, lib/sqlite3/constants.rb,
81
+ lib/sqlite3/database.rb, lib/sqlite3/resultset.rb,
82
+ lib/sqlite3/translator.rb, lib/sqlite3/value.rb,
83
+ lib/sqlite3/version.rb, lib/sqlite3/errors.rb,
84
+ lib/sqlite3/pragmas.rb, lib/sqlite3/driver/dl/api.rb,
85
+ lib/sqlite3/driver/dl/driver.rb, test/mocks.rb,
86
+ test/tc_database.rb, test/tests.rb, test/driver/dl/tc_driver.rb:
87
+ Initial revision
88
+
data/Gemfile ADDED
@@ -0,0 +1,15 @@
1
+ # -*- ruby -*-
2
+
3
+ # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
4
+
5
+ source "https://rubygems.org/"
6
+
7
+
8
+ gem "minitest", "~>5.0", :group => [:development, :test]
9
+ gem "rdoc", "~>4.0", :group => [:development, :test]
10
+ gem "rake-compiler", "~>0.9.1", :group => [:development, :test]
11
+ gem "mini_portile", "~>0.5.1", :group => [:development, :test]
12
+ gem "hoe-bundler", "~>1.0", :group => [:development, :test]
13
+ gem "hoe", "~>3.7", :group => [:development, :test]
14
+
15
+ # vim: syntax=ruby
data/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2004, Jamis Buck (jamis@jamisbuck.org)
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ * The names of its contributors may not be used to endorse or promote
15
+ products derived from this software without specific prior written
16
+ permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.