swift 0.9.1 → 0.10.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/VERSION +1 -1
- data/ext/adapter.cc +11 -4
- data/swift.gemspec +2 -2
- data/test/test_scheme.rb +5 -0
- data/test/test_transactions.rb +4 -0
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.10.0
|
data/ext/adapter.cc
CHANGED
@@ -87,11 +87,16 @@ static VALUE adapter_escape(VALUE self, VALUE value) {
|
|
87
87
|
|
88
88
|
// TODO: Change bind_values to an array in the interface? Avoid array -> splat -> array.
|
89
89
|
static VALUE adapter_execute(int argc, VALUE *argv, VALUE self) {
|
90
|
-
VALUE statement, bind_values, block, rows;
|
90
|
+
VALUE statement, bind_values, block, rows, scheme = Qnil;
|
91
91
|
|
92
92
|
dbi::Handle *handle = adapter_handle(self);
|
93
93
|
rb_scan_args(argc, argv, "1*&", &statement, &bind_values, &block);
|
94
94
|
|
95
|
+
if (TYPE(statement) == T_CLASS) {
|
96
|
+
scheme = statement;
|
97
|
+
statement = rb_ary_shift(bind_values);
|
98
|
+
}
|
99
|
+
|
95
100
|
try {
|
96
101
|
Query query;
|
97
102
|
query.sql = CSTRING(statement);
|
@@ -104,6 +109,8 @@ static VALUE adapter_execute(int argc, VALUE *argv, VALUE self) {
|
|
104
109
|
rb_raise(eSwiftRuntimeError, "%s", query.error);
|
105
110
|
|
106
111
|
VALUE result = result_wrap_handle(cSwiftResult, self, handle->conn()->result(), true);
|
112
|
+
if (!NIL_P(scheme))
|
113
|
+
rb_iv_set(result, "@scheme", scheme);
|
107
114
|
return rb_block_given_p() ? result_each(result) : result;
|
108
115
|
}
|
109
116
|
CATCH_DBI_EXCEPTIONS();
|
@@ -177,7 +184,7 @@ static VALUE adapter_rollback(int argc, VALUE *argv, VALUE self) {
|
|
177
184
|
|
178
185
|
static VALUE adapter_transaction(int argc, VALUE *argv, VALUE self) {
|
179
186
|
int status;
|
180
|
-
VALUE sp, block;
|
187
|
+
VALUE sp, block, block_result = Qnil;
|
181
188
|
|
182
189
|
dbi::Handle *handle = adapter_handle(self);
|
183
190
|
|
@@ -188,7 +195,7 @@ static VALUE adapter_transaction(int argc, VALUE *argv, VALUE self) {
|
|
188
195
|
|
189
196
|
try {
|
190
197
|
handle->begin(save_point);
|
191
|
-
rb_protect(rb_yield, self, &status);
|
198
|
+
block_result = rb_protect(rb_yield, self, &status);
|
192
199
|
if (!status && handle->transactions().size() > 0) {
|
193
200
|
handle->commit(save_point);
|
194
201
|
}
|
@@ -199,7 +206,7 @@ static VALUE adapter_transaction(int argc, VALUE *argv, VALUE self) {
|
|
199
206
|
}
|
200
207
|
CATCH_DBI_EXCEPTIONS();
|
201
208
|
|
202
|
-
return
|
209
|
+
return block_result;
|
203
210
|
}
|
204
211
|
|
205
212
|
static VALUE adapter_write(int argc, VALUE *argv, VALUE self) {
|
data/swift.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{swift}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.10.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Shane Hanna", "Bharanee 'Barney' Rathna"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-04-04}
|
13
13
|
s.description = %q{A rational rudimentary database abstraction.}
|
14
14
|
s.email = ["shane.hanna@gmail.com", "deepfryed@gmail.com"]
|
15
15
|
s.extensions = ["ext/extconf.rb"]
|
data/test/test_scheme.rb
CHANGED
@@ -57,6 +57,11 @@ describe 'scheme' do
|
|
57
57
|
Swift.db.migrate! @user
|
58
58
|
end
|
59
59
|
|
60
|
+
it 'should return scheme instance when given scheme in #execute' do
|
61
|
+
user = @user.create
|
62
|
+
assert_equal 1, Swift.db.execute(@user, 'select * from users').first.id
|
63
|
+
end
|
64
|
+
|
60
65
|
it 'adapter should destroy valid instance' do
|
61
66
|
user = @user.create
|
62
67
|
assert_equal 1, user.id
|
data/test/test_transactions.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 10
|
8
|
+
- 0
|
9
|
+
version: 0.10.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Shane Hanna
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-04-04 00:00:00 +10:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|