etc 1.4.2 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
data/ext/etc/etc.c CHANGED
@@ -54,9 +54,9 @@ static VALUE sGroup;
54
54
  # include <stdlib.h>
55
55
  # endif
56
56
  #endif
57
- char *getlogin();
57
+ RUBY_EXTERN char *getlogin(void);
58
58
 
59
- #define RUBY_ETC_VERSION "1.4.2"
59
+ #define RUBY_ETC_VERSION "1.4.4"
60
60
 
61
61
  #ifdef HAVE_RB_DEPRECATE_CONSTANT
62
62
  void rb_deprecate_constant(VALUE mod, const char *name);
@@ -66,6 +66,17 @@ void rb_deprecate_constant(VALUE mod, const char *name);
66
66
 
67
67
  #include "constdefs.h"
68
68
 
69
+ #ifndef HAVE_RB_IO_DESCRIPTOR
70
+ static int
71
+ io_descriptor_fallback(VALUE io)
72
+ {
73
+ rb_io_t *fptr;
74
+ GetOpenFile(io, fptr);
75
+ return fptr->fd;
76
+ }
77
+ #define rb_io_descriptor io_descriptor_fallback
78
+ #endif
79
+
69
80
  #ifdef HAVE_RUBY_ATOMIC_H
70
81
  # include "ruby/atomic.h"
71
82
  #else
@@ -192,7 +203,7 @@ setup_passwd(struct passwd *pwd)
192
203
  #endif
193
204
 
194
205
  /* call-seq:
195
- * getpwuid(uid) -> Passwd
206
+ * getpwuid(uid) -> Etc::Passwd
196
207
  *
197
208
  * Returns the <tt>/etc/passwd</tt> information for the user with the given
198
209
  * integer +uid+.
@@ -204,7 +215,7 @@ setup_passwd(struct passwd *pwd)
204
215
  *
205
216
  * See the unix manpage for <code>getpwuid(3)</code> for more detail.
206
217
  *
207
- * === Example:
218
+ * *Example:*
208
219
  *
209
220
  * Etc.getpwuid(0)
210
221
  * #=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
@@ -232,7 +243,7 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj)
232
243
  }
233
244
 
234
245
  /* call-seq:
235
- * getpwnam(name) -> Passwd
246
+ * getpwnam(name) -> Etc::Passwd
236
247
  *
237
248
  * Returns the <tt>/etc/passwd</tt> information for the user with specified
238
249
  * login +name+.
@@ -241,7 +252,7 @@ etc_getpwuid(int argc, VALUE *argv, VALUE obj)
241
252
  *
242
253
  * See the unix manpage for <code>getpwnam(3)</code> for more detail.
243
254
  *
244
- * === Example:
255
+ * *Example:*
245
256
  *
246
257
  * Etc.getpwnam('root')
247
258
  * #=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
@@ -296,8 +307,8 @@ each_passwd(void)
296
307
  #endif
297
308
 
298
309
  /* call-seq:
299
- * Etc.passwd { |struct| block } -> Passwd
300
- * Etc.passwd -> Passwd
310
+ * passwd { |struct| block }
311
+ * passwd -> Etc::Passwd
301
312
  *
302
313
  * Provides a convenient Ruby iterator which executes a block for each entry
303
314
  * in the <tt>/etc/passwd</tt> file.
@@ -306,7 +317,7 @@ each_passwd(void)
306
317
  *
307
318
  * See ::getpwent above for details.
308
319
  *
309
- * Example:
320
+ * *Example:*
310
321
  *
311
322
  * require 'etc'
312
323
  *
@@ -332,7 +343,7 @@ etc_passwd(VALUE obj)
332
343
  }
333
344
 
334
345
  /* call-seq:
335
- * Etc::Passwd.each { |struct| block } -> Passwd
346
+ * Etc::Passwd.each { |struct| block } -> Etc::Passwd
336
347
  * Etc::Passwd.each -> Enumerator
337
348
  *
338
349
  * Iterates for each entry in the <tt>/etc/passwd</tt> file if a block is
@@ -344,7 +355,7 @@ etc_passwd(VALUE obj)
344
355
  *
345
356
  * See Etc.getpwent above for details.
346
357
  *
347
- * Example:
358
+ * *Example:*
348
359
  *
349
360
  * require 'etc'
350
361
  *
@@ -366,7 +377,10 @@ etc_each_passwd(VALUE obj)
366
377
  return obj;
367
378
  }
368
379
 
369
- /* Resets the process of reading the <tt>/etc/passwd</tt> file, so that the
380
+ /* call-seq:
381
+ * setpwent
382
+ *
383
+ * Resets the process of reading the <tt>/etc/passwd</tt> file, so that the
370
384
  * next call to ::getpwent will return the first entry again.
371
385
  */
