bson_ext 1.5.2 → 1.6.0
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.
- data/Rakefile +24 -8
- data/bson_ext.gemspec +3 -1
- data/ext/cbson/cbson.c +6 -0
- data/ext/cbson/version.h +1 -1
- metadata +31 -52
data/Rakefile
CHANGED
@@ -12,6 +12,7 @@ begin
|
|
12
12
|
rescue LoadError
|
13
13
|
end
|
14
14
|
include Config
|
15
|
+
|
15
16
|
ENV['TEST_MODE'] = 'TRUE'
|
16
17
|
|
17
18
|
task :java do
|
@@ -42,10 +43,14 @@ task :test do
|
|
42
43
|
puts "To test the pure ruby driver: \nrake test:ruby\n\n"
|
43
44
|
end
|
44
45
|
|
46
|
+
task :path do
|
47
|
+
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
48
|
+
end
|
49
|
+
|
45
50
|
namespace :test do
|
46
51
|
|
47
52
|
desc "Test the driver with the C extension enabled."
|
48
|
-
task :c do
|
53
|
+
task :c => :path do
|
49
54
|
ENV['C_EXT'] = 'TRUE'
|
50
55
|
if ENV['TEST']
|
51
56
|
Rake::Task['test:functional'].invoke
|
@@ -60,7 +65,7 @@ namespace :test do
|
|
60
65
|
end
|
61
66
|
|
62
67
|
desc "Test the driver using pure ruby (no C extension)"
|
63
|
-
task :ruby do
|
68
|
+
task :ruby => :path do
|
64
69
|
ENV['C_EXT'] = nil
|
65
70
|
if ENV['TEST']
|
66
71
|
Rake::Task['test:functional'].invoke
|
@@ -80,6 +85,13 @@ namespace :test do
|
|
80
85
|
t.ruby_opts << '-w'
|
81
86
|
end
|
82
87
|
|
88
|
+
desc "Run the replica set test suite"
|
89
|
+
Rake::TestTask.new(:rs_no_threads) do |t|
|
90
|
+
t.test_files = FileList['test/replica_sets/*_test.rb'] - ["test/replica_sets/refresh_with_threads_test.rb"]
|
91
|
+
t.verbose = true
|
92
|
+
t.ruby_opts << '-w'
|
93
|
+
end
|
94
|
+
|
83
95
|
Rake::TestTask.new(:unit) do |t|
|
84
96
|
t.test_files = FileList['test/unit/*_test.rb']
|
85
97
|
t.verbose = true
|
@@ -122,9 +134,9 @@ namespace :test do
|
|
122
134
|
t.ruby_opts << '-w'
|
123
135
|
end
|
124
136
|
|
125
|
-
task :drop_databases do |t|
|
137
|
+
task :drop_databases => :path do |t|
|
126
138
|
puts "Dropping test databases..."
|
127
|
-
require '
|
139
|
+
require 'mongo'
|
128
140
|
con = Mongo::Connection.new(ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost',
|
129
141
|
ENV['MONGO_RUBY_DRIVER_PORT'] || Mongo::Connection::DEFAULT_PORT)
|
130
142
|
con.database_names.each do |name|
|
@@ -143,13 +155,13 @@ end
|
|
143
155
|
|
144
156
|
desc "Generate YARD documentation"
|
145
157
|
task :ydoc do
|
146
|
-
require
|
158
|
+
require 'mongo'
|
147
159
|
out = File.join('ydoc', Mongo::VERSION)
|
148
160
|
FileUtils.rm_rf('ydoc')
|
149
161
|
system "yardoc lib/**/*.rb lib/mongo/**/*.rb lib/bson/**/*.rb -e ./yard/yard_ext.rb -p yard/templates -o #{out} --title MongoRuby-#{Mongo::VERSION} --files docs/TUTORIAL.md,docs/GridFS.md,docs/FAQ.md,docs/REPLICA_SETS.md,docs/WRITE_CONCERN.md,docs/READ_PREFERENCE.md,docs/HISTORY.md,docs/CREDITS.md,docs/RELEASES.md,docs/CREDITS.md,docs/TAILABLE_CURSORS.md"
|
150
162
|
end
|
151
163
|
|
152
|
-
namespace :
|
164
|
+
namespace :jenkins do
|
153
165
|
task :ci_reporter do
|
154
166
|
begin
|
155
167
|
require 'ci/reporter/rake/test_unit'
|
@@ -183,10 +195,14 @@ namespace :gem do
|
|
183
195
|
`rm mongo-*.gem`
|
184
196
|
`rm bson-*.gem`
|
185
197
|
end
|
198
|
+
|
199
|
+
desc "Uninstall the optional c extensions"
|
200
|
+
task :uninstall_extensions do
|
201
|
+
`gem uninstall bson_ext`
|
202
|
+
end
|
186
203
|
|
187
204
|
desc "Install the optional c extensions"
|
188
205
|
task :install_extensions do
|
189
|
-
`gem uninstall bson_ext`
|
190
206
|
`gem build bson_ext.gemspec`
|
191
207
|
`gem install --no-rdoc --no-ri bson_ext-*.gem`
|
192
208
|
`rm bson_ext-*.gem`
|
@@ -204,7 +220,7 @@ end
|
|
204
220
|
|
205
221
|
namespace :ci do
|
206
222
|
namespace :test do
|
207
|
-
task :c do
|
223
|
+
task :c => :path do
|
208
224
|
Rake::Task['gem:install'].invoke
|
209
225
|
Rake::Task['gem:install_extensions'].invoke
|
210
226
|
Rake::Task['test:c'].invoke
|
data/bson_ext.gemspec
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
$:.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
2
|
+
require 'bson'
|
3
|
+
|
2
4
|
VERSION_HEADER = File.open(File.join(File.dirname(__FILE__), 'ext', 'cbson', 'version.h'), "r")
|
3
5
|
VERSION = VERSION_HEADER.read.scan(/VERSION "(\d[^"]+)"/)[0][0]
|
4
6
|
Gem::Specification.new do |s|
|
data/ext/cbson/cbson.c
CHANGED
@@ -469,6 +469,12 @@ static int write_element(VALUE key, VALUE value, VALUE extra, int allow_id) {
|
|
469
469
|
SAFE_WRITE(buffer, (const char*)&time_since_epoch, 8);
|
470
470
|
break;
|
471
471
|
}
|
472
|
+
// Date classes are TYPE T_DATA in Ruby >= 1.9.3
|
473
|
+
if (strcmp(cls, "DateTime") == 0 || strcmp(cls, "Date") == 0 || strcmp(cls, "ActiveSupport::TimeWithZone") == 0) {
|
474
|
+
bson_buffer_free(buffer);
|
475
|
+
rb_raise(InvalidDocument, "%s is not currently supported; use a UTC Time instance instead.", cls);
|
476
|
+
break;
|
477
|
+
}
|
472
478
|
if(strcmp(cls, "BigDecimal") == 0) {
|
473
479
|
bson_buffer_free(buffer);
|
474
480
|
rb_raise(InvalidDocument, "Cannot serialize the Numeric type %s as BSON; only Bignum, Fixnum, and Float are supported.", cls);
|
data/ext/cbson/version.h
CHANGED
metadata
CHANGED
@@ -1,47 +1,35 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: bson_ext
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.6.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 5
|
9
|
-
- 2
|
10
|
-
version: 1.5.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Mike Dirolf
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-02-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: bson
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70326298991580 !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 5
|
32
|
-
- 2
|
33
|
-
version: 1.5.2
|
18
|
+
requirements:
|
19
|
+
- - =
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.6.0
|
34
22
|
type: :runtime
|
35
|
-
|
36
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70326298991580
|
25
|
+
description: C extensions to accelerate the Ruby BSON serialization. For more information
|
26
|
+
about BSON, see http://bsonspec.org. For information about MongoDB, see http://www.mongodb.org.
|
37
27
|
email: mongodb-dev@googlegroups.com
|
38
28
|
executables: []
|
39
|
-
|
40
|
-
extensions:
|
29
|
+
extensions:
|
41
30
|
- ext/cbson/extconf.rb
|
42
31
|
extra_rdoc_files: []
|
43
|
-
|
44
|
-
files:
|
32
|
+
files:
|
45
33
|
- Rakefile
|
46
34
|
- bson_ext.gemspec
|
47
35
|
- ext/cbson/extconf.rb
|
@@ -53,36 +41,27 @@ files:
|
|
53
41
|
- ext/cbson/version.h
|
54
42
|
homepage: http://www.mongodb.org
|
55
43
|
licenses: []
|
56
|
-
|
57
44
|
post_install_message:
|
58
45
|
rdoc_options: []
|
59
|
-
|
60
|
-
require_paths:
|
46
|
+
require_paths:
|
61
47
|
- ext
|
62
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
63
49
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
|
68
|
-
|
69
|
-
- 0
|
70
|
-
version: "0"
|
71
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
55
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
segments:
|
78
|
-
- 0
|
79
|
-
version: "0"
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
80
60
|
requirements: []
|
81
|
-
|
82
61
|
rubyforge_project:
|
83
|
-
rubygems_version: 1.8.
|
62
|
+
rubygems_version: 1.8.16
|
84
63
|
signing_key:
|
85
64
|
specification_version: 3
|
86
65
|
summary: C extensions for Ruby BSON.
|
87
66
|
test_files: []
|
88
|
-
|
67
|
+
has_rdoc: false
|