etc 1.4.3 → 1.4.5
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.
- checksums.yaml +4 -4
- data/ChangeLog +4 -140
- data/LICENSE.txt +3 -3
- data/ext/etc/constdefs.h +187 -0
- data/ext/etc/etc.c +96 -46
- data/ext/etc/mkconstants.rb +22 -10
- data/test/etc/test_etc.rb +4 -0
- metadata +6 -24
- data/logs/ChangeLog-1.0.0 +0 -65
- data/logs/ChangeLog-1.0.1 +0 -71
- data/logs/ChangeLog-1.1.0 +0 -143
- data/logs/ChangeLog-1.2.0 +0 -124
- data/logs/ChangeLog-1.3.0 +0 -83
- data/logs/ChangeLog-1.3.1 +0 -145
- data/logs/ChangeLog-1.4.0 +0 -73
- data/logs/ChangeLog-1.4.1 +0 -97
- data/logs/ChangeLog-1.4.2 +0 -22
    
        data/ext/etc/etc.c
    CHANGED
    
    | @@ -56,7 +56,9 @@ static VALUE sGroup; | |
| 56 56 | 
             
            #endif
         | 
| 57 57 | 
             
            RUBY_EXTERN char *getlogin(void);
         | 
| 58 58 |  | 
| 59 | 
            -
            #define RUBY_ETC_VERSION "1.4. | 
| 59 | 
            +
            #define RUBY_ETC_VERSION "1.4.5"
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            #define SYMBOL_LIT(str) ID2SYM(rb_intern_const(str ""))
         | 
| 60 62 |  | 
| 61 63 | 
             
            #ifdef HAVE_RB_DEPRECATE_CONSTANT
         | 
| 62 64 | 
             
            void rb_deprecate_constant(VALUE mod, const char *name);
         | 
| @@ -203,7 +205,7 @@ setup_passwd(struct passwd *pwd) | |
| 203 205 | 
             
            #endif
         | 
| 204 206 |  | 
| 205 207 | 
             
            /* call-seq:
         | 
| 206 | 
            -
             *	getpwuid(uid)	->  Passwd
         | 
| 208 | 
            +
             *	getpwuid(uid)	->  Etc::Passwd
         | 
| 207 209 | 
             
             *
         | 
| 208 210 | 
             
             * Returns the <tt>/etc/passwd</tt> information for the user with the given
         | 
| 209 211 | 
             
             * integer +uid+.
         | 
| @@ -215,7 +217,7 @@ setup_passwd(struct passwd *pwd) | |
| 215 217 | 
             
             *
         | 
| 216 218 | 
             
             * See the unix manpage for <code>getpwuid(3)</code> for more detail.
         | 
| 217 219 | 
             
             *
         | 
| 218 | 
            -
             *  | 
| 220 | 
            +
             * *Example:*
         | 
| 219 221 | 
             
             *
         | 
| 220 222 | 
             
             *	Etc.getpwuid(0)
         | 
| 221 223 | 
             
             *	#=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
         | 
| @@ -243,7 +245,7 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj) | |
| 243 245 | 
             
            }
         | 
| 244 246 |  | 
| 245 247 | 
             
            /* call-seq:
         | 
| 246 | 
            -
             *	getpwnam(name)	->  Passwd
         | 
| 248 | 
            +
             *	getpwnam(name)	->  Etc::Passwd
         | 
| 247 249 | 
             
             *
         | 
| 248 250 | 
             
             * Returns the <tt>/etc/passwd</tt> information for the user with specified
         | 
| 249 251 | 
             
             * login +name+.
         | 
| @@ -252,7 +254,7 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj) | |
| 252 254 | 
             
             *
         | 
| 253 255 | 
             
             * See the unix manpage for <code>getpwnam(3)</code> for more detail.
         | 
| 254 256 | 
             
             *
         | 
| 255 | 
            -
             *  | 
| 257 | 
            +
             * *Example:*
         | 
| 256 258 | 
             
             *
         | 
| 257 259 | 
             
             *	Etc.getpwnam('root')
         | 
| 258 260 | 
             
             *	#=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
         | 
| @@ -307,8 +309,8 @@ each_passwd(void) | |
| 307 309 | 
             
            #endif
         | 
| 308 310 |  | 
| 309 311 | 
             
            /* call-seq:
         | 
| 310 | 
            -
             *	 | 
| 311 | 
            -
             *	 | 
| 312 | 
            +
             *	passwd { |struct| block }
         | 
| 313 | 
            +
             *	passwd				->  Etc::Passwd
         | 
| 312 314 | 
             
             *
         | 
| 313 315 | 
             
             * Provides a convenient Ruby iterator which executes a block for each entry
         | 
| 314 316 | 
             
             * in the <tt>/etc/passwd</tt> file.
         | 
| @@ -317,7 +319,7 @@ each_passwd(void) | |
| 317 319 | 
             
             *
         | 
| 318 320 | 
             
             * See ::getpwent above for details.
         | 
| 319 321 | 
             
             *
         | 
| 320 | 
            -
             * Example | 
| 322 | 
            +
             * *Example:*
         | 
| 321 323 | 
             
             *
         | 
| 322 324 | 
             
             *     require 'etc'
         | 
| 323 325 | 
             
             *
         | 
| @@ -343,7 +345,7 @@ etc_passwd(VALUE obj) | |
| 343 345 | 
             
            }
         | 
| 344 346 |  | 
| 345 347 | 
             
            /* call-seq:
         | 
| 346 | 
            -
             *	Etc::Passwd.each { |struct| block }	->  Passwd
         | 
| 348 | 
            +
             *	Etc::Passwd.each { |struct| block }	->  Etc::Passwd
         | 
| 347 349 | 
             
             *	Etc::Passwd.each			->  Enumerator
         | 
| 348 350 | 
             
             *
         | 
| 349 351 | 
             
             * Iterates for each entry in the <tt>/etc/passwd</tt> file if a block is
         | 
| @@ -355,7 +357,7 @@ etc_passwd(VALUE obj) | |
| 355 357 | 
             
             *
         | 
| 356 358 | 
             
             * See Etc.getpwent above for details.
         | 
| 357 359 | 
             
             *
         | 
| 358 | 
            -
             * Example | 
| 360 | 
            +
             * *Example:*
         | 
| 359 361 | 
             
             *
         | 
| 360 362 | 
             
             *     require 'etc'
         | 
| 361 363 | 
             
             *
         | 
| @@ -377,7 +379,10 @@ etc_each_passwd(VALUE obj) | |
| 377 379 | 
             
                return obj;
         | 
| 378 380 | 
             
            }
         | 
| 379 381 |  | 
| 380 | 
            -
            /*  | 
| 382 | 
            +
            /* call-seq:
         | 
| 383 | 
            +
             *	setpwent
         | 
| 384 | 
            +
             *
         | 
| 385 | 
            +
             * Resets the process of reading the <tt>/etc/passwd</tt> file, so that the
         | 
| 381 386 | 
             
             * next call to ::getpwent will return the first entry again.
         | 
| 382 387 | 
             
             */
         | 