372
386
  static VALUE
@@ -378,7 +392,10 @@ etc_setpwent(VALUE obj)
378
392
  return Qnil;
379
393
  }
380
394
 
381
- /* Ends the process of scanning through the <tt>/etc/passwd</tt> file begun
395
+ /* call-seq:
396
+ * endpwent
397
+ *
398
+ * Ends the process of scanning through the <tt>/etc/passwd</tt> file begun
382
399
  * with ::getpwent, and closes the file.
383
400
  */
384
401
  static VALUE
@@ -390,7 +407,10 @@ etc_endpwent(VALUE obj)
390
407
  return Qnil;
391
408
  }
392
409
 
393
- /* Returns an entry from the <tt>/etc/passwd</tt> file.
410
+ /* call-seq:
411
+ * getpwent -> Etc::Passwd
412
+ *
413
+ * Returns an entry from the <tt>/etc/passwd</tt> file.
394
414
  *
395
415
  * The first time it is called it opens the file and returns the first entry;
396
416
  * each successive call returns the next entry, or +nil+ if the end of the file
@@ -438,7 +458,7 @@ setup_group(struct group *grp)
438
458
  #endif
439
459
 
440
460
  /* call-seq:
441
- * getgrgid(group_id) -> Group
461
+ * getgrgid(group_id) -> Etc::Group
442
462
  *
443
463
  * Returns information about the group with specified integer +group_id+,
444
464
  * as found in <tt>/etc/group</tt>.
@@ -447,7 +467,7 @@ setup_group(struct group *grp)
447
467
  *
448
468
  * See the unix manpage for <code>getgrgid(3)</code> for more detail.
449
469
  *
450
- * === Example:
470
+ * *Example:*
451
471
  *
452
472
  * Etc.getgrgid(100)
453
473
  * #=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
@@ -476,7 +496,7 @@ etc_getgrgid(int argc, VALUE *argv, VALUE obj)
476
496
  }
477
497
 
478
498
  /* call-seq:
479
- * getgrnam(name) -> Group
499
+ * getgrnam(name) -> Etc::Group
480
500
  *
481
501
  * Returns information about the group with specified +name+, as found in
482
502
  * <tt>/etc/group</tt>.
@@ -485,7 +505,7 @@ etc_getgrgid(int argc, VALUE *argv, VALUE obj)
485
505
  *
486
506
  * See the unix manpage for <code>getgrnam(3)</code> for more detail.
487
507
  *
488
- * === Example:
508
+ * *Example:*
489
509
  *
490
510
  * Etc.getgrnam('users')
491
511
  * #=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
@@ -518,7 +538,6 @@ group_ensure(VALUE _)
518
538
  return Qnil;
519
539
  }
520
540
 
521
-
522
541
  static VALUE
523
542
  group_iterate(VALUE _)
524
543
  {
@@ -541,14 +560,18 @@ each_group(void)
541
560
  }
542
561
  #endif
543
562
 
544
- /* Provides a convenient Ruby iterator which executes a block for each entry
563
+ /* call-seq:
564
+ * group { |struct| block }
565
+ * group -> Etc::Group
566
+ *
567
+ * Provides a convenient Ruby iterator which executes a block for each entry
545
568
  * in the <tt>/etc/group</tt> file.
546
569
  *
547
570
  * The code block is passed an Group struct.
548
571
  *
549
572
  * See ::getgrent above for details.
550
573
  *
551
- * Example:
574
+ * *Example:*
552
575
  *
553
576
  * require 'etc'
554
577
  *
@@ -575,7 +598,7 @@ etc_group(VALUE obj)
575
598
 
576
599
  #ifdef HAVE_GETGRENT
577
600
  /* call-seq:
578
- * Etc::Group.each { |group| block } -> obj
601
+ * Etc::Group.each { |group| block } -> Etc::Group
579
602
  * Etc::Group.each -> Enumerator
580
603
  *
581
604
  * Iterates for each entry in the <tt>/etc/group</tt> file if a block is
@@ -585,7 +608,7 @@ etc_group(VALUE obj)
585
608
  *
586
609
  * The code block is passed a Group struct.
587
610
  *
588
- * Example:
611
+ * *Example:*
589
612
  *
590
613
  * require 'etc'
591
614
  *
@@ -606,7 +629,10 @@ etc_each_group(VALUE obj)
606
629
  }
607
630
  #endif
608
631
 
609
- /* Resets the process of reading the <tt>/etc/group</tt> file, so that the
632
+ /* call-seq:
633
+ * setgrent
634
+ *
635
+ * Resets the process of reading the <tt>/etc/group</tt> file, so that the
610
636
  * next call to ::getgrent will return the first entry again.
611
637
  */
