sys-admin 1.4.3-x86-mswin32-60 → 1.4.4-x86-mswin32-60
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/CHANGES +7 -0
- data/doc/sys-admin-unix.txt +2 -2
- data/doc/sys-admin-windows.txt +3 -3
- data/lib/sys/admin.rb +36 -22
- data/sys-admin.gemspec +6 -7
- data/test/tc_admin.rb +3 -3
- data/test/tc_unix.rb +1 -1
- data/test/tc_windows.rb +41 -27
- metadata +3 -6
- data/sys-admin-1.4.0-x86-mswin32-60.gem +0 -0
- data/sys-admin-1.4.3.gem +0 -0
- data/sys-admin.gemspec~ +0 -39
    
        data/CHANGES
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            == 1.4.4 - 19-Nov-2008
         | 
| 2 | 
            +
            * Added the User#uid method for MS Windows (which is just the user's relative
         | 
| 3 | 
            +
              identifier).
         | 
| 4 | 
            +
            * Now requires test-unit 2.x.
         | 
| 5 | 
            +
            * Some updates to the test suite to take advantage of test-unit 2.x features.
         | 
| 6 | 
            +
            * Some minor gemspec tweaks.
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            == 1.4.3 - 2-Mar-2008
         | 
| 2 9 | 
             
            * The block form of Admin.users now properly ensures that endpwent() is
         | 
| 3 10 | 
             
              called. Likewise, the block form of Admin.groups now properly ensures
         | 
    
        data/doc/sys-admin-unix.txt
    CHANGED
    
    | @@ -148,13 +148,13 @@ User#uid | |
| 148 148 | 
             
               Ruby's
         | 
| 149 149 |  | 
| 150 150 | 
             
            == Copyright
         | 
| 151 | 
            -
               Copyright 2002- | 
| 151 | 
            +
               Copyright 2002-2008, Daniel J. Berger
         | 
| 152 152 |  | 
| 153 153 | 
             
               All Rights Reserved. This module is free software. It may be used,
         | 
| 154 154 | 
             
               redistributed and/or modified under the same terms as Ruby itself.
         | 
| 155 155 |  | 
| 156 156 | 
             
            == Warranty
         | 
| 157 | 
            -
               This  | 
| 157 | 
            +
               This library is provided "as is" and without any express or
         | 
| 158 158 | 
             
               implied warranties, including, without limitation, the implied
         | 
| 159 159 | 
             
               warranties of merchantability and fitness for a particular purpose.
         | 
| 160 160 |  | 
    
        data/doc/sys-admin-windows.txt
    CHANGED
    
    | @@ -23,7 +23,7 @@ get information about users and groups. | |
| 23 23 | 
             
            = Constants
         | 
| 24 24 | 
             
            == Sys::Admin
         | 
| 25 25 | 
             
            VERSION
         | 
| 26 | 
            -
               The version of this  | 
| 26 | 
            +
               The version of this library, returned as a String.
         | 
| 27 27 |  | 
| 28 28 | 
             
            == Sys::Admin::User
         | 
| 29 29 | 
             
            TEMP_DUPLICATE
         | 
| @@ -314,13 +314,13 @@ User#status | |
| 314 314 | 
             
               Ruby's
         | 
| 315 315 |  | 
| 316 316 | 
             
            == Copyright
         | 
| 317 | 
            -
               Copyright 2002- | 
| 317 | 
            +
               Copyright 2002-2008, Daniel J. Berger
         | 
| 318 318 |  | 
| 319 319 | 
             
               All Rights Reserved. This module is free software. It may be used,
         | 
| 320 320 | 
             
               redistributed and/or modified under the same terms as Ruby itself.
         | 
| 321 321 |  | 
| 322 322 | 
             
            == Warranty
         | 
| 323 | 
            -
               This  | 
| 323 | 
            +
               This library is provided "as is" and without any express or
         | 