| 383 388 | 
             
            static VALUE
         | 
| @@ -389,7 +394,10 @@ etc_setpwent(VALUE obj) | |
| 389 394 | 
             
                return Qnil;
         | 
| 390 395 | 
             
            }
         | 
| 391 396 |  | 
| 392 | 
            -
            /*  | 
| 397 | 
            +
            /* call-seq:
         | 
| 398 | 
            +
             *	endpwent
         | 
| 399 | 
            +
             *
         | 
| 400 | 
            +
             * Ends the process of scanning through the <tt>/etc/passwd</tt> file begun
         | 
| 393 401 | 
             
             * with ::getpwent, and closes the file.
         | 
| 394 402 | 
             
             */
         | 
| 395 403 | 
             
            static VALUE
         | 
| @@ -401,7 +409,10 @@ etc_endpwent(VALUE obj) | |
| 401 409 | 
             
                return Qnil;
         | 
| 402 410 | 
             
            }
         | 
| 403 411 |  | 
| 404 | 
            -
            /*  | 
| 412 | 
            +
            /* call-seq:
         | 
| 413 | 
            +
             *	getpwent	->  Etc::Passwd
         | 
| 414 | 
            +
             *
         | 
| 415 | 
            +
             * Returns an entry from the <tt>/etc/passwd</tt> file.
         | 
| 405 416 | 
             
             *
         | 
| 406 417 | 
             
             * The first time it is called it opens the file and returns the first entry;
         | 
| 407 418 | 
             
             * each successive call returns the next entry, or +nil+ if the end of the file
         | 
| @@ -449,7 +460,7 @@ setup_group(struct group *grp) | |
| 449 460 | 
             
            #endif
         | 
| 450 461 |  | 
| 451 462 | 
             
            /* call-seq:
         | 
| 452 | 
            -
             *	getgrgid(group_id)  ->	Group
         | 
| 463 | 
            +
             *	getgrgid(group_id)  ->	Etc::Group
         | 
| 453 464 | 
             
             *
         | 
| 454 465 | 
             
             * Returns information about the group with specified integer +group_id+,
         | 
| 455 466 | 
             
             * as found in <tt>/etc/group</tt>.
         | 
| @@ -458,7 +469,7 @@ setup_group(struct group *grp) | |
| 458 469 | 
             
             *
         | 
| 459 470 | 
             
             * See the unix manpage for <code>getgrgid(3)</code> for more detail.
         | 
| 460 471 | 
             
             *
         | 
| 461 | 
            -
             *  | 
| 472 | 
            +
             * *Example:*
         | 
| 462 473 | 
             
             *
         | 
| 463 474 | 
             
             *	Etc.getgrgid(100)
         | 
| 464 475 | 
             
             *	#=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
         | 
| @@ -487,7 +498,7 @@ etc_getgrgid(int argc, VALUE *argv, VALUE obj) | |
| 487 498 | 
             
            }
         | 
| 488 499 |  | 
| 489 500 | 
             
            /* call-seq:
         | 
| 490 | 
            -
             *	getgrnam(name)	->  Group
         | 
| 501 | 
            +
             *	getgrnam(name)	->  Etc::Group
         | 
| 491 502 | 
             
             *
         | 
| 492 503 | 
             
             * Returns information about the group with specified +name+, as found in
         | 
| 493 504 | 
             
             * <tt>/etc/group</tt>.
         | 
| @@ -496,7 +507,7 @@ etc_getgrgid(int argc, VALUE *argv, VALUE obj) | |
| 496 507 | 
             
             *
         | 
| 497 508 | 
             
             * See the unix manpage for <code>getgrnam(3)</code> for more detail.
         | 
| 498 509 | 
             
             *
         | 
| 499 | 
            -
             *  | 
| 510 | 
            +
             * *Example:*
         | 
| 500 511 | 
             
             *
         | 
| 501 512 | 
             
             *	Etc.getgrnam('users')
         | 
| 502 513 | 
             
             *	#=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
         | 
| @@ -529,7 +540,6 @@ group_ensure(VALUE _) | |
| 529 540 | 
             
                return Qnil;
         | 
| 530 541 | 
             
            }
         | 
| 531 542 |  | 
| 532 | 
            -
             | 
| 533 543 | 
             
            static VALUE
         | 
| 534 544 | 
             
            group_iterate(VALUE _)
         | 
| 535 545 | 
             
            {
         | 
| @@ -552,14 +562,18 @@ each_group(void) | |
| 552 562 | 
             
            }
         | 
| 553 563 | 
             
            #endif
         | 
| 554 564 |  | 
| 555 | 
            -
            /*  | 
| 565 | 
            +
            /* call-seq:
         | 
| 566 | 
            +
             *	group { |struct| block }
         | 
| 567 | 
            +
             *	group				->  Etc::Group
         | 
| 568 | 
            +
             *
         | 
| 569 | 
            +
             * Provides a convenient Ruby iterator which executes a block for each entry
         | 
| 556 570 | 
             
             * in the <tt>/etc/group</tt> file.
         | 
| 557 571 | 
             
             *
         | 
| 558 572 | 
             
             * The code block is passed an Group struct.
         | 
| 559 573 | 
             
             *
         | 
| 560 574 | 
             
             * See ::getgrent above for details.
         | 
| 561 575 | 
             
             *
         | 
| 562 | 
            -
             * Example | 
| 576 | 
            +
             * *Example:*
         | 
| 563 577 | 
             
             *
         | 
| 564 578 | 
             
             *     require 'etc'
         | 
| 565 579 | 
             
             *
         | 
| @@ -586,7 +600,7 @@ etc_group(VALUE obj) | |
| 586 600 |  | 
| 587 601 | 
             
            #ifdef HAVE_GETGRENT
         | 
| 588 602 | 
             
            /* call-seq:
         | 
| 589 | 
            -
             *	Etc::Group.each { |group| block }   ->	 | 
| 603 | 
            +
             *	Etc::Group.each { |group| block }   ->	Etc::Group
         | 
| 590 604 | 
             
             *	Etc::Group.each			    ->	Enumerator
         | 
| 591 605 | 
             
             *
         | 
| 592 606 | 
             
             * Iterates for each entry in the <tt>/etc/group</tt> file if a block is
         | 
| @@ -596,7 +610,7 @@ etc_group(VALUE obj) | |
| 596 610 | 
             
             *
         | 
| 597 611 | 
             
             * The code block is passed a Group struct.
         | 
| 598 612 | 
             
             *
         | 
| 599 | 
            -
             * Example | 
| 613 | 
            +
             * *Example:*
         | 
| 600 614 | 
             
             *
         | 
| 601 615 | 
             
             *     require 'etc'
         | 
| 602 616 | 
             
             *
         | 
| @@ -617,7 +631,10 @@ etc_each_group(VALUE obj) | |
| 617 631 | 
             
            }
         | 
| 618 632 | 
             
            #endif
         | 
| 619 633 |  | 
| 620 | 
            -
            /*  | 
| 634 | 
            +
            /* call-seq:
         | 
| 635 | 
            +
             *	setgrent
         | 
| 636 | 
            +
             *
         | 
| 637 | 
            +
             * Resets the process of reading the <tt>/etc/group</tt> file, so that the
         | 
| 621 638 | 
             
             * next call to ::getgrent will return the first entry again.
         | 
| 622 639 | 
             
             */
         | 