612
638
  static VALUE
@@ -618,7 +644,10 @@ etc_setgrent(VALUE obj)
618
644
  return Qnil;
619
645
  }
620
646
 
621
- /* Ends the process of scanning through the <tt>/etc/group</tt> file begun
647
+ /* call-seq:
648
+ * endgrent
649
+ *
650
+ * Ends the process of scanning through the <tt>/etc/group</tt> file begun
622
651
  * by ::getgrent, and closes the file.
623
652
  */
624
653
  static VALUE
@@ -630,7 +659,10 @@ etc_endgrent(VALUE obj)
630
659
  return Qnil;
631
660
  }
632
661
 
633
- /* Returns an entry from the <tt>/etc/group</tt> file.
662
+ /* call-seq:
663
+ * getgrent -> Etc::Group
664
+ *
665
+ * Returns an entry from the <tt>/etc/group</tt> file.
634
666
  *
635
667
  * The first time it is called it opens the file and returns the first entry;
636
668
  * each successive call returns the next entry, or +nil+ if the end of the file
@@ -659,9 +691,21 @@ etc_getgrent(VALUE obj)
659
691
  VALUE rb_w32_special_folder(int type);
660
692
  UINT rb_w32_system_tmpdir(WCHAR *path, UINT len);
661
693
  VALUE rb_w32_conv_from_wchar(const WCHAR *wstr, rb_encoding *enc);
694
+ #elif defined(LOAD_RELATIVE)
695
+ static inline VALUE
696
+ rbconfig(void)
697
+ {
698
+ VALUE config;
699
+ rb_require("rbconfig");
700
+ config = rb_const_get(rb_path2class("RbConfig"), rb_intern("CONFIG"));
701
+ Check_Type(config, T_HASH);
702
+ return config;
703
+ }
662
704
  #endif
663
705
 
664
- /*
706
+ /* call-seq:
707
+ * sysconfdir -> String
708
+ *
665
709
  * Returns system configuration directory.
666
710
  *
667
711
  * This is typically <code>"/etc"</code>, but is modified by the prefix used
@@ -676,12 +720,16 @@ etc_sysconfdir(VALUE obj)
676
720
  {
677
721
  #ifdef _WIN32
678
722
  return rb_w32_special_folder(CSIDL_COMMON_APPDATA);
723
+ #elif defined(LOAD_RELATIVE)
724
+ return rb_hash_aref(rbconfig(), rb_str_new_lit("sysconfdir"));
679
725
  #else
680
726
  return rb_filesystem_str_new_cstr(SYSCONFDIR);
681
727
  #endif
682
728
  }
683
729
 
684
- /*
730
+ /* call-seq:
731
+ * systmpdir -> String
732
+ *
685
733
  * Returns system temporary directory; typically "/tmp".
686
734
  */