| 324 324 | 
             
               implied warranties, including, without limitation, the implied
         | 
| 325 325 | 
             
               warranties of merchantability and fitness for a particular purpose.
         | 
| 326 326 |  | 
    
        data/lib/sys/admin.rb
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 | 
            -
            require  | 
| 2 | 
            -
            require  | 
| 3 | 
            -
            require  | 
| 1 | 
            +
            require 'win32ole'
         | 
| 2 | 
            +
            require 'Win32API'
         | 
| 3 | 
            +
            require 'socket'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Sys
         | 
| 6 6 | 
             
               class Group
         | 
| @@ -142,6 +142,9 @@ module Sys | |
| 142 142 | 
             
                  # Current status for the user, such as "ok", "error", etc.
         | 
| 143 143 | 
             
                  attr_accessor :status
         | 
| 144 144 |  | 
| 145 | 
            +
                  # The user's id (RID).
         | 
| 146 | 
            +
                  attr_accessor :uid
         | 
| 147 | 
            +
             | 
| 145 148 | 
             
                  # Used to set whether or not the account is disabled.
         | 
| 146 149 | 
             
                  attr_writer :disabled
         | 
| 147 150 |  | 
| @@ -279,14 +282,13 @@ module Sys | |
| 279 282 | 
             
               end
         | 
| 280 283 |  | 
| 281 284 | 
             
               class Admin
         | 
| 282 | 
            -
                  VERSION = '1.4. | 
| 285 | 
            +
                  VERSION = '1.4.4'
         | 
| 283 286 |  | 
| 284 287 | 
             
                  # This is the error raised in the majority of cases if anything goes wrong
         | 
| 285 288 | 
             
                  # with any of the Sys::Admin methods.
         | 
| 286 289 | 
             
                  #  
         | 
| 287 290 | 
             
                  class Error < StandardError; end
         | 
| 288 | 
            -
             | 
| 289 | 
            -
                  
         | 
| 291 | 
            +
             | 
| 290 292 | 
             
                  SidTypeUser           = 1
         | 
| 291 293 | 
             
                  SidTypeGroup          = 2
         | 
| 292 294 | 
             
                  SidTypeDomain         = 3
         | 
| @@ -296,10 +298,14 @@ module Sys | |
| 296 298 | 
             
                  SidTypeInvalid        = 7
         | 
| 297 299 | 
             
                  SidTypeUnknown        = 8
         | 
| 298 300 | 
             
                  SidTypeComputer       = 9
         | 
| 301 | 
            +
             | 
| 302 | 
            +
                  private
         | 
| 299 303 |  | 
| 300 304 | 
             
                  # Used by the get_login method
         | 
| 301 305 | 
             
                  GetUserName = Win32API.new('advapi32', 'GetUserName', 'PP', 'L') # :nodoc:
         | 
| 302 | 
            -
             | 
| 306 | 
            +
             | 
| 307 | 
            +
                  public
         | 
| 308 | 
            +
             | 
| 303 309 | 
             
                  # Configures the global +user+ on +domain+ using options.
         | 
| 304 310 | 
             
                  #
         | 
| 305 311 | 
             
                  # See http://tinyurl.com/3hjv9 for a list of valid options.
         | 
| @@ -468,7 +474,7 @@ module Sys | |
| 468 474 | 
             
                        raise Error, 'GetUserName() call failed in get_login'
         | 
| 469 475 | 
             
                     end
         | 
| 470 476 |  | 
| 471 | 
            -
                     length | 
| 477 | 
            +
                     length = nsize.unpack('L')[0]
         | 
| 472 478 | 
             
                     username = buffer[0 ... length].chop
         | 
| 473 479 | 
             
                     username
         | 
| 474 480 | 
             
                  end
         | 
| @@ -483,7 +489,7 @@ module Sys | |
| 483 489 | 
             
                  # default is the local machine.  You may also specify whether to
         | 
