pathname 0.2.0 → 0.2.1
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/.git-blame-ignore-revs +7 -0
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/test.yml +5 -4
- data/ext/pathname/pathname.c +19 -1
- data/lib/pathname.rb +10 -5
- data/pathname.gemspec +2 -2
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 222ab05e8698152edf5c4d2db5215d1385281d77e408234a03e9417d8f7e33c6
|
4
|
+
data.tar.gz: f267783875853911d60d63e08d7e871ba4562a84a73a335d1b72b453c3665a59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b2b4a31d31f5e5dc9fe356c6a25a5a8f40b573604c073b9090ec53c09bafac5aafa61339b1396136659ef0ddeb1932955eb4e43f2ab7d83a906509a9412b313
|
7
|
+
data.tar.gz: 789a9cd9d5929793cabecde7d8a023ce153d1b5c11ef85da85aa8e0a74a427c85162c7cc0d09e85c3f33e8ee2f2d43bfeabed665fdd5f2742dec3611662204dd
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# This is a file used by GitHub to ignore the following commits on `git blame`.
|
2
|
+
#
|
3
|
+
# You can also do the same thing in your local repository with:
|
4
|
+
# $ git config --local blame.ignoreRevsFile .git-blame-ignore-revs
|
5
|
+
|
6
|
+
# Expand tabs
|
7
|
+
93e8aaadc7c7945895b1b0b6d9909134409517ff
|
data/.github/workflows/test.yml
CHANGED
@@ -7,7 +7,7 @@ jobs:
|
|
7
7
|
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
|
-
ruby: [ '3.0', head ]
|
10
|
+
ruby: [ 2.7, '3.0', 3.1, head ]
|
11
11
|
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
12
12
|
exclude:
|
13
13
|
- { os: windows-latest , ruby: head }
|
@@ -16,11 +16,12 @@ jobs:
|
|
16
16
|
- { os: windows-latest , ruby: mswin }
|
17
17
|
runs-on: ${{ matrix.os }}
|
18
18
|
steps:
|
19
|
-
- uses: actions/checkout@
|
19
|
+
- uses: actions/checkout@v3
|
20
20
|
- name: Set up Ruby
|
21
21
|
uses: ruby/setup-ruby@v1
|
22
22
|
with:
|
23
23
|
ruby-version: ${{ matrix.ruby }}
|
24
|
-
|
24
|
+
- name: Install dependencies
|
25
|
+
run: bundle install
|
25
26
|
- name: Run test
|
26
|
-
run:
|
27
|
+
run: rake compile test
|
data/ext/pathname/pathname.c
CHANGED
@@ -35,6 +35,7 @@ static ID id_lchmod;
|
|
35
35
|
static ID id_lchown;
|
36
36
|
static ID id_link;
|
37
37
|
static ID id_lstat;
|
38
|
+
static ID id_lutime;
|
38
39
|
static ID id_mkdir;
|
39
40
|
static ID id_mtime;
|
40
41
|
static ID id_open;
|
@@ -764,6 +765,19 @@ path_utime(VALUE self, VALUE atime, VALUE mtime)
|
|
764
765
|
return rb_funcall(rb_cFile, id_utime, 3, atime, mtime, get_strpath(self));
|
765
766
|
}
|
766
767
|
|
768
|
+
/*
|
769
|
+
* Update the access and modification times of the file.
|
770
|
+
*
|
771
|
+
* Same as Pathname#utime, but does not follow symbolic links.
|
772
|
+
*
|
773
|
+
* See File.lutime.
|
774
|
+
*/
|
775
|
+
static VALUE
|
776
|
+
path_lutime(VALUE self, VALUE atime, VALUE mtime)
|
777
|
+
{
|
778
|
+
return rb_funcall(rb_cFile, id_lutime, 3, atime, mtime, get_strpath(self));
|
779
|
+
}
|
780
|
+
|
767
781
|
/*
|
768
782
|
* Returns the last component of the path.
|
769
783
|
*
|
@@ -1212,7 +1226,7 @@ path_entries(VALUE self)
|
|
1212
1226
|
ary = rb_funcall(rb_cDir, id_entries, 1, str);
|
1213
1227
|
ary = rb_convert_type(ary, T_ARRAY, "Array", "to_ary");
|
1214
1228
|
for (i = 0; i < RARRAY_LEN(ary); i++) {
|
1215
|
-
|
1229
|
+
VALUE elt = RARRAY_AREF(ary, i);
|
1216
1230
|
elt = rb_class_new_instance(1, &elt, klass);
|
1217
1231
|
rb_ary_store(ary, i, elt);
|
1218
1232
|
}
|
@@ -1274,6 +1288,7 @@ static VALUE
|
|
1274
1288
|
path_each_entry(VALUE self)
|
1275
1289
|
{
|
1276
1290
|
VALUE args[1];
|
1291
|
+
RETURN_ENUMERATOR(self, 0, 0);
|
1277
1292
|
|
1278
1293
|
args[0] = get_strpath(self);
|
1279
1294
|
return rb_block_call(rb_cDir, id_foreach, 1, args, each_entry_i, rb_obj_class(self));
|
@@ -1464,6 +1479,7 @@ path_f_pathname(VALUE self, VALUE str)
|
|
1464
1479
|
* - #make_symlink(old)
|
1465
1480
|
* - #truncate(length)
|
1466
1481
|
* - #utime(atime, mtime)
|
1482
|
+
* - #lutime(atime, mtime)
|
1467
1483
|
* - #basename(*args)
|
1468
1484
|
* - #dirname
|
1469
1485
|
* - #extname
|
@@ -1562,6 +1578,7 @@ Init_pathname(void)
|
|
1562
1578
|
rb_define_method(rb_cPathname, "make_symlink", path_make_symlink, 1);
|
1563
1579
|
rb_define_method(rb_cPathname, "truncate", path_truncate, 1);
|
1564
1580
|
rb_define_method(rb_cPathname, "utime", path_utime, 2);
|
1581
|
+
rb_define_method(rb_cPathname, "lutime", path_lutime, 2);
|
1565
1582
|
rb_define_method(rb_cPathname, "basename", path_basename, -1);
|
1566
1583
|
rb_define_method(rb_cPathname, "dirname", path_dirname, 0);
|
1567
1584
|
rb_define_method(rb_cPathname, "extname", path_extname, 0);
|
@@ -1645,6 +1662,7 @@ InitVM_pathname(void)
|
|
1645
1662
|
id_lchown = rb_intern("lchown");
|
1646
1663
|
id_link = rb_intern("link");
|
1647
1664
|
id_lstat = rb_intern("lstat");
|
1665
|
+
id_lutime = rb_intern("lutime");
|
1648
1666
|
id_mkdir = rb_intern("mkdir");
|
1649
1667
|
id_mtime = rb_intern("mtime");
|
1650
1668
|
id_open = rb_intern("open");
|
data/lib/pathname.rb
CHANGED
@@ -338,6 +338,8 @@ class Pathname
|
|
338
338
|
|
339
339
|
#
|
340
340
|
# Appends a pathname fragment to +self+ to produce a new Pathname object.
|
341
|
+
# Since +other+ is considered as a path relative to +self+, if +other+ is
|
342
|
+
# an absolute path, the new Pathname object is created from just +other+.
|
341
343
|
#
|
342
344
|
# p1 = Pathname.new("/usr") # Pathname:/usr
|
343
345
|
# p2 = p1 + "bin/ruby" # Pathname:/usr/bin/ruby
|
@@ -399,6 +401,8 @@ class Pathname
|
|
399
401
|
|
400
402
|
#
|
401
403
|
# Joins the given pathnames onto +self+ to create a new Pathname object.
|
404
|
+
# This is effectively the same as using Pathname#+ to append +self+ and
|
405
|
+
# all arguments sequentially.
|
402
406
|
#
|
403
407
|
# path0 = Pathname.new("/usr") # Pathname:/usr
|
404
408
|
# path0 = path0.join("bin/ruby") # Pathname:/usr/bin/ruby
|
@@ -574,9 +578,9 @@ class Pathname # * Find *
|
|
574
578
|
end
|
575
579
|
|
576
580
|
|
577
|
-
|
578
|
-
autoload(:FileUtils, 'fileutils')
|
581
|
+
autoload(:FileUtils, 'fileutils')
|
579
582
|
|
583
|
+
class Pathname # * FileUtils *
|
580
584
|
# Creates a full path, including any intermediate directories that don't yet
|
581
585
|
# exist.
|
582
586
|
#
|
@@ -588,11 +592,12 @@ class Pathname # * FileUtils *
|
|
588
592
|
|
589
593
|
# Recursively deletes a directory, including all directories beneath it.
|
590
594
|
#
|
591
|
-
# See FileUtils.
|
592
|
-
def rmtree
|
595
|
+
# See FileUtils.rm_rf
|
596
|
+
def rmtree(noop: nil, verbose: nil, secure: nil)
|
593
597
|
# The name "rmtree" is borrowed from File::Path of Perl.
|
594
598
|
# File::Path provides "mkpath" and "rmtree".
|
595
|
-
|
599
|
+
require 'fileutils'
|
600
|
+
FileUtils.rm_rf(@path, noop: noop, verbose: verbose, secure: secure)
|
596
601
|
nil
|
597
602
|
end
|
598
603
|
end
|
data/pathname.gemspec
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "pathname"
|
3
|
-
spec.version = "0.2.
|
3
|
+
spec.version = "0.2.1"
|
4
4
|
spec.authors = ["Tanaka Akira"]
|
5
5
|
spec.email = ["akr@fsij.org"]
|
6
6
|
|
7
7
|
spec.summary = %q{Representation of the name of a file or directory on the filesystem}
|
8
8
|
spec.description = %q{Representation of the name of a file or directory on the filesystem}
|
9
9
|
spec.homepage = "https://github.com/ruby/pathname"
|
10
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
10
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
11
11
|
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
12
12
|
|
13
13
|
spec.metadata["homepage_uri"] = spec.homepage
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pathname
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tanaka Akira
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Representation of the name of a file or directory on the filesystem
|
14
14
|
email:
|
@@ -18,6 +18,8 @@ extensions:
|
|
18
18
|
- ext/pathname/extconf.rb
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
+
- ".git-blame-ignore-revs"
|
22
|
+
- ".github/dependabot.yml"
|
21
23
|
- ".github/workflows/test.yml"
|
22
24
|
- ".gitignore"
|
23
25
|
- Gemfile
|
@@ -45,14 +47,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
47
|
requirements:
|
46
48
|
- - ">="
|
47
49
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
50
|
+
version: 2.7.0
|
49
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
52
|
requirements:
|
51
53
|
- - ">="
|
52
54
|
- !ruby/object:Gem::Version
|
53
55
|
version: '0'
|
54
56
|
requirements: []
|
55
|
-
rubygems_version: 3.
|
57
|
+
rubygems_version: 3.4.0.dev
|
56
58
|
signing_key:
|
57
59
|
specification_version: 4
|
58
60
|
summary: Representation of the name of a file or directory on the filesystem
|