687
735
  static VALUE
@@ -725,13 +773,15 @@ etc_systmpdir(VALUE _)
725
773
  }
726
774
 
727
775
  #ifdef HAVE_UNAME
728
- /*
776
+ /* call-seq:
777
+ * uname -> hash
778
+ *
729
779
  * Returns the system information obtained by uname system call.
730
780
  *
731
781
  * The return value is a hash which has 5 keys at least:
732
782
  * :sysname, :nodename, :release, :version, :machine
733
783
  *
734
- * Example:
784
+ * *Example:*
735
785
  *
736
786
  * require 'etc'
737
787
  * require 'pp'
@@ -841,7 +891,9 @@ etc_uname(VALUE obj)
841
891
  #endif
842
892
 
843
893
  #ifdef HAVE_SYSCONF
844
- /*
894
+ /* call-seq:
895
+ * sysconf(name) -> Integer
896
+ *
845
897
  * Returns system configuration variable using sysconf().
846
898
  *
847
899
  * _name_ should be a constant under <code>Etc</code> which begins with <code>SC_</code>.
@@ -875,7 +927,9 @@ etc_sysconf(VALUE obj, VALUE arg)
875
927
  #endif
876
928
 
877
929
  #ifdef HAVE_CONFSTR
878
- /*
930
+ /* call-seq:
931
+ * confstr(name) -> String
932
+ *
879
933
  * Returns system configuration variable using confstr().
880
934
  *
881
935
  * _name_ should be a constant under <code>Etc</code> which begins with <code>CS_</code>.
@@ -922,7 +976,9 @@ etc_confstr(VALUE obj, VALUE arg)
922
976
  #endif
923
977
 
924
978
  #ifdef HAVE_FPATHCONF
925
- /*
979
+ /* call-seq:
980
+ * pathconf(name) -> Integer
981
+ *
926
982
  * Returns pathname configuration variable using fpathconf().
927
983
  *
928
984
  * _name_ should be a constant under <code>Etc</code> which begins with <code>PC_</code>.
@@ -941,14 +997,11 @@ io_pathconf(VALUE io, VALUE arg)
941
997
  {
942
998
  int name;
943
999
  long ret;
944
- rb_io_t *fptr;
945
1000
 
946
1001
  name = NUM2INT(arg);
947
1002
 
948
- GetOpenFile(io, fptr);
949
-
950
1003
  errno = 0;
951
- ret = fpathconf(fptr->fd, name);
1004
+ ret = fpathconf(rb_io_descriptor(io), name);
952
1005
  if (ret == -1) {
953
1006
  if (errno == 0) /* no limit */
954
1007
  return Qnil;
@@ -1017,7 +1070,9 @@ etc_nprocessors_affin(void)
1017
1070
  }
1018
1071
  #endif
1019
1072
 
1020
- /*
1073
+ /* call-seq:
1074
+ * nprocessors -> Integer
1075
+ *
1021
1076
  * Returns the number of online processors.
1022
1077
  *
1023
1078
  * The result is intended as the number of processes to
@@ -1027,7 +1082,7 @@ etc_nprocessors_affin(void)
1027
1082
  * - sched_getaffinity(): Linux
1028
1083
  * - sysconf(_SC_NPROCESSORS_ONLN): GNU/Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, OpenIndiana, Mac OS X, AIX
1029
1084
  *
1030
- * Example:
1085
+ * *Example:*
1031
1086
  *
1032
1087
  * require 'etc'
1033
1088
  * p Etc.nprocessors #=> 4
@@ -1036,7 +1091,7 @@ etc_nprocessors_affin(void)
1036
1091
  * process is bound to specific cpus. This is intended for getting better
1037
1092
  * parallel processing.
1038
1093
  *
1039
- * Example: (Linux)
1094
+ * *Example:* (Linux)
1040
1095
  *
1041
1096
  * linux$ taskset 0x3 ./ruby -retc -e "p Etc.nprocessors" #=> 2
1042
1097
  *
@@ -1086,7 +1141,7 @@ etc_nprocessors(VALUE obj)
1086
1141
  * The Etc module provides a more reliable way to access information about
1087
1142
  * the logged in user than environment variables such as +$USER+.
1088
1143
  *
1089
- * == Example:
1144
+ * *Example:*
1090
1145
  *
1091
1146
  * require 'etc'
1092
1147
  *
@@ -1110,6 +1165,7 @@ Init_etc(void)
1110
1165
  RB_EXT_RACTOR_SAFE(true);
1111
1166
  #endif
1112
1167
  mEtc = rb_define_module("Etc");
1168
+ /* The version */
1113
1169
  rb_define_const(mEtc, "VERSION", rb_str_new_cstr(RUBY_ETC_VERSION));