| 484 490 | 
             
                  # retrieve a local or global account.  The default is local.
         | 
| 485 491 | 
             
                  #
         | 
| 486 | 
            -
                  def self.get_user( | 
| 492 | 
            +
                  def self.get_user(usr, host=Socket.gethostname, local=true)
         | 
| 487 493 | 
             
                     host = Socket.gethostname if host.nil?
         | 
| 488 494 | 
             
                     cs = "winmgmts:{impersonationLevel=impersonate}!"
         | 
| 489 495 | 
             
                     cs << "//#{host}/root/cimv2"
         | 
| @@ -497,29 +503,30 @@ module Sys | |
| 497 503 | 
             
                     query = "select * from win32_useraccount"
         | 
| 498 504 | 
             
                     query << " where localaccount = true" if local
         | 
| 499 505 |  | 
| 500 | 
            -
                     if  | 
| 506 | 
            +
                     if usr.kind_of?(Fixnum)
         | 
| 501 507 | 
             
                        if local
         | 
| 502 | 
            -
                           query << " and sid like '%-#{ | 
| 508 | 
            +
                           query << " and sid like '%-#{usr}'"
         | 
| 503 509 | 
             
                        else
         | 
| 504 | 
            -
                           query << " where sid like '%-#{ | 
| 510 | 
            +
                           query << " where sid like '%-#{usr}'"
         | 
| 505 511 | 
             
                        end
         | 
| 506 512 | 
             
                     else
         | 
| 507 513 | 
             
                        if local
         | 
| 508 | 
            -
                           query << " and name = '#{ | 
| 514 | 
            +
                           query << " and name = '#{usr}'"
         | 
| 509 515 | 
             
                        else
         | 
| 510 | 
            -
                           query << " where name = '#{ | 
| 516 | 
            +
                           query << " where name = '#{usr}'"
         | 
| 511 517 | 
             
                        end
         | 
| 512 518 | 
             
                     end
         | 
| 513 519 |  | 
| 514 520 | 
             
                     wmi.execquery(query).each{ |user|
         | 
| 521 | 
            +
                        uid = user.sid.split('-').last.to_i
         | 
| 522 | 
            +
             | 
| 515 523 | 
             
                        # Because our 'like' query isn't fulproof, let's parse
         | 
| 516 524 | 
             
                        # the SID again to make sure
         | 
| 517 | 
            -
                        if  | 
| 518 | 
            -
                           if  | 
| 519 | 
            -
                              next
         | 
| 520 | 
            -
                           end
         | 
| 525 | 
            +
                        if usr.kind_of?(Fixnum)
         | 
| 526 | 
            +
                           next if usr != uid
         | 
| 521 527 | 
             
                        end
         | 
| 522 | 
            -
             | 
| 528 | 
            +
             | 
| 529 | 
            +
                        user_object = User.new do |u|
         | 
| 523 530 | 
             
                           u.account_type = user.accounttype
         | 
| 524 531 | 
             
                           u.caption      = user.caption
         | 
| 525 532 | 
             
                           u.description  = user.description
         | 
| @@ -536,9 +543,14 @@ module Sys | |
| 536 543 | 
             
                           u.sid      = user.sid
         | 
| 537 544 | 
             
                           u.sid_type = user.sidtype
         | 
| 538 545 | 
             
                           u.status   = user.status
         | 
| 546 | 
            +
                           u.uid      = uid
         | 
| 539 547 | 
             
                        end
         | 
| 540 | 
            -
             | 
| 548 | 
            +
             | 
| 549 | 
            +
                        return user_object
         | 
| 541 550 | 
             
                     }
         | 
| 551 | 
            +
             | 
| 552 | 
            +
                     # If we're here, it means it wasn't found.
         | 
| 553 | 
            +
                     raise Error, "no user found for '#{usr}'"
         | 
| 542 554 | 
             
                  end
         | 
| 543 555 |  | 
| 544 556 | 
             
                  # In block form, yields a User object for each user on the system.  In
         | 
| @@ -644,7 +656,7 @@ module Sys | |
| 644 656 | 
             
                           next if grp != gid
         | 
| 645 657 | 
             
                        end
         | 
| 646 658 |  | 
| 647 | 
            -
                         | 
| 659 | 
            +
                        group_object = Group.new do |g|
         | 
| 648 660 | 
             
                           g.caption      = group.caption
         | 
| 649 661 | 
             
                           g.description  = group.description              
         | 
| 650 662 | 
             
                           g.domain       = group.domain
         | 
| @@ -656,8 +668,10 @@ module Sys | |
| 656 668 | 
             
                           g.sid_type     = group.sidtype
         | 
| 657 669 | 
             
                           g.status       = group.status
         | 
| 658 670 | 
             
                        end
         | 
| 659 | 
            -
             | 
| 671 | 
            +
             | 
| 672 | 
            +
                        return group_object
         | 
| 660 673 | 
             
                     }
         | 
| 674 | 
            +
             | 
| 661 675 | 
             
                     # If we're here, it means it wasn't found.
         | 
| 662 676 | 
             
                     raise Error, "no group found for '#{grp}'"
         | 
| 663 677 | 
             
                  end
         | 
    
        data/sys-admin.gemspec
    CHANGED
    
    | @@ -2,27 +2,27 @@ require 'rubygems' | |
| 2 2 |  | 
| 3 3 | 
             
            spec = Gem::Specification.new do |gem|
         | 
| 4 4 | 
             
               gem.name         = 'sys-admin'
         | 
| 5 | 
            -
               gem.version      = '1.4. | 
| 5 | 
            +
               gem.version      = '1.4.4'
         | 
| 6 6 | 
             
               gem.author       = 'Daniel J. Berger'
         | 
| 7 7 | 
             
               gem.email        = 'djberg96@gmail.com'
         | 
| 8 8 | 
             
               gem.homepage     = 'http://www.rubyforge.org/projects/sysutils'
         | 
| 9 | 
            -
               gem.platform     = Gem::Platform:: | 
| 9 | 
            +
               gem.platform     = Gem::Platform::RUBY
         | 
| 10 10 | 
             
               gem.summary      = 'A unified, cross platform replacement for the "etc" package.'
         | 
| 11 11 | 
             
               gem.description  = 'A unified, cross platform replacement for the "etc" package.'
         | 
| 12 12 | 
             
               gem.test_file    = 'test/tc_admin.rb'
         | 
| 13 13 | 
             
               gem.has_rdoc     = true
         | 
| 14 14 | 
             
               gem.extra_rdoc_files  = ['CHANGES', 'README', 'MANIFEST']
         | 
| 15 15 | 
             
               gem.rubyforge_project = 'sysutils'
         | 
| 16 | 
            +
               gem.required_ruby_version = '>= 1.8.2'
         | 
| 16 17 |  | 
| 17 18 | 
             
               files = Dir["doc/*"] + Dir["examples/*"]
         | 
| 18 19 | 
             
               files += Dir["test/*"] + Dir["[A-Z]*"]
         | 
| 19 20 |  | 
| 20 | 
            -
               if  | 
| 21 | 
            +
               if Config::CONFIG['host_os'].match('mswin')
         | 
| 21 22 | 
             
                  files += Dir["lib/sys/admin.rb"]
         | 
| 22 | 
            -
                  gem. | 
| 23 | 
            +
                  gem.platform = Gem::Platform::CURRENT
         | 
| 23 24 | 
             
               else
         | 
