amalgalite 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/ext/sqlite3.h CHANGED
@@ -30,7 +30,7 @@
30
30
  ** the version number) and changes its name to "sqlite3.h" as
31
31
  ** part of the build process.
32
32
  **
33
- ** @(#) $Id: sqlite.h.in,v 1.394 2008/08/25 21:23:02 drh Exp $
33
+ ** @(#) $Id: sqlite.h.in,v 1.398 2008/09/10 13:09:24 drh Exp $
34
34
  */
35
35
  #ifndef _SQLITE3_H_
36
36
  #define _SQLITE3_H_
@@ -57,7 +57,7 @@ extern "C" {
57
57
  #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
58
58
  /* GCC added the deprecated attribute in version 3.1 */
59
59
  #define SQLITE_DEPRECATED __attribute__ ((deprecated))
60
- #elif defined(_MSC_VER)
60
+ #elif defined(_MSC_VER) && (_MSC_VER>1200)
61
61
  #define SQLITE_DEPRECATED __declspec(deprecated)
62
62
  #else
63
63
  #define SQLITE_DEPRECATED
@@ -70,7 +70,7 @@ extern "C" {
70
70
  /* I can confirm that it does not work on version 4.1.0... */
71
71
  /* First appears in GCC docs for version 4.3.0 */
72
72
  #define SQLITE_EXPERIMENTAL __attribute__ ((warning ("is experimental")))
73
- #elif defined(_MSC_VER)
73
+ #elif defined(_MSC_VER) && (_MSC_VER>1200)
74
74
  #define SQLITE_EXPERIMENTAL __declspec(deprecated("was declared experimental"))
75
75
  #else
76
76
  #define SQLITE_EXPERIMENTAL
@@ -116,8 +116,8 @@ extern "C" {
116
116
  ** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
117
117
  ** are the major version, minor version, and release number.
118
118
  */
119
- #define SQLITE_VERSION "3.6.2"
120
- #define SQLITE_VERSION_NUMBER 3006002
119
+ #define SQLITE_VERSION "3.6.3"
120
+ #define SQLITE_VERSION_NUMBER 3006003
121
121
 
122
122
  /*
123
123
  ** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
@@ -154,8 +154,9 @@ int sqlite3_libversion_number(void);
154
154
  ** CAPI3REF: Test To See If The Library Is Threadsafe {H10100} <S60100>
155
155
  **
156
156
  ** SQLite can be compiled with or without mutexes. When
157
- ** the [SQLITE_THREADSAFE] C preprocessor macro is true, mutexes
158
- ** are enabled and SQLite is threadsafe. When that macro is false,
157
+ ** the [SQLITE_THREADSAFE] C preprocessor macro 1 or 2, mutexes
158
+ ** are enabled and SQLite is threadsafe. When the
159
+ ** [SQLITE_THREADSAFE] macro is 0,
159
160
  ** the mutexes are omitted. Without the mutexes, it is not safe
160
161
  ** to use SQLite concurrently from more than one thread.
161
162
  **
@@ -177,12 +178,13 @@ int sqlite3_libversion_number(void);
177
178
  ** only the default compile-time setting, not any run-time changes
178
179
  ** to that setting.
179
180
  **
181
+ ** See the [threading mode] documentation for additional information.
182
+ **
180
183
  ** INVARIANTS:
181
184
  **
182
185
  ** {H10101} The [sqlite3_threadsafe()] function shall return nonzero if
183
- ** SQLite was compiled with the its mutexes enabled by default
184
- ** or zero if SQLite was compiled such that mutexes are
185
- ** permanently disabled.
186
+ ** and only if
187
+ ** SQLite was compiled with the its mutexes enabled by default.
186
188
  **
187
189
  ** {H10102} The value returned by the [sqlite3_threadsafe()] function
188
190
  ** shall not change when mutex setting are modified at
@@ -1097,7 +1099,9 @@ struct sqlite3_mem_methods {
1097
1099
  ** The application is responsible for serializing access to
1098
1100
  ** [database connections] and [prepared statements]. But other mutexes
1099
1101
  ** are enabled so that SQLite will be safe to use in a multi-threaded
1100
- ** environment.</dd>
1102
+ ** environment as long as no two threads attempt to use the same
1103
+ ** [database connection] at the same time. See the [threading mode]
1104
+ ** documentation for additional information.</dd>
1101
1105
  **
1102
1106
  ** <dt>SQLITE_CONFIG_SERIALIZED</dt>
1103
1107
  ** <dd>There are no arguments to this option. This option enables
@@ -1108,11 +1112,7 @@ struct sqlite3_mem_methods {
1108
1112
  ** to [database connections] and [prepared statements] so that the
1109
1113
  ** application is free to use the same [database connection] or the
1110
1114
  ** same [prepared statement] in different threads at the same time.
1111
- **
1112
- ** <p>This configuration option merely sets the default mutex
1113
- ** behavior to serialize access to [database connections]. Individual
1114
- ** [database connections] can override this setting
1115
- ** using the [SQLITE_OPEN_NOMUTEX] flag to [sqlite3_open_v2()].</p></dd>
1115
+ ** See the [threading mode] documentation for additional information.</dd>
1116
1116
  **
1117
1117
  ** <dt>SQLITE_CONFIG_MALLOC</dt>
1118
1118
  ** <dd>This option takes a single argument which is a pointer to an
@@ -1575,6 +1575,10 @@ int sqlite3_complete16(const void *sql);
1575
1575
  ** previously set handler. Note that calling [sqlite3_busy_timeout()]
1576
1576
  ** will also set or clear the busy handler.
1577
1577
  **
1578
+ ** The busy callback should not take any actions which modify the
1579
+ ** database connection that invoked the busy handler. Any such actions
1580
+ ** result in undefined behavior.
1581
+ **
1578
1582
  ** INVARIANTS:
1579
1583
  **
1580
1584
  ** {H12311} The [sqlite3_busy_handler(D,C,A)] function shall replace
@@ -2103,6 +2107,11 @@ void sqlite3_randomness(int N, void *P);
2103
2107
  ** previous call. Disable the authorizer by installing a NULL callback.
2104
2108
  ** The authorizer is disabled by default.
2105
2109
  **
2110
+ ** The authorizer callback must not do anything that will modify
2111
+ ** the database connection that invoked the authorizer callback.
2112
+ ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their
2113
+ ** database connections for the meaning of "modify" in this paragraph.
2114
+ **
2106
2115
  ** When [sqlite3_prepare_v2()] is used to prepare a statement, the
2107
2116
  ** statement might be reprepared during [sqlite3_step()] due to a
2108
2117
  ** schema change. Hence, the application should ensure that the
@@ -2327,7 +2336,12 @@ SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*,
2327
2336
  **
2328
2337
  ** If the progress callback returns non-zero, the operation is
2329
2338
  ** interrupted. This feature can be used to implement a
2330
- ** "Cancel" button on a GUI dialog box.
2339
+ ** "Cancel" button on a GUI progress dialog box.
2340
+ **
2341
+ ** The progress handler must not do anything that will modify
2342
+ ** the database connection that invoked the progress handler.
2343
+ ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their
2344
+ ** database connections for the meaning of "modify" in this paragraph.
2331
2345
  **
2332
2346
  ** INVARIANTS:
2333
2347
  **
@@ -2390,7 +2404,7 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
2390
2404
  ** except that it accepts two additional parameters for additional control
2391
2405
  ** over the new database connection. The flags parameter can take one of
2392
2406
  ** the following three values, optionally combined with the
2393
- ** [SQLITE_OPEN_NOMUTEX] flag:
2407
+ ** [SQLITE_OPEN_NOMUTEX] or [SQLITE_OPEN_FULLMUTEX] flags:
2394
2408
  **
2395
2409
  ** <dl>
2396
2410
  ** <dt>[SQLITE_OPEN_READONLY]</dt>
@@ -2410,16 +2424,15 @@ void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
2410
2424
  **
2411
2425
  ** If the 3rd parameter to sqlite3_open_v2() is not one of the
2412
2426
  ** combinations shown above or one of the combinations shown above combined
2413
- ** with the [SQLITE_OPEN_NOMUTEX] flag, then the behavior is undefined.
2427
+ ** with the [SQLITE_OPEN_NOMUTEX] or [SQLITE_OPEN_FULLMUTEX] flags,
2428
+ ** then the behavior is undefined.
2414
2429
  **
2415
- ** If the [SQLITE_OPEN_NOMUTEX] flag is set, then mutexes on the
2416
- ** opened [database connection] are disabled and the appliation must
2417
- ** insure that access to the [database connection] and its associated
2418
- ** [prepared statements] is serialized. The [SQLITE_OPEN_NOMUTEX] flag
2419
- ** is the default behavior is SQLite is configured using the
2420
- ** [SQLITE_CONFIG_MULTITHREAD] or [SQLITE_CONFIG_SINGLETHREAD] options
2421
- ** to [sqlite3_config()]. The [SQLITE_OPEN_NOMUTEX] flag only makes a
2422
- ** difference when SQLite is in its default [SQLITE_CONFIG_SERIALIZED] mode.
2430
+ ** If the [SQLITE_OPEN_NOMUTEX] flag is set, then the database connection
2431
+ ** opens in the multi-thread [threading mode] as long as the single-thread
2432
+ ** mode has not been set at compile-time or start-time. If the
2433
+ ** [SQLITE_OPEN_FULLMUTEX] flag is set then the database connection opens
2434
+ ** in the serialized [threading mode] unless single-thread was
2435
+ ** previously selected at compile-time or start-time.
2423
2436
  **
2424
2437
  ** If the filename is ":memory:", then a private, temporary in-memory database
2425
2438
  ** is created for the connection. This in-memory database will vanish when
@@ -3838,7 +3851,8 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
3838
3851
  ** characters. Any attempt to create a function with a longer name
3839
3852
  ** will result in [SQLITE_ERROR] being returned.
3840
3853
  **
3841
- ** The third parameter is the number of arguments that the SQL function or
3854
+ ** The third parameter (nArg)
3855
+ ** is the number of arguments that the SQL function or
3842
3856
  ** aggregate takes. If this parameter is negative, then the SQL function or
3843
3857
  ** aggregate may take any number of arguments.
3844
3858
  **
@@ -3869,72 +3883,91 @@ int sqlite3_reset(sqlite3_stmt *pStmt);
3869
3883
  ** functions with the same name but with either differing numbers of
3870
3884
  ** arguments or differing preferred text encodings. SQLite will use
3871
3885
  ** the implementation most closely matches the way in which the
3872
- ** SQL function is used.
3886
+ ** SQL function is used. A function implementation with a non-negative
3887
+ ** nArg parameter is a better match than a function implementation with
3888
+ ** a negative nArg. A function where the preferred text encoding
3889
+ ** matches the database encoding is a better
3890
+ ** match than a function where the encoding is different.
3891
+ ** A function where the encoding difference is between UTF16le and UTF16be
3892
+ ** is a closer match than a function where the encoding difference is
3893
+ ** between UTF8 and UTF16.
3894
+ **
3895
+ ** Built-in functions may be overloaded by new application-defined functions.
3896
+ ** The first application-defined function with a given name overrides all
3897
+ ** built-in functions in the same [database connection] with the same name.
3898
+ ** Subsequent application-defined functions of the same name only override
3899
+ ** prior application-defined functions that are an exact match for the
3900
+ ** number of parameters and preferred encoding.
3901
+ **
3902
+ ** An application-defined function is permitted to call other
3903
+ ** SQLite interfaces. However, such calls must not
3904
+ ** close the database connection nor finalize or reset the prepared
3905
+ ** statement in which the function is running.
3873
3906
  **
3874
3907
  ** INVARIANTS:
3875
3908
  **
3876
- ** {H16103} The [sqlite3_create_function16()] interface behaves exactly
3877
- ** like [sqlite3_create_function()] in every way except that it
3878
- ** interprets the zFunctionName argument as zero-terminated UTF-16
3909
+ ** {H16103} The [sqlite3_create_function16(D,X,...)] interface shall behave
3910
+ ** as [sqlite3_create_function(D,X,...)] in every way except that it
3911
+ ** interprets the X argument as zero-terminated UTF-16
3879
3912
  ** native byte order instead of as zero-terminated UTF-8.
3880
3913
  **
3881
- ** {H16106} A successful invocation of
3882
- ** the [sqlite3_create_function(D,X,N,E,...)] interface registers
3914
+ ** {H16106} A successful invocation of the
3915
+ ** [sqlite3_create_function(D,X,N,E,...)] interface shall register
3883
3916
  ** or replaces callback functions in the [database connection] D
3884
3917
  ** used to implement the SQL function named X with N parameters
3885
3918
  ** and having a preferred text encoding of E.
3886
3919
  **
3887
3920
  ** {H16109} A successful call to [sqlite3_create_function(D,X,N,E,P,F,S,L)]
3888
- ** replaces the P, F, S, and L values from any prior calls with
3921
+ ** shall replace the P, F, S, and L values from any prior calls with
3889
3922
  ** the same D, X, N, and E values.
3890
3923
  **
3891
- ** {H16112} The [sqlite3_create_function(D,X,...)] interface fails with
3892
- ** a return code of [SQLITE_ERROR] if the SQL function name X is
3924
+ ** {H16112} The [sqlite3_create_function(D,X,...)] interface shall fail
3925
+ ** if the SQL function name X is
3893
3926
  ** longer than 255 bytes exclusive of the zero terminator.
3894
3927
  **
3895
- ** {H16118} Either F must be NULL and S and L are non-NULL or else F
3896
- ** is non-NULL and S and L are NULL, otherwise
3897
- ** [sqlite3_create_function(D,X,N,E,P,F,S,L)] returns [SQLITE_ERROR].
3928
+ ** {H16118} The [sqlite3_create_function(D,X,N,E,P,F,S,L)] interface
3929
+ ** shall fail unless either F is NULL and S and L are non-NULL or
3930
+ *** F is non-NULL and S and L are NULL.
3898
3931
  **
3899
- ** {H16121} The [sqlite3_create_function(D,...)] interface fails with an
3932
+ ** {H16121} The [sqlite3_create_function(D,...)] interface shall fails with an
3900
3933
  ** error code of [SQLITE_BUSY] if there exist [prepared statements]
3901
3934
  ** associated with the [database connection] D.
3902
3935
  **
3903
- ** {H16124} The [sqlite3_create_function(D,X,N,...)] interface fails with an
3904
- ** error code of [SQLITE_ERROR] if parameter N (specifying the number
3905
- ** of arguments to the SQL function being registered) is less
3936
+ ** {H16124} The [sqlite3_create_function(D,X,N,...)] interface shall fail with
3937
+ ** an error code of [SQLITE_ERROR] if parameter N is less
3906
3938
  ** than -1 or greater than 127.
3907
3939
  **
3908
3940
  ** {H16127} When N is non-negative, the [sqlite3_create_function(D,X,N,...)]
3909
- ** interface causes callbacks to be invoked for the SQL function
3941
+ ** interface shall register callbacks to be invoked for the
3942
+ ** SQL function
3910
3943
  ** named X when the number of arguments to the SQL function is
3911
3944
  ** exactly N.
3912
3945
  **
3913
3946
  ** {H16130} When N is -1, the [sqlite3_create_function(D,X,N,...)]
3914
- ** interface causes callbacks to be invoked for the SQL function
3915
- ** named X with any number of arguments.
3947
+ ** interface shall register callbacks to be invoked for the SQL
3948
+ ** function named X with any number of arguments.
3916
3949
  **
3917
3950
  ** {H16133} When calls to [sqlite3_create_function(D,X,N,...)]
3918
3951
  ** specify multiple implementations of the same function X
3919
3952
  ** and when one implementation has N>=0 and the other has N=(-1)
3920
- ** the implementation with a non-zero N is preferred.
3953
+ ** the implementation with a non-zero N shall be preferred.
3921
3954
  **
3922
3955
  ** {H16136} When calls to [sqlite3_create_function(D,X,N,E,...)]
3923
3956
  ** specify multiple implementations of the same function X with
3924
3957
  ** the same number of arguments N but with different
3925
3958
  ** encodings E, then the implementation where E matches the
3926
- ** database encoding is preferred.
3959
+ ** database encoding shall preferred.
3927
3960
  **
3928
3961
  ** {H16139} For an aggregate SQL function created using
3929
3962
  ** [sqlite3_create_function(D,X,N,E,P,0,S,L)] the finalizer
3930
- ** function L will always be invoked exactly once if the
3963
+ ** function L shall always be invoked exactly once if the
3931
3964
  ** step function S is called one or more times.
3932
3965
  **
3933
3966
  ** {H16142} When SQLite invokes either the xFunc or xStep function of
3934
3967
  ** an application-defined SQL function or aggregate created
3935
3968
  ** by [sqlite3_create_function()] or [sqlite3_create_function16()],
3936
3969
  ** then the array of [sqlite3_value] objects passed as the
3937
- ** third parameter are always [protected sqlite3_value] objects.
3970
+ ** third parameter shall be [protected sqlite3_value] objects.
3938
3971
  */
3939
3972
  int sqlite3_create_function(
3940
3973
  sqlite3 *db,
@@ -4846,6 +4879,14 @@ sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt);
4846
4879
  ** If another function was previously registered, its
4847
4880
  ** pArg value is returned. Otherwise NULL is returned.
4848
4881
  **
4882
+ ** The callback implementation must not do anything that will modify
4883
+ ** the database connection that invoked the callback. Any actions
4884
+ ** to modify the database connection must be deferred until after the
4885
+ ** completion of the [sqlite3_step()] call that triggered the commit
4886
+ ** or rollback hook in the first place.
4887
+ ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their
4888
+ ** database connections for the meaning of "modify" in this paragraph.
4889
+ **
4849
4890
  ** Registering a NULL function disables the callback.
4850
4891
  **
4851
4892
  ** For the purposes of this API, a transaction is said to have been
@@ -4920,6 +4961,13 @@ void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*);
4920
4961
  ** The update hook is not invoked when internal system tables are
4921
4962
  ** modified (i.e. sqlite_master and sqlite_sequence).
4922
4963
  **
4964
+ ** The update hook implementation must not do anything that will modify
4965
+ ** the database connection that invoked the update hook. Any actions
4966
+ ** to modify the database connection must be deferred until after the
4967
+ ** completion of the [sqlite3_step()] call that triggered the update hook.
4968
+ ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their
4969
+ ** database connections for the meaning of "modify" in this paragraph.
4970
+ **
4923
4971
  ** If another function was previously registered, its pArg value
4924
4972
  ** is returned. Otherwise NULL is returned.
4925
4973
  **
@@ -6197,6 +6245,10 @@ SQLITE_EXPERIMENTAL int sqlite3_status(int op, int *pCurrent, int *pHighwater, i
6197
6245
  */
6198
6246
  SQLITE_EXPERIMENTAL int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg);
6199
6247
 
6248
+
6249
+ int sqlite3_wsd_init(int N, int J);
6250
+ void *sqlite3_wsd_find(void *K, int L);
6251
+
6200
6252
  /*
6201
6253
  ** CAPI3REF: Status Parameters {H17250} <H17200>
6202
6254
  ** EXPERIMENTAL
@@ -5,9 +5,6 @@
5
5
 
6
6
  require 'amalgalite3'
7
7
  module Amalgalite::SQLite3
8
- ##
9
- # module containing all constants used from the SQLite C extension
10
- #
11
8
  module Constants
12
9
  module Helpers
13
10
  #
@@ -9,7 +9,7 @@ module Amalgalite
9
9
 
10
10
  MAJOR = 0
11
11
  MINOR = 4
12
- BUILD = 0
12
+ BUILD = 1
13
13
 
14
14
  #
15
15
  # return the Version as an array of MAJOR, MINOR, BUILD
@@ -23,6 +23,11 @@ module Amalgalite
23
23
  to_a.join(".")
24
24
  end
25
25
 
26
+ # return the Vesion as a hash
27
+ def self.to_hash
28
+ { :major => MAJOR, :minor => MINOR, :build => BUILD }
29
+ end
30
+
26
31
  # Version string constant
27
32
  STRING = Version.to_s.freeze
28
33
  end
@@ -5,10 +5,10 @@ describe "Amalgalite::SQLite3::Version" do
5
5
  it "should have the sqlite3 version" do
6
6
  Amalgalite::SQLite3::VERSION.should =~ /\d\.\d\.\d/
7
7
  Amalgalite::SQLite3::Version.to_s.should =~ /\d\.\d\.\d/
8
- Amalgalite::SQLite3::Version.to_i.should == 3006002
8
+ Amalgalite::SQLite3::Version.to_i.should == 3006003
9
9
  Amalgalite::SQLite3::Version::MAJOR.should == 3
10
10
  Amalgalite::SQLite3::Version::MINOR.should == 6
11
- Amalgalite::SQLite3::Version::RELEASE.should == 2
11
+ Amalgalite::SQLite3::Version::RELEASE.should == 3
12
12
  Amalgalite::SQLite3::Version.to_a.should have(3).items
13
13
  end
14
14
  end
data/tasks/config.rb CHANGED
@@ -11,7 +11,7 @@ Configuration.for('project') {
11
11
  version Amalgalite::Version.to_s
12
12
  author "Jeremy Hinegardner"
13
13
  email "jeremy at copiousfreetime dot org"
14
- homepage "http://www.copiousfreetime.org/projects/amalgalite/"
14
+ homepage "http://copiousfreetime.rubyforge.org/amalgalite/"
15
15
  description Utils.section_of("README", "description")
16
16
  summary description.split(".").first
17
17
  history "HISTORY"
@@ -85,7 +85,7 @@ Configuration.for('rdoc') {
85
85
  files Configuration.for('packaging').files.rdoc
86
86
  main_page files.first
87
87
  title Configuration.for('project').name
88
- options %w[ --line-numbers --inline-source ]
88
+ options %w[ --line-numbers --inline-source -f darkfish ]
89
89
  output_dir "doc"
90
90
  }
91
91
 
@@ -9,11 +9,13 @@ if rdoc_config = Configuration.for_if_exist?('rdoc') then
9
9
  namespace :doc do
10
10
 
11
11
  require 'rake/rdoctask'
12
+ gem 'darkfish-rdoc'
13
+ require 'darkfish-rdoc'
12
14
 
13
15
  # generating documentation locally
14
16
  Rake::RDocTask.new do |rdoc|
15
17
  rdoc.rdoc_dir = rdoc_config.output_dir
16
- rdoc.options = rdoc_config.options
18
+ rdoc.options = rdoc_config.options
17
19
  rdoc.rdoc_files = rdoc_config.files
18
20
  rdoc.title = rdoc_config.title
19
21
  rdoc.main = rdoc_config.main_page
data/tasks/extension.rake CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'tasks/config'
2
2
  require 'pathname'
3
+ require 'zlib'
4
+ require 'archive/tar/minitar'
3
5
 
4
6
  #-----------------------------------------------------------------------
5
7
  # Extensions
@@ -44,5 +46,37 @@ if ext_config = Configuration.for_if_exist?('extension') then
44
46
  end
45
47
  end
46
48
  end
49
+
50
+ desc "Download and integrate the next version of sqlite"
51
+ task :update_sqlite do
52
+ next_version = ENV['VERSION']
53
+ puts "downloading ..."
54
+ url = URI.parse("http://sqlite.org/sqlite-amalgamation-#{next_version}.tar.gz")
55
+ file = "tmp/#{File.basename( url.path ) }"
56
+ File.open( file, "wb+") do |f|
57
+ res = Net::HTTP.get_response( url )
58
+ f.write( res.body )
59
+ end
60
+
61
+ puts "extracting..."
62
+ upstream_files = %w[ sqlite3.h sqlite3.c sqlite3ext.h ]
63
+ Zlib::GzipReader.open( file ) do |tgz|
64
+ Archive::Tar::Minitar::Reader.open( tgz ) do |tar|
65
+ tar.each_entry do |entry|
66
+ bname = File.basename( entry.full_name )
67
+ if upstream_files.include?( bname ) then
68
+ dest_file = File.join( "ext", bname )
69
+ puts "updating #{ dest_file }"
70
+ File.open( dest_file, "wb" ) do |df|
71
+ while bytes = entry.read do
72
+ df.write bytes
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ end
47
81
  end
48
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amalgalite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Hinegardner
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-15 00:00:00 -06:00
12
+ date: 2008-09-28 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -164,6 +164,8 @@ post_install_message:
164
164
  rdoc_options:
165
165
  - --line-numbers
166
166
  - --inline-source
167
+ - -f
168
+ - darkfish
167
169
  - --main
168
170
  - README
169
171
  require_paths: