sys-admin 1.7.3 → 1.8.0

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/sys-admin.gemspec CHANGED
@@ -3,27 +3,32 @@ require 'rubygems'
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'sys-admin'
6
- spec.version = '1.7.3'
6
+ spec.version = '1.8.0'
7
7
  spec.author = 'Daniel J. Berger'
8
8
  spec.license = 'Apache-2.0'
9
9
  spec.email = 'djberg96@gmail.com'
10
10
  spec.homepage = 'http://www.github.com/djberg96/sys-admin'
11
11
  spec.summary = 'A unified, cross platform replacement for the "etc" library.'
12
- spec.test_file = 'test/test_sys_admin.rb'
12
+ spec.test_files = Dir['spec/*.rb']
13
13
  spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
14
14
  spec.cert_chain = ['certs/djberg96_pub.pem']
15
15
 
16
16
  spec.extra_rdoc_files = Dir['*.rdoc']
17
17
 
18
- spec.add_dependency('ffi', '>= 1.1.0')
18
+ spec.add_dependency('ffi', '~> 1.1')
19
19
 
20
- spec.add_development_dependency('test-unit', '>= 2.5.0')
20
+ if Gem.win_platform?
21
+ spec.platform = Gem::Platform.new(['universal', 'mingw32'])
22
+ spec.add_dependency('win32-security', '~> 0.5')
23
+ end
24
+
25
+ spec.add_development_dependency('rspec', '~> 3.9')
21
26
  spec.add_development_dependency('rake')
22
27
 