| 24 | 
            -
                  files += Dir["ext | 
| 25 | 
            -
                  gem.required_ruby_version = '>= 1.8.0'
         | 
| 25 | 
            +
                  files += Dir["ext/**/*.{c,h}"]
         | 
| 26 26 | 
             
                  gem.extensions = ['ext/extconf.rb']
         | 
| 27 27 | 
             
                  gem.extra_rdoc_files << 'ext/sys/admin.c'
         | 
| 28 28 | 
             
                  gem.require_path = 'lib'
         | 
| @@ -34,6 +34,5 @@ spec = Gem::Specification.new do |gem| | |
| 34 34 | 
             
            end
         | 
| 35 35 |  | 
| 36 36 | 
             
            if $PROGRAM_NAME == __FILE__
         | 
| 37 | 
            -
               Gem.manage_gems
         | 
| 38 37 | 
             
               Gem::Builder.new(spec).build
         | 
| 39 38 | 
             
            end
         | 
    
        data/test/tc_admin.rb
    CHANGED
    
    | @@ -5,10 +5,10 @@ | |
| 5 5 | 
             
            # test suite based on the platform.
         | 
| 6 6 | 
             
            ###############################################################################
         | 
| 7 7 | 
             
            $LOAD_PATH.unshift Dir.pwd
         | 
| 8 | 
            -
            $LOAD_PATH.unshift Dir.pwd  | 
| 8 | 
            +
            $LOAD_PATH.unshift File.join(Dir.pwd, 'test')
         | 
| 9 9 |  | 
| 10 10 | 
             
            if File::ALT_SEPARATOR
         | 
| 11 | 
            -
               require  | 
| 11 | 
            +
               require 'tc_windows'
         | 
| 12 12 | 
             
            else
         | 
| 13 | 
            -
               require  | 
| 13 | 
            +
               require 'tc_unix'
         | 
| 14 14 | 
             
            end
         | 
    
        data/test/tc_unix.rb
    CHANGED
    
    
    
        data/test/tc_windows.rb
    CHANGED
    
    | @@ -7,29 +7,35 @@ | |
| 7 7 | 
             
            # 
         | 
| 8 8 | 
             
            # It is assumed that this test will be run via the 'rake test' task.
         | 
| 9 9 | 
             
            ###############################################################################
         | 
| 10 | 
            -
            require  | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 10 | 
            +
            require 'rubygems'
         | 
| 11 | 
            +
            gem 'test-unit'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            require 'test/unit'
         | 
| 14 | 
            +
            require 'sys/admin'
         | 
| 15 | 
            +
            require 'socket'
         | 
| 13 16 | 
             
            include Sys
         | 
| 14 17 |  | 
| 15 18 | 
             
            class TC_Sys_Admin_Win32 < Test::Unit::TestCase
         | 
| 19 | 
            +
               def self.startup
         | 
| 20 | 
            +
                  @@host = Socket.gethostname
         | 
| 21 | 
            +
               end
         | 
| 22 | 
            +
             | 
| 16 23 | 
             
               def setup
         | 
| 17 | 
            -
                  @ | 
| 18 | 
            -
                  @ | 
| 19 | 
            -
                  @ | 
| 20 | 
            -
                  @ | 
| 21 | 
            -
                  @ | 
| 22 | 
            -
                  @ | 
| 23 | 
            -
                  @group_id    = 546          # best guess, may fail
         | 
| 24 | 
            +
                  @user       = User.new
         | 
| 25 | 
            +
                  @user_name  = 'guest'
         | 
| 26 | 
            +
                  @user_id    = 501        # best guess, may fail
         | 
| 27 | 
            +
                  @group      = Group.new
         | 
| 28 | 
            +
                  @group_name = 'guests'
         | 
| 29 | 
            +
                  @group_id   = 546        # best guess, may fail
         | 
| 24 30 | 
             
               end
         | 
| 25 31 |  | 
| 26 32 | 
             
               def test_version
         | 
| 27 | 
            -
                  assert_equal('1.4. | 
| 33 | 
            +
                  assert_equal('1.4.4', Admin::VERSION)
         | 
| 28 34 | 
             
               end
         | 
| 29 35 |  | 
| 30 36 | 
             
               def test_01_add_local_user
         | 
| 31 37 | 
             
                  assert_respond_to(Admin, :add_local_user)
         | 
| 32 | 
            -
                  assert_nothing_raised{ Admin.add_local_user( | 
| 38 | 
            +
                  assert_nothing_raised{ Admin.add_local_user('foo') }
         | 
| 33 39 | 
             
               end
         | 
| 34 40 |  | 
| 35 41 | 
             
               def test_add_global_user
         | 
| @@ -39,7 +45,7 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 39 45 | 
             
               def test_02_config_local_user
         | 
| 40 46 | 
             
                  assert_respond_to(Admin, :config_local_user)
         | 
| 41 47 | 
             
                  assert_nothing_raised{
         | 
| 42 | 
            -
                     Admin.config_local_user("foo",{
         | 
| 48 | 
            +
                     Admin.config_local_user("foo", {
         | 
| 43 49 | 
             
                        :description => "delete me",
         | 
| 44 50 | 
             
                        :fullname    => "fubar"
         | 
| 45 51 | 
             
                     })
         | 
| @@ -71,7 +77,7 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 71 77 | 
             
               def test_02_config_local_group
         | 
| 72 78 | 
             
                  assert_respond_to(Admin, :config_local_group)
         | 
| 73 79 | 
             
                  assert_nothing_raised{
         | 
| 74 | 
            -
                     Admin.config_local_group( | 
| 80 | 
            +
                     Admin.config_local_group('bar', {:description => 'delete me'})
         | 
| 75 81 | 
             
                  }
         | 
| 76 82 | 
             
               end
         | 
| 77 83 |  | 
| @@ -107,10 +113,10 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 107 113 | 
             
               end
         | 
| 108 114 |  | 
| 109 115 | 
             
               def test_get_user_remote
         | 
| 110 | 
            -
                  assert_nothing_raised{ Admin.get_user(@user_name,  | 
| 111 | 
            -
                  assert_nothing_raised{ Admin.get_user(@user_id,  | 
| 112 | 
            -
                  assert_kind_of(User, Admin.get_user(@user_name,  | 
| 113 | 
            -
                  assert_kind_of(User, Admin.get_user(@user_id,  | 
| 116 | 
            +
                  assert_nothing_raised{ Admin.get_user(@user_name, @@host) }
         | 
| 117 | 
            +
                  assert_nothing_raised{ Admin.get_user(@user_id, @@host) }
         | 
| 118 | 
            +
                  assert_kind_of(User, Admin.get_user(@user_name, @@host))
         | 
| 119 | 
            +
                  assert_kind_of(User, Admin.get_user(@user_id, @@host))
         | 
| 114 120 | 
             
               end
         | 
| 115 121 |  | 
| 116 122 | 
             
               def test_users
         | 
| @@ -127,8 +133,8 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 127 133 | 
             
               end
         | 
| 128 134 |  | 
| 129 135 | 
             
               def test_users_remote
         | 
| 130 | 
            -
                  assert_nothing_raised{ Admin.users( | 
| 131 | 
            -
                  assert_nothing_raised{ Admin.users( | 
| 136 | 
            +
                  assert_nothing_raised{ Admin.users(@@host) }
         | 
| 137 | 
            +
                  assert_nothing_raised{ Admin.users(@@host){ |u| } }
         | 
| 132 138 | 
             
               end
         | 
| 133 139 |  | 
| 134 140 | 
             
               def test_user_instance_caption
         | 
| @@ -205,6 +211,11 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 205 211 | 
             
                  assert_respond_to(@user, :account_type)
         | 
| 206 212 | 
             
                  assert_respond_to(@user, :account_type=)
         | 
| 207 213 | 
             
               end
         | 
| 214 | 
            +
             | 
| 215 | 
            +
               def test_user_instance_uid
         | 
| 216 | 
            +
                  assert_respond_to(@user, :uid)
         | 
| 217 | 
            +
                  assert_respond_to(@user, :uid=)
         | 
| 218 | 
            +
               end
         | 
| 208 219 |  | 
| 209 220 | 
             
               def test_get_group
         | 
| 210 221 | 
             
                  assert_respond_to(Admin, :get_group)
         | 
| @@ -219,8 +230,8 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 219 230 | 
             
               end
         | 
| 220 231 |  | 
| 221 232 | 
             
               def test_get_group_remote
         | 
| 222 | 
            -
                  assert_nothing_raised{ Admin.get_group(@group_name,  | 
| 223 | 
            -
                  assert_kind_of(Group, Admin.get_group(@group_name,  | 
| 233 | 
            +
                  assert_nothing_raised{ Admin.get_group(@group_name, @@host) }
         | 
| 234 | 
            +
                  assert_kind_of(Group, Admin.get_group(@group_name, @@host))
         | 
| 224 235 | 
             
               end
         | 
| 225 236 |  | 
| 226 237 | 
             
               def test_groups
         | 
| @@ -235,10 +246,10 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 235 246 | 
             
               end
         | 
| 236 247 |  | 
| 237 248 | 
             
               def test_groups_remote
         | 
| 238 | 
            -
                  assert_nothing_raised{ Admin.groups( | 
| 239 | 
            -
                  assert_nothing_raised{ Admin.groups( | 
| 240 | 
            -
                  assert_kind_of(Array, Admin.groups( | 
| 241 | 
            -
                  assert_kind_of(Group, Admin.groups( | 
| 249 | 
            +
                  assert_nothing_raised{ Admin.groups(@@host) }
         | 
| 250 | 
            +
                  assert_nothing_raised{ Admin.groups(@@host){ |g| } }
         | 
| 251 | 
            +
                  assert_kind_of(Array, Admin.groups(@@host))
         | 
| 252 | 
            +
                  assert_kind_of(Group, Admin.groups(@@host).first)
         | 
| 242 253 | 
             
               end
         | 
| 243 254 |  | 
| 244 255 | 
             
               def test_group_instance_caption
         | 
| @@ -292,7 +303,6 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 292 303 | 
             
               end
         | 
| 293 304 |  | 
| 294 305 | 
             
               def teardown
         | 
| 295 | 
            -
                  @host       = nil
         | 
| 296 306 | 
             
                  @user       = nil
         | 
| 297 307 | 
             
                  @user_name  = nil
         | 
| 298 308 | 
             
                  @user_id    = nil
         | 
| @@ -300,4 +310,8 @@ class TC_Sys_Admin_Win32 < Test::Unit::TestCase | |
| 300 310 | 
             
                  @group_name = nil
         | 
| 301 311 | 
             
                  @group_id   = nil
         | 
| 302 312 | 
             
               end
         | 
| 313 | 
            +
             | 
| 314 | 
            +
               def self.shutdown
         | 
| 315 | 
            +
                  @@host = nil
         | 
| 316 | 
            +
               end
         | 
| 303 317 | 
             
            end
         | 
    
        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.4. | 
| 4 | 
            +
              version: 1.4.4
         | 
| 5 5 | 
             
            platform: x86-mswin32-60
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Daniel J. Berger
         | 
| @@ -9,7 +9,7 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date: 2008- | 
| 12 | 
            +
            date: 2008-11-19 00:00:00 -07:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: []
         | 
| 15 15 |  | 
| @@ -39,10 +39,7 @@ files: | |
| 39 39 | 
             
            - MANIFEST
         | 
| 40 40 | 
             
            - Rakefile
         | 
| 41 41 | 
             
            - README
         | 
| 42 | 
            -
            - sys-admin-1.4.0-x86-mswin32-60.gem
         | 
| 43 | 
            -
            - sys-admin-1.4.3.gem
         | 
| 44 42 | 
             
            - sys-admin.gemspec
         | 
| 45 | 
            -
            - sys-admin.gemspec~
         | 
| 46 43 | 
             
            - test
         | 
| 47 44 | 
             
            - lib/sys/admin.rb
         | 
| 48 45 | 
             
            has_rdoc: true
         | 
| @@ -67,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 67 64 | 
             
            requirements: []
         | 
| 68 65 |  | 
| 69 66 | 
             
            rubyforge_project: sysutils
         | 
| 70 | 
            -
            rubygems_version: 1. | 
| 67 | 
            +
            rubygems_version: 1.3.1
         | 
| 71 68 | 
             
            signing_key: 
         | 
| 72 69 | 
             
            specification_version: 2
         | 
| 73 70 | 
             
            summary: A unified, cross platform replacement for the "etc" package.
         | 
| Binary file | 
    
        data/sys-admin-1.4.3.gem
    DELETED
    
    | Binary file | 
    
        data/sys-admin.gemspec~
    DELETED
    
    | @@ -1,39 +0,0 @@ | |
| 1 | 
            -
            require 'rubygems'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            spec = Gem::Specification.new do |gem|
         | 
| 4 | 
            -
               gem.name         = 'sys-admin'
         | 
| 5 | 
            -
               gem.version      = '1.4.3'
         | 
| 6 | 
            -
               gem.author       = 'Daniel J. Berger'
         | 
| 7 | 
            -
               gem.email        = 'djberg96@gmail.com'
         | 
| 8 | 
            -
               gem.homepage     = 'http://www.rubyforge.org/projects/sysutils'
         | 
| 9 | 
            -
               gem.platform     = Gem::Platform::RUBY
         | 
| 10 | 
            -
               gem.summary      = 'A unified, cross platform replacement for the "etc" package.'
         | 
| 11 | 
            -
               gem.description  = 'A unified, cross platform replacement for the "etc" package.'
         | 
| 12 | 
            -
               gem.test_file    = 'test/tc_admin.rb'
         | 
| 13 | 
            -
               gem.has_rdoc     = true
         | 
| 14 | 
            -
               gem.extra_rdoc_files  = ['CHANGES', 'README', 'MANIFEST']
         | 
| 15 | 
            -
               gem.rubyforge_project = 'sysutils'
         | 
| 16 | 
            -
            	
         | 
| 17 | 
            -
               files = Dir["doc/*"] + Dir["examples/*"]
         | 
| 18 | 
            -
               files += Dir["test/*"] + Dir["[A-Z]*"]
         | 
| 19 | 
            -
             | 
| 20 | 
            -
               if RUBY_PLATFORM.match('mswin')
         | 
| 21 | 
            -
                  files += Dir["lib/sys/admin.rb"]
         | 
| 22 | 
            -
                  gem.required_ruby_version = '>= 1.8.2'
         | 
| 23 | 
            -
               else
         | 
| 24 | 
            -
                  files += Dir["ext/**/*"]
         | 
| 25 | 
            -
                  gem.required_ruby_version = '>= 1.8.0'
         | 
| 26 | 
            -
                  gem.extensions = ['ext/extconf.rb']
         | 
| 27 | 
            -
                  gem.extra_rdoc_files << 'ext/sys/admin.c'
         | 
| 28 | 
            -
                  gem.require_path = 'lib'
         | 
| 29 | 
            -
               end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
               files.delete_if{ |item| item.include?('CVS') }
         | 
| 32 | 
            -
             | 
| 33 | 
            -
               gem.files = files
         | 
| 34 | 
            -
            end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            if $PROGRAM_NAME == __FILE__
         | 
| 37 | 
            -
               Gem.manage_gems
         | 
| 38 | 
            -
               Gem::Builder.new(spec).build
         | 
| 39 | 
            -
            end
         |