| 623 640 | 
             
            static VALUE
         | 
| @@ -629,7 +646,10 @@ etc_setgrent(VALUE obj) | |
| 629 646 | 
             
                return Qnil;
         | 
| 630 647 | 
             
            }
         | 
| 631 648 |  | 
| 632 | 
            -
            /*  | 
| 649 | 
            +
            /* call-seq:
         | 
| 650 | 
            +
             *	endgrent
         | 
| 651 | 
            +
             *
         | 
| 652 | 
            +
             * Ends the process of scanning through the <tt>/etc/group</tt> file begun
         | 
| 633 653 | 
             
             * by ::getgrent, and closes the file.
         | 
| 634 654 | 
             
             */
         | 
| 635 655 | 
             
            static VALUE
         | 
| @@ -641,7 +661,10 @@ etc_endgrent(VALUE obj) | |
| 641 661 | 
             
                return Qnil;
         | 
| 642 662 | 
             
            }
         | 
| 643 663 |  | 
| 644 | 
            -
            /*  | 
| 664 | 
            +
            /* call-seq:
         | 
| 665 | 
            +
             *	getgrent	->  Etc::Group
         | 
| 666 | 
            +
             *
         | 
| 667 | 
            +
             * Returns an entry from the <tt>/etc/group</tt> file.
         | 
| 645 668 | 
             
             *
         | 
| 646 669 | 
             
             * The first time it is called it opens the file and returns the first entry;
         | 
| 647 670 | 
             
             * each successive call returns the next entry, or +nil+ if the end of the file
         | 
| @@ -670,9 +693,21 @@ etc_getgrent(VALUE obj) | |
| 670 693 | 
             
            VALUE rb_w32_special_folder(int type);
         | 
| 671 694 | 
             
            UINT rb_w32_system_tmpdir(WCHAR *path, UINT len);
         | 
| 672 695 | 
             
            VALUE rb_w32_conv_from_wchar(const WCHAR *wstr, rb_encoding *enc);
         | 
| 696 | 
            +
            #elif defined(LOAD_RELATIVE)
         | 
| 697 | 
            +
            static inline VALUE
         | 
| 698 | 
            +
            rbconfig(void)
         | 
| 699 | 
            +
            {
         | 
| 700 | 
            +
                VALUE config;
         | 
| 701 | 
            +
                rb_require("rbconfig");
         | 
| 702 | 
            +
                config = rb_const_get(rb_path2class("RbConfig"), rb_intern_const("CONFIG"));
         | 
| 703 | 
            +
                Check_Type(config, T_HASH);
         | 
| 704 | 
            +
                return config;
         | 
| 705 | 
            +
            }
         | 
| 673 706 | 
             
            #endif
         | 
| 674 707 |  | 
| 675 | 
            -
            /*
         | 
| 708 | 
            +
            /* call-seq:
         | 
| 709 | 
            +
             *	sysconfdir	->  String
         | 
| 710 | 
            +
             *
         | 
| 676 711 | 
             
             * Returns system configuration directory.
         | 
| 677 712 | 
             
             *
         | 
| 678 713 | 
             
             * This is typically <code>"/etc"</code>, but is modified by the prefix used
         | 
| @@ -687,12 +722,16 @@ etc_sysconfdir(VALUE obj) | |
| 687 722 | 
             
            {
         | 
| 688 723 | 
             
            #ifdef _WIN32
         | 
| 689 724 | 
             
                return rb_w32_special_folder(CSIDL_COMMON_APPDATA);
         | 
| 725 | 
            +
            #elif defined(LOAD_RELATIVE)
         | 
| 726 | 
            +
                return rb_hash_aref(rbconfig(), rb_str_new_lit("sysconfdir"));
         | 
| 690 727 | 
             
            #else
         | 
| 691 728 | 
             
                return rb_filesystem_str_new_cstr(SYSCONFDIR);
         | 
| 692 729 | 
             
            #endif
         | 
| 693 730 | 
             
            }
         | 
| 694 731 |  | 
| 695 | 
            -
            /*
         | 
| 732 | 
            +
            /* call-seq:
         | 
| 733 | 
            +
             *	systmpdir	->  String
         | 
| 734 | 
            +
             *
         | 
| 696 735 | 
             
             * Returns system temporary directory; typically "/tmp".
         | 
| 697 736 | 
             
             */
         | 