23
28
  spec.metadata = {
24
29
  'homepage_uri' => 'https://github.com/djberg96/sys-admin',
25
30
  'bug_tracker_uri' => 'https://github.com/djberg96/sys-admin/issues',
26
- 'changelog_uri' => 'https://github.com/djberg96/sys-admin/blob/ffi/CHANGES',
31
+ 'changelog_uri' => 'https://github.com/djberg96/sys-admin/blob/main/CHANGES.md',
27
32
  'documentation_uri' => 'https://github.com/djberg96/sys-admin/wiki',
28
33
  'source_code_uri' => 'https://github.com/djberg96/sys-admin',
29
34
  'wiki_uri' => 'https://github.com/djberg96/sys-admin/wiki'
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sys-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.3
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel J. Berger
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
@@ -35,36 +35,36 @@ cert_chain:
35
35
  ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
36
36
  WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
37
37
  -----END CERTIFICATE-----
38
- date:
38
+ date: 2021-08-26 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: ffi
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - ">="
44
+ - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 1.1.0
46
+ version: '1.1'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">="
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 1.1.0
53
+ version: '1.1'
54
54
  - !ruby/object:Gem::Dependency
55
- name: test-unit
55
+ name: rspec
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - ">="
58
+ - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 2.5.0
60
+ version: '3.9'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - ">="
65
+ - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: 2.5.0
67
+ version: '3.9'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: rake
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -88,52 +88,31 @@ description: |2
88
88
  email: djberg96@gmail.com
89
89
  executables: []
90
90
  extensions: []
91
- extra_rdoc_files:
92
- - CHANGES.rdoc
93
- - MANIFEST.rdoc
94
- - README.rdoc
91
+ extra_rdoc_files: []
95
92
  files:
96
- - test
97
- - test/test_sys_admin_unix.rb
98
- - test/test_sys_admin_windows.rb
99
- - test/test_sys_admin.rb
100
- - examples
93
+ - CHANGES.md
94
+ - Gemfile
95
+ - LICENSE
96
+ - MANIFEST.md
97
+ - README.md
98
+ - Rakefile
99
+ - certs/djberg96_pub.pem
100
+ - doc/sys-admin-unix.txt
101
+ - doc/sys-admin-windows.txt
101
102
  - examples/example_groups.rb
102
103
  - examples/example_users.rb
103
- - doc
104
- - doc/sys-admin-windows.txt
105
- - doc/sys-admin-unix.txt
106
- - Rakefile
107
- - lib
108
- - lib/windows
109
- - lib/windows/sys
110
- - lib/windows/sys/admin.rb
111
- - lib/sys-admin.rb
112
- - lib/sunos
113
- - lib/sunos/sys
114
- - lib/sunos/sys/admin.rb
115
- - lib/linux
116
- - lib/linux/sys
117
- - lib/linux/sys/admin.rb
118
- - lib/bsd
119
- - lib/bsd/sys
120
104
  - lib/bsd/sys/admin.rb
121
- - lib/darwin
122
- - lib/darwin/sys
123
105
  - lib/darwin/sys/admin.rb
124
- - lib/unix
125
- - lib/unix/sys
126
- - lib/unix/sys/admin.rb
127
- - lib/sys
128
- - lib/sys/admin
129
- - lib/sys/admin/custom.rb
130
- - lib/sys/admin/common.rb
106
+ - lib/linux/sys/admin.rb
107
+ - lib/sunos/sys/admin.rb
108
+ - lib/sys-admin.rb
131
109
  - lib/sys/admin.rb
132
- - certs
133
- - certs/djberg96_pub.pem
134
- - CHANGES.rdoc
135
- - MANIFEST.rdoc
136
- - README.rdoc
110
+ - lib/sys/admin/common.rb
111
+ - lib/sys/admin/custom.rb
112
+ - lib/unix/sys/admin.rb
113
+ - lib/windows/sys/admin.rb
114
+ - spec/sys_admin_unix_spec.rb
115
+ - spec/sys_admin_windows_spec.rb
137
116
  - sys-admin.gemspec
138
117
  homepage: http://www.github.com/djberg96/sys-admin
139
118
  licenses:
@@ -141,11 +120,11 @@ licenses:
141
120
  metadata:
142
121
  homepage_uri: https://github.com/djberg96/sys-admin
143
122
  bug_tracker_uri: https://github.com/djberg96/sys-admin/issues
144
- changelog_uri: https://github.com/djberg96/sys-admin/blob/ffi/CHANGES
123
+ changelog_uri: https://github.com/djberg96/sys-admin/blob/main/CHANGES.md
145
124
  documentation_uri: https://github.com/djberg96/sys-admin/wiki
146
125
  source_code_uri: https://github.com/djberg96/sys-admin
147
126
  wiki_uri: https://github.com/djberg96/sys-admin/wiki
148
- post_install_message:
127
+ post_install_message:
149
128
  rdoc_options: []
150
129
  require_paths:
151
130
  - lib
@@ -160,9 +139,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
139
  - !ruby/object:Gem::Version
161
140
  version: '0'
162
141
  requirements: []
163
- rubygems_version: 3.0.6
164
- signing_key:
142
+ rubygems_version: 3.1.4
143
+ signing_key:
165
144
  specification_version: 4
166
145
  summary: A unified, cross platform replacement for the "etc" library.
167
146
  test_files:
168
- - test/test_sys_admin.rb
147
+ - spec/sys_admin_unix_spec.rb
148
+ - spec/sys_admin_windows_spec.rb
metadata.gz.sig CHANGED
Binary file
@@ -1,23 +0,0 @@
1
- ###############################################################################
2
- # test_sys_admin.rb
3
- #
4
- # This exists mostly for the sake of the gemspec, so that it calls the right
5
- # test suite based on the platform.
6
- ###############################################################################
7
- require 'test-unit'
8
-
9
- if File::ALT_SEPARATOR
10
- require 'test_sys_admin_windows'
11
- else
12
- require 'test_sys_admin_unix'
13
- end
14
-
15
- class TC_Sys_Admin_All < Test::Unit::TestCase
16
- test "version is set to expected value" do
17
- assert_equal('1.7.3', Sys::Admin::VERSION)
18
- end
19
-
20
- test "version constant is frozen" do
21
- assert_true(Sys::Admin::VERSION.frozen?)
22
- end
23
- end
@@ -1,260 +0,0 @@
1
- ###############################################################################
2
- # test_sys_admin_unix.rb
3
- #
4
- # Test suite for the Unix version of sys-admin. This test should be run
5
- # via the 'rake test' task.
6
- ###############################################################################
7
- require 'test-unit'
8
- require 'sys/admin'
9
- include Sys
10
-
11
- class TC_Sys_Admin_Unix < Test::Unit::TestCase
12
- def setup
13
- @user = 'nobody'
14
- @user_id = 0
15
- @group = 'sys'
16
- @group_id = 3
17
- end
18
-
19
- ## Admin singleton methods
20
-
21
- test "get_login basic functionality" do
22
- assert_respond_to(Admin, :get_login)
23
- assert_nothing_raised{ Admin.get_login }
24
- end
25
-
26
- test "get_login returns a string" do
27
- assert_kind_of(String, Admin.get_login)
28
- assert_true(Admin.get_login.length > 0)
29
- end
30
-
31
- test "get_user basic functionality" do
32
- assert_respond_to(Admin, :get_user)
33
- assert_nothing_raised{ Admin.get_user(@user) }
34
- assert_nothing_raised{ Admin.get_user(@user_id) }
35
- end
36
-
37
- test "get_user with a string argument works as expected" do
38
- assert_kind_of(Admin::User, Admin.get_user(@user))
39
- end
40
-
41
- test "get_user with an integer argument works as expected" do
42
- assert_kind_of(Admin::User, Admin.get_user(@user_id))
43
- end
44
-
45
- test "get_user requires one argument only" do
46
- assert_raise(ArgumentError){ Admin.get_user }
47
- assert_raise(ArgumentError){ Admin.get_user(@user, @user) }
48
- end
49
-
50
- test "get_user requires a string or integer argument" do
51
- assert_raise(TypeError){ Admin.get_user([]) }
52
- end
53
-
54
- test "get_user raises an Error if the user cannot be found" do
55
- assert_raise(Admin::Error){ Admin.get_user('foofoofoo') }
56
- end
57
-
58
- test "users basic functionality" do
59
- assert_respond_to(Admin, :users)
60
- assert_nothing_raised{ Admin.users }
61
- end
62
-
63
- test "users returns an array of User objects" do
64
- users = Admin.users
65
- assert_kind_of(Array, users)
66
- assert_kind_of(Admin::User, users.first)
67
- end
68
-
69
- test "users does not accept any arguments" do
70
- assert_raise(ArgumentError){ Admin.users(@user_id) }
71
- end
72
-
73
- test "get_group basic functionality" do
74
- assert_respond_to(Admin, :get_group)
75
- assert_nothing_raised{ Admin.get_group(@group) }
76
- assert_nothing_raised{ Admin.get_group(@group_id) }
77
- end
78
-
79
- test "get_group accepts a string argument" do
80
- assert_kind_of(Admin::Group, Admin.get_group(@group))
81
- end
82
-
83
- test "get_group accepts an integer argument" do
84
- assert_kind_of(Admin::Group, Admin.get_group(@group_id))
85
- end
86
-
87
- test "get_group requires one argument only" do
88
- assert_raise(ArgumentError){ Admin.get_group }
89
- assert_raise(ArgumentError){ Admin.get_group(@group_id, @group_id) }
90
- end
91
-
92
- test "get_group raises a TypeError if an invalid type is passed" do
93
- assert_raise(TypeError){ Admin.get_group([]) }
94
- end
95
-
96
- test "get_group raises an Error if the group cannot be found" do
97
- assert_raise(Admin::Error){ Admin.get_group('foofoofoo') }
98
- end
99
-
100
- test "groups basic functionality" do
101
- assert_respond_to(Admin, :groups)
102
- assert_nothing_raised{ Admin.groups }
103
- end
104
-
105
- test "groups returns an array of Group objects" do
106
- groups = Admin.groups
107
- assert_kind_of(Array, groups)
108
- assert_kind_of(Admin::Group, groups.first)
109
- end
110
-
111
- test "groups method does not accept any arguments" do
112
- assert_raise(ArgumentError){ Admin.groups(@group_id) }
113
- end
114
-
115
- ## User Tests
116
-
117
- test "user.name behaves as expected" do
118
- @user = Admin.get_user(@user_id)
119
- assert_respond_to(@user, :name)
120
- assert_kind_of(String, @user.name)
121
- end
122
-
123
- test "user.passwd behaves as expected" do
124
- @user = Admin.get_user(@user_id)
125
- assert_respond_to(@user, :passwd)
126
- assert_kind_of(String, @user.passwd)
127
- end
128
-
129
- test "user.uid behaves as expected" do
130
- @user = Admin.get_user(@user_id)
131
- assert_respond_to(@user, :uid)
132
- assert_kind_of(Integer, @user.uid)
133
- end
134
-
135
- test "user.gid behaves as expected" do
136
- @user = Admin.get_user(@user_id)
137
- assert_respond_to(@user, :gid)
138
- assert_kind_of(Integer, @user.gid)
139
- end
140
-
141
- test "user.dir behaves as expected" do
142
- @user = Admin.get_user(@user_id)
143
- assert_respond_to(@user, :dir)
144
- assert_kind_of(String, @user.dir)
145
- end
146
-
147
- test "user.shell behaves as expected" do
148
- @user = Admin.get_user(@user_id)
149
- assert_respond_to(@user, :shell)
150
- assert_kind_of(String, @user.shell)
151
- end
152
-
153
- test "user.gecos behaves as expected" do
154
- @user = Admin.get_user(@user_id)
155
- assert_respond_to(@user, :gecos)
156
- assert_kind_of([String, NilClass], @user.gecos)
157
- end
158
-
159
- test "user.quota behaves as expected" do
160
- @user = Admin.get_user(@user_id)
161
- assert_respond_to(@user, :quota)
162
- assert_true([Integer, NilClass].include?(@user.quota.class))
163
- end
164
-
165
- test "user.age behaves as expected" do
166
- @user = Admin.get_user(@user_id)
167
- assert_respond_to(@user, :age)
168
- assert_true([Integer, NilClass].include?(@user.age.class))
169
- end
170
-
171
- test "user.access behaves as expected" do
172
- @user = Admin.get_user(@user_id)
173
- assert_respond_to(@user, :access_class)
174
- assert_true([String, NilClass].include?(@user.access_class.class))
175
- end
176
-
177
- test "user.comment behaves as expected" do
178
- @user = Admin.get_user(@user_id)
179
- assert_respond_to(@user, :comment)
180
- assert_true([String, NilClass].include?(@user.comment.class))
181
- end
182
-
183
- test "user.expire behaves as expected" do
184
- @user = Admin.get_user(@user_id)
185
- assert_respond_to(@user, :expire)
186
- assert_true([Time, NilClass].include?(@user.expire.class))
187
- end
188
-
189
- test "user.change behaves as expected" do
190
- @user = Admin.get_user(@user_id)
191
- assert_respond_to(@user, :change)
192
- assert_true([Time, NilClass].include?(@user.change.class))
193
- end
194
-
195
- test "user.login_time behaves as expected" do
196
- @user = Admin.get_user(@user_id)
197
- assert_respond_to(@user, :login_time)
198
- assert_true([Time, NilClass].include?(@user.login_time.class))
199
- end
200
-
201
- test "user.login_device behaves as expected" do
202
- @user = Admin.get_user(@user_id)
203
- assert_respond_to(@user, :login_device)
204
- assert_true([String, NilClass].include?(@user.login_device.class))
205
- end
206
-
207
- test "user.login_host behaves as expected" do
208
- @user = Admin.get_user(@user_id)
209
- assert_respond_to(@user, :login_host)
210
- assert_true([String, NilClass].include?(@user.login_host.class))
211
- end
212
-
213
- test "user.groups behaves as expected" do
214
- @user = Admin.get_user(@user_id)
215
- assert_respond_to(@user, :groups)
216
- assert_kind_of(Array, @user.groups)
217
- end
218
-
219
- ## Group Tests
220
-
221
- test "group.name behaves as expected" do
222
- @group = Admin.get_group(@group_id)
223
- assert_respond_to(@group, :name)
224
- assert_kind_of(String, @group.name)
225
- end
226
-
227
- test "group.gid behaves as expected" do
228
- @group = Admin.get_group(@group_id)
229
- assert_respond_to(@group, :gid)
230
- assert_kind_of(Integer, @group.gid)
231
- end
232
-
233
- test "group.members behaves as expected" do
234
- @group = Admin.get_group(@group_id)
235
- assert_respond_to(@group, :members)
236
- assert_kind_of(Array, @group.members)
237
- end
238
-
239
- test "group.passwd behaves as expected" do
240
- @group = Admin.get_group(@group_id)
241
- assert_respond_to(@group, :passwd)
242
- assert_kind_of(String, @group.passwd)
243
- end
244
-
245
- ## FFI
246
-
247
- test "ffi functions are private" do
248
- methods = Admin.methods(false).map{ |e| e.to_s }
249
- assert_false(methods.include?('getlogin'))
250
- assert_false(methods.include?('getlogin_r'))
251
- assert_false(methods.include?('strerror'))
252
- end
253
-
254
- def teardown
255
- @user = nil
256
- @user_id = nil
257
- @group = nil
258
- @group_id = nil
259
- end
260
- end