sys-admin 1.5.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +4 -0
- data/README +0 -2
- data/ext/sys/admin.c +13 -3
- data/ext/sys/admin.h +3 -3
- data/test/test_sys_admin.rb +1 -1
- data/test/test_sys_admin_windows.rb +2 -2
- metadata +14 -5
data/CHANGES
CHANGED
data/README
CHANGED
data/ext/sys/admin.c
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
#include "ruby.h"
|
2
2
|
#include "admin.h"
|
3
3
|
|
4
|
+
#ifndef RSTRING_PTR
|
5
|
+
#define RSTRING_PTR(v) (RSTRING(v)->ptr)
|
6
|
+
#define RSTRING_LEN(v) (RSTRING(v)->len)
|
7
|
+
#endif
|
8
|
+
|
9
|
+
#ifndef RARRAY_PTR
|
10
|
+
#define RARRAY_PTR(v) (RARRAY(v)->ptr)
|
11
|
+
#define RARRAY_LEN(v) (RARRAY(v)->len)
|
12
|
+
#endif
|
13
|
+
|
4
14
|
/*
|
5
15
|
* call-seq:
|
6
16
|
* User.new
|
@@ -290,8 +300,8 @@ static VALUE user_groups(VALUE self){
|
|
290
300
|
* the user name, we have a match.
|
291
301
|
*/
|
292
302
|
if(!NIL_P(v_groups)){
|
293
|
-
for(i = 0; i <
|
294
|
-
v_group =
|
303
|
+
for(i = 0; i < RARRAY_LEN(v_groups); i++){
|
304
|
+
v_group = RARRAY_PTR(v_groups)[i];
|
295
305
|
v_users = rb_funcall(v_group, rb_intern("members"), 0, 0);
|
296
306
|
|
297
307
|
if(RTEST(rb_funcall(v_users, rb_intern("include?"), 1, v_name))){
|
@@ -404,6 +414,6 @@ void Init_admin(){
|
|
404
414
|
|
405
415
|
/* Constants */
|
406
416
|
|
407
|
-
/* 1.5.
|
417
|
+
/* 1.5.2: The version of this library */
|
408
418
|
rb_define_const(cAdmin, "VERSION", rb_str_new2(SYS_ADMIN_VERSION));
|
409
419
|
}
|
data/ext/sys/admin.h
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
#include <errno.h>
|
9
9
|
#include <string.h>
|
10
10
|
|
11
|
-
#define SYS_ADMIN_VERSION "1.5.
|
11
|
+
#define SYS_ADMIN_VERSION "1.5.2"
|
12
12
|
|
13
13
|
#if defined(__MACH__) || defined(__APPLE__)
|
14
14
|
#define __BSD__
|
@@ -111,7 +111,7 @@ static VALUE get_user_by_name(VALUE v_name){
|
|
111
111
|
struct passwd pwd;
|
112
112
|
struct passwd* pwdbuf;
|
113
113
|
|
114
|
-
if(getpwnam_r(
|
114
|
+
if(getpwnam_r(RSTRING_PTR(v_name), &pwd, buf, sizeof(buf), &pwdbuf) != 0)
|
115
115
|
rb_raise(cAdminError, "%s", strerror(errno));
|
116
116
|
|
117
117
|
if(!pwdbuf)
|
@@ -178,7 +178,7 @@ static VALUE get_group_by_name(VALUE v_name){
|
|
178
178
|
struct group grp;
|
179
179
|
struct group* grpbuf;
|
180
180
|
|
181
|
-
if(getgrnam_r(
|
181
|
+
if(getgrnam_r(RSTRING_PTR(v_name), &grp, buf, sizeof(buf), &grpbuf) != 0)
|
182
182
|
rb_raise(cAdminError, "%s", strerror(errno));
|
183
183
|
|
184
184
|
if(!grpbuf)
|
data/test/test_sys_admin.rb
CHANGED
@@ -262,8 +262,8 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase
|
|
262
262
|
end
|
263
263
|
|
264
264
|
def test_user_dir
|
265
|
-
assert_nothing_raised{ Admin.get_user(@user_name, :localaccount => true) }
|
266
|
-
assert_kind_of(String, @
|
265
|
+
assert_nothing_raised{ @user = Admin.get_user(@user_name, :localaccount => true) }
|
266
|
+
assert_kind_of([String, NilClass], @user.dir)
|
267
267
|
end
|
268
268
|
|
269
269
|
# Group class
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sys-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -9,10 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-02 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
|
-
dependencies:
|
15
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: test-unit
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.0.3
|
24
|
+
version:
|
16
25
|
description: " The sys-admin library is a unified, cross platform replacement for the\n 'etc' library that ships as part of the Ruby standard library. It\n provides a common interface for all platforms, including MS Windows. In\n addition, it provides an interface for adding, deleting and configuring\n users on MS Windows.\n"
|
17
26
|
email: djberg96@gmail.com
|
18
27
|
executables: []
|
@@ -62,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
71
|
requirements: []
|
63
72
|
|
64
73
|
rubyforge_project: sysutils
|
65
|
-
rubygems_version: 1.3.
|
74
|
+
rubygems_version: 1.3.5
|
66
75
|
signing_key:
|
67
76
|
specification_version: 3
|
68
77
|
summary: A unified, cross platform replacement for the "etc" library.
|