| 698 737 | 
             
            static VALUE
         | 
| @@ -736,13 +775,15 @@ etc_systmpdir(VALUE _) | |
| 736 775 | 
             
            }
         | 
| 737 776 |  | 
| 738 777 | 
             
            #ifdef HAVE_UNAME
         | 
| 739 | 
            -
            /*
         | 
| 778 | 
            +
            /* call-seq:
         | 
| 779 | 
            +
             *	uname	-> hash
         | 
| 780 | 
            +
             *
         | 
| 740 781 | 
             
             * Returns the system information obtained by uname system call.
         | 
| 741 782 | 
             
             *
         | 
| 742 783 | 
             
             * The return value is a hash which has 5 keys at least:
         | 
| 743 784 | 
             
             *   :sysname, :nodename, :release, :version, :machine
         | 
| 744 785 | 
             
             *
         | 
| 745 | 
            -
             * Example | 
| 786 | 
            +
             * *Example:*
         | 
| 746 787 | 
             
             *
         | 
| 747 788 | 
             
             *   require 'etc'
         | 
| 748 789 | 
             
             *   require 'pp'
         | 
| @@ -784,12 +825,12 @@ etc_uname(VALUE obj) | |
| 784 825 | 
             
            	sysname = "Windows";
         | 
| 785 826 | 
             
            	break;
         | 
| 786 827 | 
             
                }
         | 
| 787 | 
            -
                rb_hash_aset(result,  | 
| 828 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("sysname"), rb_str_new_cstr(sysname));
         | 
| 788 829 | 
             
                release = rb_sprintf("%lu.%lu.%lu", v.dwMajorVersion, v.dwMinorVersion, v.dwBuildNumber);
         | 
| 789 | 
            -
                rb_hash_aset(result,  | 
| 830 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("release"), release);
         | 
| 790 831 | 
             
                version = rb_sprintf("%s Version %"PRIsVALUE": %"PRIsVALUE, sysname, release,
         | 
| 791 832 | 
             
            			 rb_w32_conv_from_wchar(v.szCSDVersion, rb_utf8_encoding()));
         | 
| 792 | 
            -
                rb_hash_aset(result,  | 
| 833 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("version"), version);
         | 
| 793 834 |  | 
| 794 835 | 
             
            # if defined _MSC_VER && _MSC_VER < 1300
         | 
| 795 836 | 
             
            #   define GET_COMPUTER_NAME(ptr, plen) GetComputerNameW(ptr, plen)
         | 
| @@ -803,7 +844,7 @@ etc_uname(VALUE obj) | |
| 803 844 | 
             
                }
         | 
| 804 845 | 
             
                ALLOCV_END(vbuf);
         | 
| 805 846 | 
             
                if (NIL_P(nodename)) nodename = rb_str_new(0, 0);
         | 
| 806 | 
            -
                rb_hash_aset(result,  | 
| 847 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("nodename"), nodename);
         | 
| 807 848 |  | 
| 808 849 | 
             
            # ifndef PROCESSOR_ARCHITECTURE_AMD64
         | 
| 809 850 | 
             
            #   define PROCESSOR_ARCHITECTURE_AMD64 9
         | 
| @@ -827,7 +868,7 @@ etc_uname(VALUE obj) | |
| 827 868 | 
             
            	break;
         | 
| 828 869 | 
             
                }
         | 
| 829 870 |  | 
| 830 | 
            -
                rb_hash_aset(result,  | 
| 871 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("machine"), rb_str_new_cstr(mach));
         | 
| 831 872 | 
             
            #else
         | 
| 832 873 | 
             
                struct utsname u;
         | 
| 833 874 | 
             
                int ret;
         | 
| @@ -838,11 +879,11 @@ etc_uname(VALUE obj) | |
| 838 879 | 
             
                    rb_sys_fail("uname");
         | 
| 839 880 |  | 
| 840 881 | 
             
                result = rb_hash_new();
         | 
| 841 | 
            -
                rb_hash_aset(result,  | 
| 842 | 
            -
                rb_hash_aset(result,  | 
| 843 | 
            -
                rb_hash_aset(result,  | 
| 844 | 
            -
                rb_hash_aset(result,  | 
| 845 | 
            -
                rb_hash_aset(result,  | 
| 882 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("sysname"), rb_str_new_cstr(u.sysname));
         | 
| 883 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("nodename"), rb_str_new_cstr(u.nodename));
         | 
| 884 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("release"), rb_str_new_cstr(u.release));
         | 
| 885 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("version"), rb_str_new_cstr(u.version));
         | 
| 886 | 
            +
                rb_hash_aset(result, SYMBOL_LIT("machine"), rb_str_new_cstr(u.machine));
         | 
| 846 887 | 
             
            #endif
         | 
| 847 888 |  | 
| 848 889 | 
             
                return result;
         | 
| @@ -852,7 +893,9 @@ etc_uname(VALUE obj) | |
| 852 893 | 
             
            #endif
         | 
| 853 894 |  | 
| 854 895 | 
             
            #ifdef HAVE_SYSCONF
         | 
| 855 | 
            -
            /*
         | 
| 896 | 
            +
            /* call-seq:
         | 
| 897 | 
            +
             *	sysconf(name)	->  Integer
         | 
| 898 | 
            +
             *
         | 
| 856 899 | 
             
             * Returns system configuration variable using sysconf().
         | 
| 857 900 | 
             
             *
         | 
| 858 901 | 
             
             * _name_ should be a constant under <code>Etc</code> which begins with <code>SC_</code>.
         | 
| @@ -886,7 +929,9 @@ etc_sysconf(VALUE obj, VALUE arg) | |
| 886 929 | 
             
            #endif
         | 
| 887 930 |  | 
| 888 931 | 
             
            #ifdef HAVE_CONFSTR
         | 
| 889 | 
            -
            /*
         | 
| 932 | 
            +
            /* call-seq:
         | 
| 933 | 
            +
             *	confstr(name)	->  String
         | 
| 934 | 
            +
             *
         | 
| 890 935 | 
             
             * Returns system configuration variable using confstr().
         | 
| 891 936 | 
             
             *
         | 
| 892 937 | 
             
             * _name_ should be a constant under <code>Etc</code> which begins with <code>CS_</code>.
         | 
| @@ -933,7 +978,9 @@ etc_confstr(VALUE obj, VALUE arg) | |
| 933 978 | 
             
            #endif
         | 
| 934 979 |  | 
| 935 980 | 
             
            #ifdef HAVE_FPATHCONF
         | 
| 936 | 
            -
            /*
         | 
| 981 | 
            +
            /* call-seq:
         | 
| 982 | 
            +
             *	pathconf(name)	->  Integer
         | 
| 983 | 
            +
             *
         | 
| 937 984 | 
             
             * Returns pathname configuration variable using fpathconf().
         | 
| 938 985 | 
             
             *
         | 
| 939 986 | 
             
             * _name_ should be a constant under <code>Etc</code> which begins with <code>PC_</code>.
         | 
| @@ -1025,7 +1072,9 @@ etc_nprocessors_affin(void) | |
| 1025 1072 | 
             
            }
         | 
| 1026 1073 | 
             
            #endif
         | 
| 1027 1074 |  | 
| 1028 | 
            -
            /*
         | 
| 1075 | 
            +
            /* call-seq:
         | 
| 1076 | 
            +
             *	nprocessors	->  Integer
         | 
| 1077 | 
            +
             *
         | 
| 1029 1078 | 
             
             * Returns the number of online processors.
         | 
| 1030 1079 | 
             
             *
         | 
| 1031 1080 | 
             
             * The result is intended as the number of processes to
         | 
| @@ -1035,7 +1084,7 @@ etc_nprocessors_affin(void) | |
| 1035 1084 | 
             
             * - sched_getaffinity(): Linux
         | 
| 1036 1085 | 
             
             * - sysconf(_SC_NPROCESSORS_ONLN): GNU/Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, OpenIndiana, Mac OS X, AIX
         | 
| 1037 1086 | 
             
             *
         | 
| 1038 | 
            -
             * Example | 
| 1087 | 
            +
             * *Example:*
         | 
| 1039 1088 | 
             
             *
         | 
| 1040 1089 | 
             
             *   require 'etc'
         | 
| 1041 1090 | 
             
             *   p Etc.nprocessors #=> 4
         | 
| @@ -1044,7 +1093,7 @@ etc_nprocessors_affin(void) | |
| 1044 1093 | 
             
             * process is bound to specific cpus. This is intended for getting better
         | 
| 1045 1094 | 
             
             * parallel processing.
         | 
| 1046 1095 | 
             
             *
         | 
| 1047 | 
            -
             * Example | 
| 1096 | 
            +
             * *Example:* (Linux)
         | 
| 1048 1097 | 
             
             *
         | 
| 1049 1098 | 
             
             *   linux$ taskset 0x3 ./ruby -retc -e "p Etc.nprocessors"  #=> 2
         | 
| 1050 1099 | 
             
             *
         | 
| @@ -1094,7 +1143,7 @@ etc_nprocessors(VALUE obj) | |
| 1094 1143 | 
             
             * The Etc module provides a more reliable way to access information about
         | 
| 1095 1144 | 
             
             * the logged in user than environment variables such as +$USER+.
         | 
| 1096 1145 | 
             
             *
         | 
| 1097 | 
            -
             *  | 
| 1146 | 
            +
             * *Example:*
         | 
| 1098 1147 | 
             
             *
         | 
| 1099 1148 | 
             
             *     require 'etc'
         | 
| 1100 1149 | 
             
             *
         | 
| @@ -1118,6 +1167,7 @@ Init_etc(void) | |
| 1118 1167 | 
             
                RB_EXT_RACTOR_SAFE(true);
         | 
| 1119 1168 | 
             
            #endif
         | 
| 1120 1169 | 
             
                mEtc = rb_define_module("Etc");
         | 
| 1170 | 
            +
                /* The version */
         | 