1114
1170
  init_constants(mEtc);
1115
1171
 
data/ext/etc/extconf.rb CHANGED
@@ -43,13 +43,23 @@ have_struct_member('struct group', 'gr_passwd', 'grp.h')
43
43
 
44
44
  # for https://github.com/ruby/etc
45
45
  srcdir = File.expand_path("..", __FILE__)
46
- if !File.exist?("#{srcdir}/depend")
47
- %x[#{RbConfig.ruby} #{srcdir}/mkconstants.rb -o #{srcdir}/constdefs.h]
46
+ constdefs = "#{srcdir}/constdefs.h"
47
+ if !File.exist?(constdefs)
48
+ ruby = RbConfig.ruby
49
+ if File.file?(ruby)
50
+ ruby = [ruby]
51
+ else
52
+ require "shellwords"
53
+ ruby = Shellwords.split(ruby)
54
+ end
55
+ system(*ruby, "#{srcdir}/mkconstants.rb", "-o", constdefs)
48
56
  end
49
57
 
50
58
  # TODO: remove when dropping 2.7 support, as exported since 3.0
51
59
  have_func('rb_deprecate_constant(Qnil, "None")')
52
60
 
61
+ have_func("rb_io_descriptor")
62
+
53
63
  $distcleanfiles << "constdefs.h"
54
64
 
55
65
  create_makefile("etc")
@@ -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, safe, trim|
70
- if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
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', nil, '%').def_method(Object, "gen_const_decls")
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', nil, '%').def_method(Object, "gen_const_defs")
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', nil, '%').result(binding)
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', nil, '%').result(binding)
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.2
4
+ version: 1.4.4
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: 2022-12-09 00:00:00.000000000 Z
11
+ date: 2024-11-01 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,14 +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
27
  - test/etc/test_etc.rb
36
28
  files:
37
29
  - ChangeLog
@@ -41,21 +33,13 @@ files:
41
33
  - ext/etc/etc.c
42
34
  - ext/etc/extconf.rb
43
35
  - ext/etc/mkconstants.rb
44
- - logs/ChangeLog-1.0.0
45
- - logs/ChangeLog-1.0.1
46
- - logs/ChangeLog-1.1.0
47
- - logs/ChangeLog-1.2.0
48
- - logs/ChangeLog-1.3.0
49
- - logs/ChangeLog-1.3.1
50
- - logs/ChangeLog-1.4.0
51
- - logs/ChangeLog-1.4.1
52
36
  - test/etc/test_etc.rb
53
37
  homepage: https://github.com/ruby/etc
54
38
  licenses:
55
39
  - Ruby
56
40
  - BSD-2-Clause
57
41
  metadata: {}
58
- post_install_message:
42
+ post_install_message:
59
43
  rdoc_options:
60
44
  - "--main"
61
45
  - README.md
@@ -72,8 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
56
  - !ruby/object:Gem::Version
73
57
  version: '0'
74
58
  requirements: []
75
- rubygems_version: 3.4.0.dev
76
- signing_key:
59
+ rubygems_version: 3.5.11
60
+ signing_key:
77
61
  specification_version: 4
78
62
  summary: Provides access to information typically stored in UNIX /etc directory.
79
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