rubyfb 0.5.2-x86-linux
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/CHANGELOG +6 -0
- data/LICENSE +411 -0
- data/Manifest +73 -0
- data/README +460 -0
- data/Rakefile +20 -0
- data/examples/example01.rb +65 -0
- data/ext/AddUser.c +464 -0
- data/ext/AddUser.h +37 -0
- data/ext/Backup.c +783 -0
- data/ext/Backup.h +37 -0
- data/ext/Blob.c +421 -0
- data/ext/Blob.h +65 -0
- data/ext/Common.c +54 -0
- data/ext/Common.h +37 -0
- data/ext/Connection.c +863 -0
- data/ext/Connection.h +50 -0
- data/ext/DataArea.c +274 -0
- data/ext/DataArea.h +38 -0
- data/ext/Database.c +449 -0
- data/ext/Database.h +48 -0
- data/ext/FireRuby.c +240 -0
- data/ext/FireRuby.h +50 -0
- data/ext/FireRubyException.c +268 -0
- data/ext/FireRubyException.h +51 -0
- data/ext/Generator.c +689 -0
- data/ext/Generator.h +53 -0
- data/ext/RemoveUser.c +212 -0
- data/ext/RemoveUser.h +37 -0
- data/ext/Restore.c +855 -0
- data/ext/Restore.h +37 -0
- data/ext/ResultSet.c +809 -0
- data/ext/ResultSet.h +60 -0
- data/ext/Row.c +965 -0
- data/ext/Row.h +55 -0
- data/ext/ServiceManager.c +316 -0
- data/ext/ServiceManager.h +48 -0
- data/ext/Services.c +124 -0
- data/ext/Services.h +42 -0
- data/ext/Statement.c +785 -0
- data/ext/Statement.h +62 -0
- data/ext/Transaction.c +684 -0
- data/ext/Transaction.h +50 -0
- data/ext/TypeMap.c +1182 -0
- data/ext/TypeMap.h +51 -0
- data/ext/extconf.rb +28 -0
- data/ext/mkmf.bat +1 -0
- data/lib/SQLType.rb +224 -0
- data/lib/active_record/connection_adapters/rubyfb_adapter.rb +805 -0
- data/lib/mkdoc +1 -0
- data/lib/rubyfb.rb +2 -0
- data/lib/rubyfb_lib.so +0 -0
- data/lib/src.rb +1800 -0
- data/rubyfb.gemspec +31 -0
- data/test/AddRemoveUserTest.rb +56 -0
- data/test/BackupRestoreTest.rb +99 -0
- data/test/BlobTest.rb +57 -0
- data/test/CharacterSetTest.rb +63 -0
- data/test/ConnectionTest.rb +111 -0
- data/test/DDLTest.rb +54 -0
- data/test/DatabaseTest.rb +83 -0
- data/test/GeneratorTest.rb +50 -0
- data/test/KeyTest.rb +140 -0
- data/test/ResultSetTest.rb +162 -0
- data/test/RoleTest.rb +73 -0
- data/test/RowCountTest.rb +65 -0
- data/test/RowTest.rb +203 -0
- data/test/SQLTest.rb +182 -0
- data/test/SQLTypeTest.rb +101 -0
- data/test/ServiceManagerTest.rb +29 -0
- data/test/StatementTest.rb +135 -0
- data/test/TestSetup.rb +11 -0
- data/test/TransactionTest.rb +112 -0
- data/test/TypeTest.rb +92 -0
- data/test/UnitTest.rb +65 -0
- metadata +149 -0
data/ext/Generator.h
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
/*------------------------------------------------------------------------------
|
2
|
+
* Generator.h
|
3
|
+
*----------------------------------------------------------------------------*/
|
4
|
+
/**
|
5
|
+
* Copyright � Peter Wood, 2005
|
6
|
+
*
|
7
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
8
|
+
* 1.1 (the "License"); you may not use this file except in compliance with the
|
9
|
+
* License. You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.mozilla.org/MPL/
|
12
|
+
*
|
13
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
14
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
15
|
+
* the specificlanguage governing rights and limitations under the License.
|
16
|
+
*
|
17
|
+
* The Original Code is the FireRuby extension for the Ruby language.
|
18
|
+
*
|
19
|
+
* The Initial Developer of the Original Code is Peter Wood. All Rights
|
20
|
+
* Reserved.
|
21
|
+
*
|
22
|
+
* @author Peter Wood
|
23
|
+
* @version 1.0
|
24
|
+
*/
|
25
|
+
#ifndef FIRERUBY_GENERATOR_H
|
26
|
+
#define FIRERUBY_GENERATOR_H
|
27
|
+
|
28
|
+
/* Includes. */
|
29
|
+
#ifndef FIRERUBY_FIRE_RUBY_EXCEPTION_H
|
30
|
+
#include "FireRubyException.h"
|
31
|
+
#endif
|
32
|
+
|
33
|
+
#ifndef FIRERUBY_CONNECTION_H
|
34
|
+
#include "Connection.h"
|
35
|
+
#endif
|
36
|
+
|
37
|
+
#ifndef RUBY_H_INCLUDED
|
38
|
+
#include "ruby.h"
|
39
|
+
#define RUBY_H_INCLUDED
|
40
|
+
#endif
|
41
|
+
|
42
|
+
/* Type definitions. */
|
43
|
+
typedef struct
|
44
|
+
{
|
45
|
+
isc_db_handle *connection;
|
46
|
+
} GeneratorHandle;
|
47
|
+
|
48
|
+
/* Function prototypes. */
|
49
|
+
void Init_Generator(VALUE);
|
50
|
+
VALUE rb_generator_new(VALUE, VALUE);
|
51
|
+
void generatorFree(void *);
|
52
|
+
|
53
|
+
#endif /* FIRERUBY_GENERATOR_H */
|
data/ext/RemoveUser.c
ADDED
@@ -0,0 +1,212 @@
|
|
1
|
+
/*------------------------------------------------------------------------------
|
2
|
+
* RemoveUser.c
|
3
|
+
*----------------------------------------------------------------------------*/
|
4
|
+
/**
|
5
|
+
* Copyright � Peter Wood, 2005
|
6
|
+
*
|
7
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
8
|
+
* 1.1 (the "License"); you may not use this file except in compliance with the
|
9
|
+
* License. You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.mozilla.org/MPL/
|
12
|
+
*
|
13
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
14
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
15
|
+
* the specificlanguage governing rights and limitations under the License.
|
16
|
+
*
|
17
|
+
* The Original Code is the FireRuby extension for the Ruby language.
|
18
|
+
*
|
19
|
+
* The Initial Developer of the Original Code is Peter Wood. All Rights
|
20
|
+
* Reserved.
|
21
|
+
*
|
22
|
+
* @author Peter Wood
|
23
|
+
* @version 1.0
|
24
|
+
*/
|
25
|
+
|
26
|
+
/* Includes. */
|
27
|
+
#include "RemoveUser.h"
|
28
|
+
#include "ibase.h"
|
29
|
+
#include "ServiceManager.h"
|
30
|
+
|
31
|
+
/* Function prototypes. */
|
32
|
+
static VALUE initializeRemoveUser(VALUE , VALUE);
|
33
|
+
static VALUE getUserName(VALUE);
|
34
|
+
static VALUE setUserName(VALUE, VALUE);
|
35
|
+
static void createRemoveUserBuffer(VALUE, char **, short *);
|
36
|
+
|
37
|
+
|
38
|
+
/* Globals. */
|
39
|
+
VALUE cRemoveUser;
|
40
|
+
|
41
|
+
|
42
|
+
/**
|
43
|
+
* This function provides the initialize method for the RemoveUser class.
|
44
|
+
*
|
45
|
+
* @param self A reference to the RemoveUser object being initialized.
|
46
|
+
* @param username A reference to a String containing the user name of the
|
47
|
+
* user to be removed.
|
48
|
+
*
|
49
|
+
* @return A reference to the newly initialized RemoveUser object.
|
50
|
+
*
|
51
|
+
*/
|
52
|
+
VALUE initializeRemoveUser(VALUE self, VALUE username)
|
53
|
+
{
|
54
|
+
VALUE actual = rb_funcall(username, rb_intern("to_s"), 0),
|
55
|
+
value = Qnil;
|
56
|
+
int length = 0;
|
57
|
+
|
58
|
+
/* Check that the parameters are valid. */
|
59
|
+
value = rb_funcall(actual, rb_intern("length"), 0);
|
60
|
+
length = TYPE(value) == T_FIXNUM ? FIX2INT(value) : NUM2INT(value);
|
61
|
+
if(length < 1 || length > 31)
|
62
|
+
{
|
63
|
+
rb_fireruby_raise(NULL,
|
64
|
+
"Invalid user name specified. A user name must not be "\
|
65
|
+
"blank and may have no more than 31 characters.");
|
66
|
+
}
|
67
|
+
|
68
|
+
/* Assign class values. */
|
69
|
+
rb_iv_set(self, "@user_name", actual);
|
70
|
+
|
71
|
+
return(self);
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
/**
|
76
|
+
* This function provides the user_name attribute accessor for the RemoveUser
|
77
|
+
* class.
|
78
|
+
*
|
79
|
+
* @param self A reference to the RemoveUser object to make the call on.
|
80
|
+
*
|
81
|
+
* @return A reference to the attribute value for the object.
|
82
|
+
*
|
83
|
+
*/
|
84
|
+
VALUE getUserName(VALUE self)
|
85
|
+
{
|
86
|
+
return(rb_iv_get(self, "@user_name"));
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
/**
|
91
|
+
* This function provides the user_name attribute mutator for the RemoveUser
|
92
|
+
* class.
|
93
|
+
*
|
94
|
+
* @param self A reference to the RemoveUser object to make the call on.
|
95
|
+
* @param setting The new value for the attribute.
|
96
|
+
*
|
97
|
+
* @return A reference to the newly update RemoveUser object.
|
98
|
+
*
|
99
|
+
*/
|
100
|
+
VALUE setUserName(VALUE self, VALUE setting)
|
101
|
+
{
|
102
|
+
VALUE actual = rb_funcall(setting, rb_intern("to_s"), 0),
|
103
|
+
value = rb_funcall(actual, rb_intern("length"), 0);
|
104
|
+
int length = 0;
|
105
|
+
|
106
|
+
length = TYPE(value) == T_FIXNUM ? FIX2INT(value) : NUM2INT(value);
|
107
|
+
if(length < 1 || length > 31)
|
108
|
+
{
|
109
|
+
rb_fireruby_raise(NULL,
|
110
|
+
"Invalid user name specified. A user name must not be "\
|
111
|
+
"blank and may have no more than 31 characters.");
|
112
|
+
}
|
113
|
+
rb_iv_set(self, "@user_name", actual);
|
114
|
+
|
115
|
+
return(self);
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
/**
|
121
|
+
* This function provides the execute method for the RemoveUser class.
|
122
|
+
*
|
123
|
+
* @param self A reference to the RemoveUser object to be executed.
|
124
|
+
* @param manager A reference to the ServiceManager that will be used to
|
125
|
+
* execute the task.
|
126
|
+
*
|
127
|
+
* @return A reference to the RemoveUser object executed.
|
128
|
+
*
|
129
|
+
*/
|
130
|
+
VALUE executeRemoveUser(VALUE self, VALUE manager)
|
131
|
+
{
|
132
|
+
ManagerHandle *handle = NULL;
|
133
|
+
char *buffer = NULL;
|
134
|
+
short length = 0;
|
135
|
+
ISC_STATUS status[20];
|
136
|
+
|
137
|
+
/* Check that the service manager is connected. */
|
138
|
+
Data_Get_Struct(manager, ManagerHandle, handle);
|
139
|
+
if(handle->handle == 0)
|
140
|
+
{
|
141
|
+
rb_fireruby_raise(NULL,
|
142
|
+
"Remove user error. Service manager not connected.");
|
143
|
+
}
|
144
|
+
|
145
|
+
createRemoveUserBuffer(self, &buffer, &length);
|
146
|
+
|
147
|
+
/* Start the service request. */
|
148
|
+
if(isc_service_start(status, &handle->handle, NULL, length, buffer))
|
149
|
+
{
|
150
|
+
free(buffer);
|
151
|
+
rb_fireruby_raise(status, "Error removing user.");
|
152
|
+
}
|
153
|
+
free(buffer);
|
154
|
+
|
155
|
+
return(self);
|
156
|
+
}
|
157
|
+
|
158
|
+
|
159
|
+
/**
|
160
|
+
* This function provides the execute method for the RemoveUser class.
|
161
|
+
*
|
162
|
+
* @param self A reference to the RemoveUser object to generate the buffer for.
|
163
|
+
* @param buffer A pointer to a pointer that will be set to contain the
|
164
|
+
* buffer contents.
|
165
|
+
* @param length A pointer to a short integer that will be assigned the length
|
166
|
+
* of the buffer.
|
167
|
+
*
|
168
|
+
*/
|
169
|
+
void createRemoveUserBuffer(VALUE self, char **buffer, short *length)
|
170
|
+
{
|
171
|
+
VALUE value = Qnil;
|
172
|
+
char *offset = NULL;
|
173
|
+
int number = 0;
|
174
|
+
|
175
|
+
/* Calculate the required buffer length. */
|
176
|
+
*length = 1;
|
177
|
+
*length += strlen(STR2CSTR(rb_iv_get(self, "@user_name"))) + 3;
|
178
|
+
|
179
|
+
/* Create and populate the buffer. */
|
180
|
+
offset = *buffer = ALLOC_N(char, *length);
|
181
|
+
if(*buffer == NULL)
|
182
|
+
{
|
183
|
+
rb_raise(rb_eNoMemError,
|
184
|
+
"Memory allocation error preparing to remove user.");
|
185
|
+
}
|
186
|
+
memset(*buffer, 0, *length);
|
187
|
+
|
188
|
+
*offset++ = isc_action_svc_delete_user;
|
189
|
+
|
190
|
+
*offset++ = isc_spb_sec_username;
|
191
|
+
value = rb_iv_get(self, "@user_name");
|
192
|
+
number = strlen(STR2CSTR(value));
|
193
|
+
ADD_SPB_LENGTH(offset, number);
|
194
|
+
memcpy(offset, STR2CSTR(value), number);
|
195
|
+
offset += number;
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
/**
|
200
|
+
* This function initialize the RemoveUser class in the Ruby environment.
|
201
|
+
*
|
202
|
+
* @param module The module to create the new class definition under.
|
203
|
+
*
|
204
|
+
*/
|
205
|
+
void Init_RemoveUser(VALUE module)
|
206
|
+
{
|
207
|
+
cRemoveUser = rb_define_class_under(module, "RemoveUser", rb_cObject);
|
208
|
+
rb_define_method(cRemoveUser, "initialize", initializeRemoveUser, 1);
|
209
|
+
rb_define_method(cRemoveUser, "user_name", getUserName, 0);
|
210
|
+
rb_define_method(cRemoveUser, "user_name=", setUserName, 1);
|
211
|
+
rb_define_method(cRemoveUser, "execute", executeRemoveUser, 1);
|
212
|
+
}
|
data/ext/RemoveUser.h
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
/*------------------------------------------------------------------------------
|
2
|
+
* RemoveUser.h
|
3
|
+
*----------------------------------------------------------------------------*/
|
4
|
+
/**
|
5
|
+
* Copyright � Peter Wood, 2005
|
6
|
+
*
|
7
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
8
|
+
* 1.1 (the "License"); you may not use this file except in compliance with the
|
9
|
+
* License. You may obtain a copy of the License at
|
10
|
+
*
|
11
|
+
* http://www.mozilla.org/MPL/
|
12
|
+
*
|
13
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
14
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
|
15
|
+
* the specificlanguage governing rights and limitations under the License.
|
16
|
+
*
|
17
|
+
* The Original Code is the FireRuby extension for the Ruby language.
|
18
|
+
*
|
19
|
+
* The Initial Developer of the Original Code is Peter Wood. All Rights
|
20
|
+
* Reserved.
|
21
|
+
*
|
22
|
+
* @author Peter Wood
|
23
|
+
* @version 1.0
|
24
|
+
*/
|
25
|
+
#ifndef FIRERUBY_REMOVE_USER_H
|
26
|
+
#define FIRERUBY_REMOVE_USER_H
|
27
|
+
|
28
|
+
/* Includes. */
|
29
|
+
#ifndef RUBY_H_INCLUDED
|
30
|
+
#include "ruby.h"
|
31
|
+
#define RUBY_H_INCLUDED
|
32
|
+
#endif
|
33
|
+
|
34
|
+
/* Function prototypes. */
|
35
|
+
void Init_RemoveUser(VALUE);
|
36
|
+
|
37
|
+
#endif /* FIRERUBY_REMOVE_USER_H */
|