| 1121 1171 | 
             
                rb_define_const(mEtc, "VERSION", rb_str_new_cstr(RUBY_ETC_VERSION));
         | 
| 1122 1172 | 
             
                init_constants(mEtc);
         | 
| 1123 1173 |  | 
    
        data/ext/etc/mkconstants.rb
    CHANGED
    
    | @@ -35,6 +35,12 @@ opt.def_option('-H FILE', 'specify output header file') {|filename| | |
| 35 35 |  | 
| 36 36 | 
             
            opt.parse!
         | 
| 37 37 |  | 
| 38 | 
            +
            CONST_PREFIXES = {
         | 
| 39 | 
            +
              'SC' => 'for Etc.sysconf; See <tt>man sysconf</tt>',
         | 
| 40 | 
            +
              'CS' => 'for Etc.confstr; See <tt>man constr</tt>',
         | 
| 41 | 
            +
              'PC' => 'for IO#pathconf; See <tt>man fpathconf</tt>',
         | 
| 42 | 
            +
            }
         | 
| 43 | 
            +
             | 
| 38 44 | 
             
            h = {}
         | 
| 39 45 | 
             
            COMMENTS = {}
         | 
| 40 46 |  | 
| @@ -49,6 +55,13 @@ DATA.each_line {|s| | |
| 49 55 | 
             
                next
         | 
| 50 56 | 
             
              end
         | 
| 51 57 | 
             
              h[name] = default_value
         | 
| 58 | 
            +
              if additional = CONST_PREFIXES[name[/\A_([A-Z]+)_/, 1]]
         | 
| 59 | 
            +
                if comment&.match(/\w\z/)
         | 
| 60 | 
            +
                  comment << " " << additional
         | 
| 61 | 
            +
                else
         | 
| 62 | 
            +
                  (comment ||= String.new) << " " << additional.sub(/\A\w/) {$&.upcase}
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
              end
         | 
| 52 65 | 
             
              COMMENTS[name] = comment if comment
         | 
| 53 66 | 
             
            }
         | 
| 54 67 | 
             
            DEFS = h.to_a
         | 
| @@ -66,15 +79,11 @@ def each_name(pat) | |
| 66 79 | 
             
              }
         | 
