openbase 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,12 @@
1
+ === 0.8.2
2
+
3
+ * Added new class level administrative functions to the OpenBase class object
4
+ * OpenBase#new_database(host, database_name, host_password)
5
+ * OpenBase#delete_database(host, database_name, host_password)
6
+ * OpenBase#start_database(host, database_name, host_password)
7
+ * OpenBase#stop_database(host, database_name, host_password)
8
+
9
+
1
10
  === 0.8.1
2
11
 
3
12
  * Converted the project to a rubygem using hoe & newgem
@@ -4,8 +4,12 @@
4
4
  // All rights reserved.
5
5
  //
6
6
  // ------------------------------------------------------------------------------
7
- #define YES 1
8
- #define NO 0
7
+ #ifndef YES
8
+ #define YES 1
9
+ #endif
10
+ #ifndef NO
11
+ #define NO 0
12
+ #endif
9
13
 
10
14
  #ifndef MOSUNIX
11
15
  #define MOSX_UNIX 1
data/ext/NetClient.c CHANGED
@@ -75,12 +75,6 @@
75
75
 
76
76
  #include "NetClient.h"
77
77
 
78
- #ifndef YES
79
- #define YES 1
80
- #endif
81
- #ifndef NO
82
- #define NO 0
83
- #endif
84
78
 
85
79
  #ifdef DEBUG
86
80
  #define DEBUG_CONNECT_ADDRESS 1
data/ext/openbase.c CHANGED
@@ -2,6 +2,7 @@
2
2
  #include <OpenBaseConnection.h>
3
3
  #include <CommAPI.h>
4
4
  #include <NetClient.h>
5
+ #include <OpenBaseAdmin.h>
5
6
  #include <stdio.h>
6
7
 
7
8
  // Ruby Classes Declared by this Library
@@ -401,6 +402,41 @@ static VALUE openbase_fetch_blob( VALUE self, VALUE blob_key )
401
402
  /* End OpenBase Query & Transaction Methods */
402
403
 
403
404
 
405
+ /*** OpenBase: Class level server administration functions ***/
406
+ static VALUE openbase_new_database( VALUE self, VALUE host, VALUE database_name, VALUE password )
407
+ {
408
+ OpenBaseAdminConnection* conn = oba_newAdminConnection(RSTRING(host)->ptr);
409
+ int result = oba_newDatabase(conn,RSTRING(database_name)->ptr,RSTRING(password)->ptr);
410
+ oba_deallocAdminConnection(conn);
411
+ return result ? Qtrue : Qfalse;
412
+ }
413
+
414
+ static VALUE openbase_delete_database( VALUE self, VALUE host, VALUE database_name, VALUE password )
415
+ {
416
+ OpenBaseAdminConnection* conn = oba_newAdminConnection(RSTRING(host)->ptr);
417
+ int result = oba_deleteDatabase(conn,RSTRING(database_name)->ptr,RSTRING(password)->ptr);
418
+ oba_deallocAdminConnection(conn);
419
+ return result ? Qtrue : Qfalse;
420
+ }
421
+
422
+ static VALUE openbase_start_database( VALUE self, VALUE host, VALUE database_name, VALUE password )
423
+ {
424
+ OpenBaseAdminConnection* conn = oba_newAdminConnection(RSTRING(host)->ptr);
425
+ int result = oba_startDatabase(conn,RSTRING(database_name)->ptr,RSTRING(password)->ptr);
426
+ oba_deallocAdminConnection(conn);
427
+ return result ? Qtrue : Qfalse;
428
+ }
429
+
430
+ static VALUE openbase_stop_database( VALUE self, VALUE host, VALUE database_name, VALUE password )
431
+ {
432
+ OpenBaseAdminConnection* conn = oba_newAdminConnection(RSTRING(host)->ptr);
433
+ int result = oba_stopDatabase(conn,RSTRING(database_name)->ptr,RSTRING(password)->ptr);
434
+ oba_deallocAdminConnection(conn);
435
+ return result ? Qtrue : Qfalse;
436
+ }
437
+ /* END OpenBase class level server administration functions */
438
+
439
+
404
440
  /*** OpenBaseResult: Construction/Destruction ***/
405
441
 
406
442
  static void result_mark( OpenBaseResult *result )
@@ -891,11 +927,10 @@ static VALUE columninfo_table( VALUE self )
891
927
  //typedef VALUE (ruby_method)(...);
892
928
  //#define CALLBACK(method_name) (ruby_method*)&method_name
893
929
  #define CALLBACK(method_name) method_name
