faststep 0.0.3 → 0.0.4
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/README.markdown +5 -1
- data/ext/faststep/connection.c +14 -9
- data/ext/faststep/connection.h +2 -2
- data/lib/faststep/version.rb +1 -1
- data/spec/connection_spec.rb +19 -13
- metadata +2 -2
data/README.markdown
CHANGED
@@ -12,7 +12,11 @@ Add to your Gemfile and `bundle`; otherwise,
|
|
12
12
|
|
13
13
|
Connect to mongo:
|
14
14
|
|
15
|
-
>> conn = Faststep::Connection.new
|
15
|
+
>> conn = Faststep::Connection.new # defaults to 127.0.0.1:27017
|
16
|
+
|
17
|
+
Or connect to a custom host and port:
|
18
|
+
|
19
|
+
>> conn = Faststep::Connection.new("custom.host", 12345)
|
16
20
|
|
17
21
|
Pick a database:
|
18
22
|
|
data/ext/faststep/connection.c
CHANGED
@@ -9,19 +9,28 @@ void faststep_connection_main() {
|
|
9
9
|
rb_define_attr(rb_cFaststepConnection, "host", 1, 0);
|
10
10
|
rb_define_attr(rb_cFaststepConnection, "port", 1, 0);
|
11
11
|
|
12
|
-
rb_define_singleton_method(rb_cFaststepConnection, "new", faststep_connection_new,
|
12
|
+
rb_define_singleton_method(rb_cFaststepConnection, "new", faststep_connection_new, -1);
|
13
13
|
|
14
|
-
rb_define_method(rb_cFaststepConnection, "initialize", faststep_connection_init,
|
14
|
+
rb_define_method(rb_cFaststepConnection, "initialize", faststep_connection_init, -1);
|
15
15
|
rb_define_method(rb_cFaststepConnection, "connect!", faststep_connection_connect, 0);
|
16
16
|
rb_define_method(rb_cFaststepConnection, "disconnect!", faststep_connection_disconnect, 0);
|
17
17
|
rb_define_method(rb_cFaststepConnection, "connected?", faststep_connection_connected, 0);
|
18
18
|
rb_define_method(rb_cFaststepConnection, "master?", faststep_connection_master, 0);
|
19
19
|
rb_define_method(rb_cFaststepConnection, "db", faststep_connection_db, 1);
|
20
20
|
|
21
|
+
rb_define_alias(rb_cFaststepConnection, "[]", "db");
|
22
|
+
|
21
23
|
return;
|
22
24
|
}
|
23
25
|
|
24
|
-
static VALUE faststep_connection_init(
|
26
|
+
static VALUE faststep_connection_init(int argc, VALUE* argv, VALUE self) {
|
27
|
+
VALUE host, port;
|
28
|
+
|
29
|
+
rb_scan_args(argc, argv, "02", &host, &port);
|
30
|
+
|
31
|
+
if(!RTEST(host)) { host = rb_str_new2("127.0.0.1"); }
|
32
|
+
if(!RTEST(port)) { port = INT2NUM(27017); }
|
33
|
+
|
25
34
|
rb_iv_set(self, "@host", host);
|
26
35
|
rb_iv_set(self, "@port", port);
|
27
36
|
|
@@ -30,16 +39,12 @@ static VALUE faststep_connection_init(VALUE self, const VALUE host, const VALUE
|
|
30
39
|
return self;
|
31
40
|
}
|
32
41
|
|
33
|
-
static VALUE faststep_connection_new(
|
42
|
+
static VALUE faststep_connection_new(int argc, VALUE* argv, VALUE class) {
|
34
43
|
mongo_connection* conn = (mongo_connection*)bson_malloc(sizeof(mongo_connection));
|
35
44
|
|
36
45
|
VALUE tdata = Data_Wrap_Struct(class, NULL, mongo_destroy, conn);
|
37
46
|
|
38
|
-
|
39
|
-
argv[0] = host;
|
40
|
-
argv[1] = port;
|
41
|
-
|
42
|
-
rb_obj_call_init(tdata, 2, argv);
|
47
|
+
rb_obj_call_init(tdata, argc, argv);
|
43
48
|
|
44
49
|
return tdata;
|
45
50
|
}
|
data/ext/faststep/connection.h
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
#define CONNECTION_H
|
5
5
|
void faststep_connection_main();
|
6
6
|
|
7
|
-
static VALUE faststep_connection_init(
|
8
|
-
static VALUE faststep_connection_new(
|
7
|
+
static VALUE faststep_connection_init(int, VALUE*, VALUE);
|
8
|
+
static VALUE faststep_connection_new(int, VALUE*, VALUE);
|
9
9
|
static VALUE faststep_connection_connect(VALUE);
|
10
10
|
static VALUE faststep_connection_disconnect(const VALUE);
|
11
11
|
static VALUE faststep_connection_connected(const VALUE);
|
data/lib/faststep/version.rb
CHANGED
data/spec/connection_spec.rb
CHANGED
@@ -3,17 +3,10 @@ require "spec_helper"
|
|
3
3
|
describe Faststep::Connection do
|
4
4
|
subject { Faststep::Connection.new("127.0.0.1", 27017) }
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
it "knows its port" do
|
11
|
-
subject.port == 27017
|
12
|
-
end
|
13
|
-
|
14
|
-
it "connects to Mongo automatically" do
|
15
|
-
subject.should be_connected
|
16
|
-
end
|
6
|
+
its(:host) { should == "127.0.0.1" }
|
7
|
+
its(:port) { should == 27017 }
|
8
|
+
it { should be_connected }
|
9
|
+
it { should be_master }
|
17
10
|
|
18
11
|
it "closes a connection to Mongo" do
|
19
12
|
subject.disconnect!
|
@@ -21,9 +14,22 @@ describe Faststep::Connection do
|
|
21
14
|
subject.connect!
|
22
15
|
subject.should be_connected
|
23
16
|
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe Faststep::Connection, "host and port defaults" do
|
20
|
+
subject { Faststep::Connection.new }
|
21
|
+
its(:host) { should == "127.0.0.1" }
|
22
|
+
its(:port) { should == 27017 }
|
23
|
+
it { should be_connected }
|
24
|
+
it { should be_master }
|
25
|
+
end
|
26
|
+
|
27
|
+
describe Faststep::Connection, "getting a database" do
|
28
|
+
subject { Faststep::Connection.new }
|
24
29
|
|
25
|
-
it "
|
26
|
-
subject.
|
30
|
+
it "uses a database" do
|
31
|
+
subject[$faststep_test_db.name]["something"].insert(:foo => "bar")
|
32
|
+
$faststep_test_db["something"].count.should == 1
|
27
33
|
end
|
28
34
|
end
|
29
35
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: faststep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Josh Clayton
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-04-18 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|