Skip to content

Commit 9eedee9

Browse files
committed
Allowing db-oracle to be used in node 0.4.x and 0.5.x
1 parent 1d7d4df commit 9eedee9

File tree

6 files changed

+21
-7
lines changed

6 files changed

+21
-7
lines changed

db-oracle.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@
99
*
1010
* @ignore
1111
*/
12-
var binding = require("./build/default/oracle_bindings");
13-
exports.Database = binding.Oracle;
14-
exports.Query = binding.Query;
12+
var EventEmitter = require('events').EventEmitter,
13+
binding;
14+
15+
try {
16+
binding = require("./build/default/oracle_bindings");
17+
} catch(error) {
18+
binding = require("./build/Release/oracle_bindings");
19+
}
20+
21+
function extend(target, source) {
22+
for (var k in source.prototype) {
23+
target.prototype[k] = source.prototype[k];
24+
}
25+
return target;
26+
}
27+
28+
exports.Query = extend(binding.Query, EventEmitter);
29+
exports.Database = extend(binding.Oracle, EventEmitter);

src/oracle.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ void node_db_oracle::Oracle::Init(v8::Handle<v8::Object> target) {
2020
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(New);
2121

2222
constructorTemplate = v8::Persistent<v8::FunctionTemplate>::New(t);
23-
constructorTemplate->Inherit(node::EventEmitter::constructor_template);
2423
constructorTemplate->InstanceTemplate()->SetInternalFieldCount(1);
2524

2625
node_db::Binding::Init(target, constructorTemplate);

src/oracle_bindings.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
extern "C" {
77
void init(v8::Handle<v8::Object> target) {
8+
node_db::EventEmitter::Init();
89
node_db_oracle::Oracle::Init(target);
910
node_db_oracle::Query::Init(target);
1011
}

src/query.cc

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ void node_db_oracle::Query::Init(v8::Handle<v8::Object> target) {
99
v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(New);
1010

1111
constructorTemplate = v8::Persistent<v8::FunctionTemplate>::New(t);
12-
constructorTemplate->Inherit(node::EventEmitter::constructor_template);
1312
constructorTemplate->InstanceTemplate()->SetInternalFieldCount(1);
1413

1514
node_db::Query::Init(target, constructorTemplate);

wscript

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def configure(conf):
4545
def build(bld):
4646
obj = bld.new_task_gen("cxx", "shlib", "node_addon")
4747
obj.target = "oracle_bindings"
48-
obj.source = "lib/node-db/binding.cc lib/node-db/connection.cc lib/node-db/exception.cc lib/node-db/query.cc lib/node-db/result.cc src/connection.cc src/oracle.cc src/query.cc src/result.cc src/oracle_bindings.cc"
48+
obj.source = "lib/node-db/binding.cc lib/node-db/connection.cc lib/node-db/events.cc lib/node-db/exception.cc lib/node-db/query.cc lib/node-db/result.cc src/connection.cc src/oracle.cc src/query.cc src/result.cc src/oracle_bindings.cc"
4949
obj.includes = "lib/"
5050

5151
def test(tst):

0 commit comments

Comments
 (0)