894
-
930
+ #define VARIABLE_C_ARRAY -1
931
+ #define VARIABLE_RB_ARRAY -2
895
932
  void Init_openbase() {
896
- const int VARIABLE_C_ARRAY = -1;
897
- const int VARIABLE_RB_ARRAY = -2;
898
-
933
+
899
934
  rb_gsub_bang_id = rb_intern("gsub!");
900
935
  rb_date_regex = rb_reg_new("\\.",2,0);
901
936
  rb_replacement_str = rb_str_new("-",1);
@@ -915,6 +950,12 @@ void Init_openbase() {
915
950
  rb_define_alloc_func(rb_cOpenBase, openbase_alloc);
916
951
  rb_define_method(rb_cOpenBase, "initialize", CALLBACK(openbase_initialize), VARIABLE_C_ARRAY);
917
952
 
953
+ // OpenBase: Class Level Server Administration Functions
954
+ rb_define_singleton_method(rb_cOpenBase, "new_database", CALLBACK(openbase_new_database),3);
955
+ rb_define_singleton_method(rb_cOpenBase, "delete_database", CALLBACK(openbase_delete_database),3);
956
+ rb_define_singleton_method(rb_cOpenBase, "start_database", CALLBACK(openbase_start_database),3);
957
+ rb_define_singleton_method(rb_cOpenBase, "stop_database", CALLBACK(openbase_stop_database),3);
958
+
918
959
  // OpenBase: Connection Related Methods
919
960
  rb_define_method(rb_cOpenBase, "connect", CALLBACK(openbase_connect), VARIABLE_C_ARRAY);
920
961
  rb_define_method(rb_cOpenBase, "connected?", CALLBACK(openbase_isConnected), 0);
@@ -2,7 +2,7 @@ module RubyOpenBase #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/test/test_helper.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  require 'test/unit'
2
- require File.dirname(__FILE__) + '/../lib/ruby-openbase'
2
+ require File.dirname(__FILE__) + '/../ext/openbase'
@@ -10,13 +10,14 @@ require 'openbase'
10
10
  class TestOpenBase < Test::Unit::TestCase
11
11
 
12
12
  DATABASE = 'OBMovies'
13
- HOST = 'localhost'
13
+ HOST = '127.0.0.1'
14
+ HOST_PASSWORD = ''
14
15
  LOGIN = 'admin'
15
- PASSWORD = ''
16
+ DB_PASSWORD = ''
16
17
  ENCODING = 'ISO 8859-1 (Latin 1)'
17
18
 
18
19
  def setup
19
- @ob_OBMovies = OpenBase.new(DATABASE, HOST, LOGIN, PASSWORD)
20
+ @ob_OBMovies = OpenBase.new(DATABASE, HOST, LOGIN, DB_PASSWORD)
20
21
  @ob_OBOrderDatabase = OpenBase.new('OBOrderDatabase', HOST, 'admin', '')
21
22
  @ob_WORealEstate = OpenBase.new('WORealEstate', HOST, 'admin', '')
22
23
  end
@@ -27,14 +28,31 @@ class TestOpenBase < Test::Unit::TestCase
27
28
  #@ob_WORealEstate.invalidate
28
29
  end
29
30
 
31
+ def test_new_database
32
+ assert OpenBase.respond_to?(:new_database)
33
+ assert OpenBase.new_database(HOST,"new_db_#{Time.now.to_i}",HOST_PASSWORD);
34
+ end
35
+
36
+ def test_delete_database
37
+ assert OpenBase.respond_to?(:delete_database)
38
+ end
39
+
40
+ def test_start_database
41
+ assert OpenBase.respond_to?(:start_database)
42
+ end
43
+
44
+ def test_stop_database
45
+ assert OpenBase.respond_to?(:stop_database)
46
+ end
47
+
30
48
  def test_connect
31
49
  assert_nothing_raised do
32
- ob = OpenBase.new(DATABASE, HOST, LOGIN, PASSWORD)
50
+ ob = OpenBase.new(DATABASE, HOST, LOGIN, DB_PASSWORD)
33
51
  ob.invalidate
34
52
  end
35
53
 
36
54
  assert_raise(OpenBaseError) do
37
- OpenBase.new('NotFoundDatabaseName', HOST, LOGIN, PASSWORD)
55
+ OpenBase.new('NotFoundDatabaseName', HOST, LOGIN, DB_PASSWORD)
38
56
  end
39
57
  end
40
58
 
@@ -48,7 +66,7 @@ class TestOpenBase < Test::Unit::TestCase
48
66
  assert_equal(false, @ob_OBMovies.connected?)
49
67
  assert_raise(OpenBaseError) { @ob_OBMovies.database }
50
68
 
51
- @ob_OBMovies.connect(DATABASE, HOST, LOGIN, PASSWORD)
69
+ @ob_OBMovies.connect(DATABASE, HOST, LOGIN, DB_PASSWORD)
52
70
  assert_nothing_raised { @ob_OBMovies.database }
53
71
  end
54
72
 
@@ -57,7 +75,7 @@ class TestOpenBase < Test::Unit::TestCase
57
75
  assert_equal(DATABASE, @ob_OBMovies.database)
58
76
  assert_equal(HOST, @ob_OBMovies.host)
59
77
  assert_equal(LOGIN, @ob_OBMovies.login)
60
- assert_equal(PASSWORD, @ob_OBMovies.password)
78
+ assert_equal(DB_PASSWORD, @ob_OBMovies.password)
61
79
  end
62
80
 
63
81
  def test_unique_row_id
data/website/index.html CHANGED
@@ -33,7 +33,7 @@
33
33
  <h1>Ruby/OpenBase</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/ruby-openbase"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/ruby-openbase" class="numbers">0.8.1</a>
36
+ <a href="http://rubyforge.org/projects/ruby-openbase" class="numbers">0.8.2</a>
37
37
  </div>
38
38
  <h2>What</h2>
39
39
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: openbase
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.8.1
7
- date: 2007-06-25 00:00:00 -04:00
6
+ version: 0.8.2
7
+ date: 2007-07-22 00:00:00 -04:00
8
8
  summary: Provides access to OpenBase databases from Ruby.
9
9
  require_paths:
10
10
  - lib