| 67 80 | 
             
            end
         | 
| 68 81 |  | 
| 69 | 
            -
            erb_new = lambda do |src,  | 
| 70 | 
            -
               | 
| 71 | 
            -
                ERB.new(src, trim_mode: trim)
         | 
| 72 | 
            -
              else
         | 
| 73 | 
            -
                ERB.new(src, safe, trim)
         | 
| 74 | 
            -
              end
         | 
| 82 | 
            +
            erb_new = lambda do |src, trim|
         | 
| 83 | 
            +
              ERB.new(src, trim_mode: trim)
         | 
| 75 84 | 
             
            end
         | 
| 76 85 |  | 
| 77 | 
            -
            erb_new.call(<<'EOS',  | 
| 86 | 
            +
            erb_new.call(<<'EOS', '%').def_method(Object, "gen_const_decls")
         | 
| 78 87 | 
             
            % each_const {|name, default_value|
         | 
| 79 88 | 
             
            #if !defined(<%=name%>)
         | 
| 80 89 | 
             
            # if defined(HAVE_CONST_<%=name.upcase%>)
         | 
| @@ -88,7 +97,7 @@ erb_new.call(<<'EOS', nil, '%').def_method(Object, "gen_const_decls") | |
| 88 97 | 
             
            % }
         | 
| 89 98 | 
             
            EOS
         | 
| 90 99 |  | 
| 91 | 
            -
            erb_new.call(<<'EOS',  | 
| 100 | 
            +
            erb_new.call(<<'EOS', '%').def_method(Object, "gen_const_defs")
         | 
| 92 101 | 
             
            % each_const {|name, default_value|
         | 
| 93 102 | 
             
            #if defined(<%=name%>)
         | 
| 94 103 | 
             
            %   if comment = COMMENTS[name]
         | 
| @@ -99,13 +108,13 @@ erb_new.call(<<'EOS', nil, '%').def_method(Object, "gen_const_defs") | |
| 99 108 | 
             
            % }
         | 
| 100 109 | 
             
            EOS
         | 
| 101 110 |  | 
| 102 | 
            -
            header_result = erb_new.call(<<'EOS',  | 
| 111 | 
            +
            header_result = erb_new.call(<<'EOS', '%').result(binding)
         | 
| 103 112 | 
             
            /* autogenerated file */
         | 
| 104 113 |  | 
| 105 114 | 
             
            <%= gen_const_decls %>
         | 
| 106 115 | 
             
            EOS
         | 
| 107 116 |  | 
| 108 | 
            -
            result = erb_new.call(<<'EOS',  | 
| 117 | 
            +
            result = erb_new.call(<<'EOS', '%').result(binding)
         | 
| 109 118 | 
             
            /* autogenerated file */
         | 
| 110 119 |  | 
| 111 120 | 
             
            #ifdef HAVE_LONG_LONG
         | 
| @@ -123,6 +132,9 @@ result = erb_new.call(<<'EOS', nil, '%').result(binding) | |
| 123 132 | 
             
            static void
         | 
| 124 133 | 
             
            init_constants(VALUE mod)
         | 
| 125 134 | 
             
            {
         | 
| 135 | 
            +
            #if 0
         | 
| 136 | 
            +
                mod = rb_define_module("Etc");
         | 
| 137 | 
            +
            #endif
         | 
| 126 138 | 
             
            <%= gen_const_defs %>
         | 
| 127 139 | 
             
            }
         | 
| 128 140 | 
             
            EOS
         | 
    
        data/test/etc/test_etc.rb
    CHANGED
    
    | @@ -169,6 +169,10 @@ class TestEtc < Test::Unit::TestCase | |
| 169 169 | 
             
                assert_operator(1, :<=, n)
         | 
| 170 170 | 
             
              end
         | 
| 171 171 |  | 
| 172 | 
            +
              def test_sysconfdir
         | 
| 173 | 
            +
                assert_operator(File, :absolute_path?, Etc.sysconfdir)
         | 
| 174 | 
            +
              end if File.method_defined?(:absolute_path?)
         | 
| 175 | 
            +
             | 
| 172 176 | 
             
              def test_ractor
         | 
| 173 177 | 
             
                return unless Etc.passwd # => skip test if no platform support
         | 
| 174 178 | 
             
                Etc.endpwent
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: etc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.4. | 
| 4 | 
            +
              version: 1.4.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Yukihiro Matsumoto
         | 
| 8 | 
            -
            autorequire:
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-12-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: Provides access to information typically stored in UNIX /etc directory.
         | 
| 14 14 | 
             
            email:
         | 
| @@ -24,15 +24,6 @@ extra_rdoc_files: | |
| 24 24 | 
             
            - ext/etc/etc.c
         | 
| 25 25 | 
             
            - ext/etc/extconf.rb
         | 
| 26 26 | 
             
            - ext/etc/mkconstants.rb
         | 
| 27 | 
            -
            - logs/ChangeLog-1.0.0
         | 
| 28 | 
            -
            - logs/ChangeLog-1.0.1
         | 
| 29 | 
            -
            - logs/ChangeLog-1.1.0
         | 
| 30 | 
            -
            - logs/ChangeLog-1.2.0
         | 
| 31 | 
            -
            - logs/ChangeLog-1.3.0
         | 
| 32 | 
            -
            - logs/ChangeLog-1.3.1
         | 
| 33 | 
            -
            - logs/ChangeLog-1.4.0
         | 
| 34 | 
            -
            - logs/ChangeLog-1.4.1
         | 
| 35 | 
            -
            - logs/ChangeLog-1.4.2
         | 
| 36 27 | 
             
            - test/etc/test_etc.rb
         | 
| 37 28 | 
             
            files:
         | 
| 38 29 | 
             
            - ChangeLog
         | 
| @@ -42,22 +33,13 @@ files: | |
| 42 33 | 
             
            - ext/etc/etc.c
         | 
| 43 34 | 
             
            - ext/etc/extconf.rb
         | 
| 44 35 | 
             
            - ext/etc/mkconstants.rb
         | 
| 45 | 
            -
            - logs/ChangeLog-1.0.0
         | 
| 46 | 
            -
            - logs/ChangeLog-1.0.1
         | 
| 47 | 
            -
            - logs/ChangeLog-1.1.0
         | 
| 48 | 
            -
            - logs/ChangeLog-1.2.0
         | 
| 49 | 
            -
            - logs/ChangeLog-1.3.0
         | 
| 50 | 
            -
            - logs/ChangeLog-1.3.1
         | 
| 51 | 
            -
            - logs/ChangeLog-1.4.0
         | 
| 52 | 
            -
            - logs/ChangeLog-1.4.1
         | 
| 53 | 
            -
            - logs/ChangeLog-1.4.2
         | 
| 54 36 | 
             
            - test/etc/test_etc.rb
         | 
| 55 37 | 
             
            homepage: https://github.com/ruby/etc
         | 
| 56 38 | 
             
            licenses:
         | 
| 57 39 | 
             
            - Ruby
         | 
| 58 40 | 
             
            - BSD-2-Clause
         | 
| 59 41 | 
             
            metadata: {}
         | 
| 60 | 
            -
            post_install_message:
         | 
| 42 | 
            +
            post_install_message: 
         | 
| 61 43 | 
             
            rdoc_options:
         | 
| 62 44 | 
             
            - "--main"
         | 
| 63 45 | 
             
            - README.md
         | 
| @@ -74,8 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 74 56 | 
             
                - !ruby/object:Gem::Version
         | 
| 75 57 | 
             
                  version: '0'
         | 
| 76 58 | 
             
            requirements: []
         | 
| 77 | 
            -
            rubygems_version: 3.5. | 
| 78 | 
            -
            signing_key:
         | 
| 59 | 
            +
            rubygems_version: 3.5.11
         | 
| 60 | 
            +
            signing_key: 
         | 
| 79 61 | 
             
            specification_version: 4
         | 
| 80 62 | 
             
            summary: Provides access to information typically stored in UNIX /etc directory.
         | 
| 81 63 | 
             
            test_files: []
         | 
    
        data/logs/ChangeLog-1.0.0
    DELETED
    
    | @@ -1,65 +0,0 @@ | |
| 1 | 
            -
            -*- coding: utf-8 -*-
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            commit 3402a9366fba4d2bf2f4ea20df16c95121876bc4
         | 
| 4 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 5 | 
            -
              AuthorDate: 2017-12-13 14:31:00 +0900
         | 
| 6 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 7 | 
            -
              CommitDate: 2017-12-13 14:31:00 +0900
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                Bump release date
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            commit be7fadb654340282ff71a500a47f88a0b4c47a1d
         | 
| 12 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 13 | 
            -
              AuthorDate: 2017-12-13 14:30:42 +0900
         | 
| 14 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 15 | 
            -
              CommitDate: 2017-12-13 14:30:42 +0900
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                Added badge of Travis
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            commit 97aca32b82f6cd8c309ae515e36d86c4d4822e4c
         | 
| 20 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 21 | 
            -
              AuthorDate: 2017-12-13 14:23:26 +0900
         | 
| 22 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 23 | 
            -
              CommitDate: 2017-12-13 14:23:26 +0900
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                prepare to release 1.0.0
         | 
| 26 | 
            -
             | 
| 27 | 
            -
            commit 744646073bcd4e7c5b65ae5921cf4c1d5697e35e
         | 
| 28 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 29 | 
            -
              AuthorDate: 2017-11-28 12:17:10 +0900
         | 
| 30 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 31 | 
            -
              CommitDate: 2017-11-28 12:20:44 +0900
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                Pick commits from ruby core repository.
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                  * https://github.com/ruby/ruby/commit/0f7fed9253
         | 
| 36 | 
            -
                  * https://github.com/ruby/ruby/commit/8fc8587e05
         | 
| 37 | 
            -
                  * https://github.com/ruby/ruby/commit/1333c0f0df
         | 
| 38 | 
            -
                  * https://github.com/ruby/ruby/commit/e4ff51b05a
         | 
| 39 | 
            -
                  * https://github.com/ruby/ruby/commit/1852b4a866
         | 
| 40 | 
            -
                  * https://github.com/ruby/ruby/commit/b5b2bd86f1
         | 
| 41 | 
            -
                  * https://github.com/ruby/ruby/commit/253fd5fe6b
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            commit 0e8f8547412d33a35752ef4272d78fc18cf3a5ed
         | 
| 44 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 45 | 
            -
              AuthorDate: 2017-10-20 16:51:22 +0900
         | 
| 46 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 47 | 
            -
              CommitDate: 2017-10-20 16:51:22 +0900
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                Update README with rdoc of Etc module
         | 
| 50 | 
            -
             | 
| 51 | 
            -
            commit 86a04b45feed2bc88d44399e127ed675d5d0f41c
         | 
| 52 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 53 | 
            -
              AuthorDate: 2017-09-13 14:32:17 +0900
         | 
| 54 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 55 | 
            -
              CommitDate: 2017-09-13 14:32:17 +0900
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                make frozen
         | 
| 58 | 
            -
             | 
| 59 | 
            -
            commit 91ce5d0039fe10d86b35a3c114fabb9a7ae86344
         | 
| 60 | 
            -
              Author:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 61 | 
            -
              AuthorDate: 2017-07-18 14:38:26 +0900
         | 
| 62 | 
            -
              Commit:     SHIBATA Hiroshi <hsbt@ruby-lang.org>
         | 
| 63 | 
            -
              CommitDate: 2017-07-18 14:38:26 +0900
         | 
| 64 | 
            -
             | 
| 65 | 
            -
                fixed wrong license name
         |