faster_path 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Cargo.lock +1 -0
- data/Cargo.toml +1 -0
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/faster_path.gemspec +1 -1
- data/lib/faster_path/optional/monkeypatches.rb +8 -8
- data/lib/faster_path/optional/refinements.rb +8 -6
- data/lib/faster_path/version.rb +1 -1
- data/lib/faster_path.rb +4 -2
- data/src/helpers.rs +21 -0
- data/src/lib.rs +13 -17
- data/src/pathname.rs +77 -25
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d4375a359961afcc5baa61ac3c67569797e7f2f
|
4
|
+
data.tar.gz: b73c128d729d3fd37d5b125f584149466463a83b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 42ab2f7cf2f3d45acf871b1169722905bc7bc7081048fc8ec23d74f5163dc4a25c65247c01ca97edd9cb2202886e8a482a9c40518301a59a216c58ed76125ccd
|
7
|
+
data.tar.gz: 1800e1268585ef4970508199ea494be7aaf5382229dc7d4f1f5486bda8b94c3576144f5afb9783400a555509b8ac485a5d7e1a924049e9baa46ccb8470053958
|
data/Cargo.lock
CHANGED
@@ -3,6 +3,7 @@ name = "faster_path"
|
|
3
3
|
version = "0.0.1"
|
4
4
|
dependencies = [
|
5
5
|
"array_tool 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
6
|
+
"ruby-sys 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)",
|
6
7
|
"ruru 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
7
8
|
]
|
8
9
|
|
data/Cargo.toml
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[![TravisCI Build Status](https://travis-ci.org/danielpclark/faster_path.svg?branch=master)](https://travis-ci.org/danielpclark/faster_path)
|
4
4
|
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/10ul0gk3cwhlt2lj/branch/master?svg=true)](https://ci.appveyor.com/project/danielpclark/faster-path/branch/master)
|
5
5
|
[![Latest Tag](https://img.shields.io/github/tag/danielpclark/faster_path.svg)](https://github.com/danielpclark/faster_path/tags)
|
6
|
-
[![Commits Since Last Release](https://img.shields.io/github/commits-since/danielpclark/faster_path/v0.1.
|
6
|
+
[![Commits Since Last Release](https://img.shields.io/github/commits-since/danielpclark/faster_path/v0.2.1.svg)](https://github.com/danielpclark/faster_path/pulse)
|
7
7
|
[![Binary Release](https://img.shields.io/github/release/danielpclark/faster_path.svg)](https://github.com/danielpclark/faster_path/releases)
|
8
8
|
[![Coverage Status](https://coveralls.io/repos/github/danielpclark/faster_path/badge.svg)](https://coveralls.io/github/danielpclark/faster_path)
|
9
9
|
[![Inline docs](http://inch-ci.org/github/danielpclark/faster_path.svg?branch=master)](http://inch-ci.org/github/danielpclark/faster_path)
|
data/Rakefile
CHANGED
@@ -98,7 +98,7 @@ Rake::TestTask.new(minitest: :build_lib) do |t|
|
|
98
98
|
t.test_files = FileList['test/**/*_test.rb']
|
99
99
|
end
|
100
100
|
|
101
|
-
task test: [:cargo, :minitest, :lint] do |_t|
|
101
|
+
task test: [:cargo, :minitest, :lint, :pbench] do |_t|
|
102
102
|
exec 'spec/mspec/bin/mspec --format spec core/file/basename core/file/extname core/file/dirname library/pathname'
|
103
103
|
end
|
104
104
|
|
data/faster_path.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "bundler", "~> 1.12"
|
28
28
|
spec.add_dependency "rake", "~> 12.0"
|
29
29
|
spec.add_dependency "ffi", "~> 1.9"
|
30
|
-
spec.add_development_dependency "
|
30
|
+
spec.add_development_dependency "read_source", "~> 0.2.6"
|
31
31
|
spec.add_development_dependency "minitest", "~> 5.10"
|
32
32
|
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
33
33
|
spec.add_development_dependency "color_pound_spec_reporter", "~> 0.0.9"
|
@@ -25,8 +25,6 @@ module FasterPath
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
|
29
|
-
# rubocop:disable Metrics/MethodLength
|
30
28
|
def self._ruby_library_pathname!
|
31
29
|
::Pathname.class_eval do
|
32
30
|
def absolute?
|
@@ -38,9 +36,10 @@ module FasterPath
|
|
38
36
|
end
|
39
37
|
private :add_trailing_separator
|
40
38
|
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
# Do NOT remove; waiting for fix in ruru
|
40
|
+
# def children(with_dir=true)
|
41
|
+
# FasterPathname::Public.allocate.send(:children_compat, @path, with_dir)
|
42
|
+
# end if !!ENV['WITH_REGRESSION']
|
44
43
|
|
45
44
|
def chop_basename(pth)
|
46
45
|
FasterPath.chop_basename(pth)
|
@@ -51,9 +50,10 @@ module FasterPath
|
|
51
50
|
FasterPath.directory?(@path)
|
52
51
|
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
# Do NOT remove; waiting for fix in ruru
|
54
|
+
# def entries
|
55
|
+
# FasterPathname::Public.allocate.send(:entries_compat, @path)
|
56
|
+
# end if !!ENV['WITH_REGRESSION']
|
57
57
|
|
58
58
|
def has_trailing_separator?(pth)
|
59
59
|
FasterPath.has_trailing_separator?(pth)
|
@@ -34,9 +34,10 @@ module FasterPath
|
|
34
34
|
end
|
35
35
|
private :add_trailing_separator
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
# Do NOT remove; waiting for fix in ruru
|
38
|
+
# def children(with_dir=true)
|
39
|
+
# FasterPathname::Public.allocate.send(:children_compat, @path, with_dir)
|
40
|
+
# end if !!ENV['WITH_REGRESSION']
|
40
41
|
|
41
42
|
def chop_basename(pth)
|
42
43
|
FasterPath.chop_basename(pth)
|
@@ -47,9 +48,10 @@ module FasterPath
|
|
47
48
|
FasterPath.directory?(@path)
|
48
49
|
end
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
|
51
|
+
# Do NOT remove; waiting for fix in ruru
|
52
|
+
# def entries
|
53
|
+
# FasterPathname::Public.allocate.send(:entries_compat, @path)
|
54
|
+
# end if !!ENV['WITH_REGRESSION']
|
53
55
|
|
54
56
|
def has_trailing_separator?(pth)
|
55
57
|
FasterPath.has_trailing_separator?(pth)
|
data/lib/faster_path/version.rb
CHANGED
data/lib/faster_path.rb
CHANGED
@@ -18,11 +18,13 @@ module FasterPath
|
|
18
18
|
private :absolute?
|
19
19
|
private :add_trailing_separator
|
20
20
|
private :basename
|
21
|
-
private :children
|
21
|
+
private :children # String results
|
22
|
+
private :children_compat # wrap Pathname on each
|
22
23
|
private :chop_basename
|
23
24
|
private :directory?
|
24
25
|
private :dirname
|
25
|
-
private :entries
|
26
|
+
private :entries # String results
|
27
|
+
private :entries_compat # wrap Pathname on each
|
26
28
|
private :extname
|
27
29
|
private :has_trailing_separator?
|
28
30
|
private :plus
|
data/src/helpers.rs
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
extern crate ruby_sys;
|
2
|
+
use self::ruby_sys::string;
|
3
|
+
|
4
|
+
use ruru::{AnyObject, Class};
|
5
|
+
use ruru::types::{c_char, c_long, Value};
|
6
|
+
|
7
|
+
#[inline]
|
8
|
+
pub fn str_to_value(string: &str) -> Value {
|
9
|
+
let str_ptr = string.as_ptr() as *const c_char;
|
10
|
+
let len = string.len() as c_long;
|
11
|
+
|
12
|
+
unsafe { string::rb_str_new(str_ptr, len) }
|
13
|
+
}
|
14
|
+
|
15
|
+
pub fn str_to_any_obj(str_var: &str) -> AnyObject {
|
16
|
+
AnyObject::from(str_to_value(str_var))
|
17
|
+
}
|
18
|
+
|
19
|
+
pub fn class_new(klass: &str, params: Vec<AnyObject>) -> AnyObject {
|
20
|
+
Class::from_existing(klass).new_instance(params)
|
21
|
+
}
|
data/src/lib.rs
CHANGED
@@ -9,6 +9,7 @@ extern crate ruru;
|
|
9
9
|
|
10
10
|
class!(FasterPathname);
|
11
11
|
|
12
|
+
mod helpers;
|
12
13
|
mod pathname;
|
13
14
|
mod basename;
|
14
15
|
mod chop_basename;
|
@@ -26,23 +27,6 @@ methods!(
|
|
26
27
|
FasterPathname,
|
27
28
|
_itself,
|
28
29
|
|
29
|
-
// TOPATH = :to_path
|
30
|
-
|
31
|
-
// SAME_PATHS = if File::FNM_SYSCASE.nonzero?
|
32
|
-
// # Avoid #zero? here because #casecmp can return nil.
|
33
|
-
// proc {|a, b| a.casecmp(b) == 0}
|
34
|
-
// else
|
35
|
-
// proc {|a, b| a == b}
|
36
|
-
// end
|
37
|
-
|
38
|
-
// if File::ALT_SEPARATOR
|
39
|
-
// SEPARATOR_LIST = "#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}"
|
40
|
-
// SEPARATOR_PAT = /[#{SEPARATOR_LIST}]/
|
41
|
-
// else
|
42
|
-
// SEPARATOR_LIST = "#{Regexp.quote File::SEPARATOR}"
|
43
|
-
// SEPARATOR_PAT = /#{Regexp.quote File::SEPARATOR}/
|
44
|
-
// end
|
45
|
-
|
46
30
|
fn pub_add_trailing_separator(pth: RString) -> RString {
|
47
31
|
pathname::pn_add_trailing_separator(pth)
|
48
32
|
}
|
@@ -61,6 +45,10 @@ methods!(
|
|
61
45
|
pathname::pn_children(pth, with_dir)
|
62
46
|
}
|
63
47
|
|
48
|
+
fn pub_children_compat(pth: RString, with_dir: Boolean) -> Array {
|
49
|
+
pathname::pn_children_compat(pth, with_dir)
|
50
|
+
}
|
51
|
+
|
64
52
|
fn pub_chop_basename(pth: RString) -> Array {
|
65
53
|
pathname::pn_chop_basename(pth)
|
66
54
|
}
|
@@ -91,10 +79,16 @@ methods!(
|
|
91
79
|
// pathname::pn_each_filename(pth)
|
92
80
|
// }
|
93
81
|
|
82
|
+
// pub_entries returns an array of String objects
|
94
83
|
fn pub_entries(pth: RString) -> Array {
|
95
84
|
pathname::pn_entries(pth)
|
96
85
|
}
|
97
86
|
|
87
|
+
// pub_entries_compat returns an array of Pathname objects
|
88
|
+
fn pub_entries_compat(pth: RString) -> Array {
|
89
|
+
pathname::pn_entries_compat(pth)
|
90
|
+
}
|
91
|
+
|
98
92
|
fn pub_extname(pth: RString) -> RString {
|
99
93
|
pathname::pn_extname(pth)
|
100
94
|
}
|
@@ -157,10 +151,12 @@ pub extern "C" fn Init_faster_pathname(){
|
|
157
151
|
itself.def("add_trailing_separator", pub_add_trailing_separator);
|
158
152
|
itself.def("basename", pub_basename);
|
159
153
|
itself.def("children", pub_children);
|
154
|
+
itself.def("children_compat", pub_children_compat);
|
160
155
|
itself.def("chop_basename", pub_chop_basename);
|
161
156
|
itself.def("directory?", pub_is_directory);
|
162
157
|
itself.def("dirname", pub_dirname);
|
163
158
|
itself.def("entries", pub_entries);
|
159
|
+
itself.def("entries_compat", pub_entries_compat);
|
164
160
|
itself.def("extname", pub_extname);
|
165
161
|
itself.def("has_trailing_separator?", pub_has_trailing_separator);
|
166
162
|
itself.def("plus", pub_plus);
|
data/src/pathname.rs
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
use helpers::*;
|
1
2
|
use basename;
|
2
3
|
use chop_basename;
|
3
4
|
use dirname;
|
@@ -9,7 +10,10 @@ use ruru::{RString, Boolean, Array};
|
|
9
10
|
use std::path::{MAIN_SEPARATOR,Path};
|
10
11
|
use std::fs;
|
11
12
|
|
12
|
-
|
13
|
+
type MaybeString = Result<ruru::RString, ruru::result::Error>;
|
14
|
+
type MaybeBoolean = Result<ruru::Boolean, ruru::result::Error>;
|
15
|
+
|
16
|
+
pub fn pn_add_trailing_separator(pth: MaybeString) -> RString {
|
13
17
|
let p = pth.ok().unwrap();
|
14
18
|
let x = format!("{}{}", p.to_str(), "a");
|
15
19
|
match x.rsplit_terminator(MAIN_SEPARATOR).next() {
|
@@ -18,7 +22,7 @@ pub fn pn_add_trailing_separator(pth: Result<ruru::RString, ruru::result::Error>
|
|
18
22
|
}
|
19
23
|
}
|
20
24
|
|
21
|
-
pub fn pn_is_absolute(pth:
|
25
|
+
pub fn pn_is_absolute(pth: MaybeString) -> Boolean {
|
22
26
|
Boolean::new(match pth.ok().unwrap_or(RString::new("")).to_str().chars().next() {
|
23
27
|
Some(c) => c == MAIN_SEPARATOR,
|
24
28
|
None => false
|
@@ -27,7 +31,7 @@ pub fn pn_is_absolute(pth: Result<ruru::RString, ruru::result::Error>) -> Boolea
|
|
27
31
|
|
28
32
|
// pub fn pn_ascend(){}
|
29
33
|
|
30
|
-
pub fn pn_basename(pth:
|
34
|
+
pub fn pn_basename(pth: MaybeString, ext: MaybeString) -> RString {
|
31
35
|
RString::new(
|
32
36
|
&basename::basename(
|
33
37
|
pth.ok().unwrap_or(RString::new("")).to_str(),
|
@@ -36,7 +40,7 @@ pub fn pn_basename(pth: Result<ruru::RString, ruru::result::Error>, ext: Result<
|
|
36
40
|
)
|
37
41
|
}
|
38
42
|
|
39
|
-
pub fn pn_children(pth:
|
43
|
+
pub fn pn_children(pth: MaybeString, with_dir: MaybeBoolean) -> Array {
|
40
44
|
let rstring = pth.ok().unwrap_or(RString::new("."));
|
41
45
|
let val = rstring.to_str();
|
42
46
|
let mut with_directory = with_dir.ok().unwrap_or(Boolean::new(true)).to_bool();
|
@@ -63,7 +67,40 @@ pub fn pn_children(pth: Result<ruru::RString, ruru::result::Error>, with_dir: Re
|
|
63
67
|
arr
|
64
68
|
}
|
65
69
|
|
66
|
-
pub fn
|
70
|
+
pub fn pn_children_compat(pth: MaybeString, with_dir: MaybeBoolean) -> Array {
|
71
|
+
let rstring = pth.ok().unwrap_or(RString::new("."));
|
72
|
+
let val = rstring.to_str();
|
73
|
+
let mut with_directory = with_dir.ok().unwrap_or(Boolean::new(true)).to_bool();
|
74
|
+
if val == "." {
|
75
|
+
with_directory = false;
|
76
|
+
}
|
77
|
+
let mut arr = Array::new();
|
78
|
+
|
79
|
+
if let Ok(entries) = fs::read_dir(val) {
|
80
|
+
for entry in entries {
|
81
|
+
if with_directory {
|
82
|
+
match entry {
|
83
|
+
Ok(v) => { arr.push(
|
84
|
+
class_new("Pathname", vec![str_to_any_obj(v.path().to_str().unwrap())])
|
85
|
+
);
|
86
|
+
},
|
87
|
+
_ => {}
|
88
|
+
};
|
89
|
+
} else {
|
90
|
+
match entry {
|
91
|
+
Ok(v) => { arr.push(
|
92
|
+
class_new("Pathname", vec![str_to_any_obj(v.file_name().to_str().unwrap())])
|
93
|
+
);
|
94
|
+
},
|
95
|
+
_ => {}
|
96
|
+
};
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
arr
|
101
|
+
}
|
102
|
+
|
103
|
+
pub fn pn_chop_basename(pth: MaybeString) -> Array {
|
67
104
|
let mut arr = Array::with_capacity(2);
|
68
105
|
let results = chop_basename::chop_basename(pth.ok().unwrap_or(RString::new("")).to_str());
|
69
106
|
match results {
|
@@ -76,17 +113,17 @@ pub fn pn_chop_basename(pth: Result<ruru::RString, ruru::result::Error>) -> Arra
|
|
76
113
|
}
|
77
114
|
}
|
78
115
|
|
79
|
-
// pub fn pn_cleanpath(pth:
|
116
|
+
// pub fn pn_cleanpath(pth: MaybeString){}
|
80
117
|
|
81
|
-
// pub fn pn_cleanpath_aggressive(pth:
|
118
|
+
// pub fn pn_cleanpath_aggressive(pth: MaybeString){}
|
82
119
|
|
83
|
-
// pub fn pn_cleanpath_conservative(pth:
|
120
|
+
// pub fn pn_cleanpath_conservative(pth: MaybeString){}
|
84
121
|
|
85
|
-
// pub fn pn_del_trailing_separator(pth:
|
122
|
+
// pub fn pn_del_trailing_separator(pth: MaybeString){}
|
86
123
|
|
87
124
|
// pub fn pn_descend(){}
|
88
125
|
|
89
|
-
pub fn pn_is_directory(pth:
|
126
|
+
pub fn pn_is_directory(pth: MaybeString) -> Boolean {
|
90
127
|
Boolean::new(
|
91
128
|
Path::new(
|
92
129
|
pth.ok().unwrap_or(RString::new("")).to_str()
|
@@ -94,7 +131,7 @@ pub fn pn_is_directory(pth: Result<ruru::RString, ruru::result::Error>) -> Boole
|
|
94
131
|
)
|
95
132
|
}
|
96
133
|
|
97
|
-
pub fn pn_dirname(pth:
|
134
|
+
pub fn pn_dirname(pth: MaybeString) -> RString {
|
98
135
|
RString::new(
|
99
136
|
&dirname::dirname(
|
100
137
|
pth.ok().unwrap_or(RString::new("")).to_str()
|
@@ -104,11 +141,11 @@ pub fn pn_dirname(pth: Result<ruru::RString, ruru::result::Error>) -> RString {
|
|
104
141
|
|
105
142
|
// pub fn pn_each_child(){}
|
106
143
|
|
107
|
-
// pub fn pn_each_filename(pth:
|
144
|
+
// pub fn pn_each_filename(pth: MaybeString) -> NilClass {
|
108
145
|
// NilClass::new()
|
109
146
|
// }
|
110
147
|
|
111
|
-
pub fn pn_entries(pth:
|
148
|
+
pub fn pn_entries(pth: MaybeString) -> Array {
|
112
149
|
let files = fs::read_dir(pth.ok().unwrap_or(RString::new("")).to_str()).unwrap();
|
113
150
|
let mut arr = Array::new();
|
114
151
|
|
@@ -123,15 +160,30 @@ pub fn pn_entries(pth: Result<ruru::RString, ruru::result::Error>) -> Array {
|
|
123
160
|
arr
|
124
161
|
}
|
125
162
|
|
126
|
-
pub fn
|
163
|
+
pub fn pn_entries_compat(pth: MaybeString) -> Array {
|
164
|
+
let files = fs::read_dir(pth.ok().unwrap_or(RString::new("")).to_str()).unwrap();
|
165
|
+
let mut arr = Array::new();
|
166
|
+
|
167
|
+
arr.push(class_new("Pathname", vec![str_to_any_obj(&"."[..])]));
|
168
|
+
arr.push(class_new("Pathname", vec![str_to_any_obj(&".."[..])]));
|
169
|
+
|
170
|
+
for file in files {
|
171
|
+
let file_name_str = file.unwrap().file_name().into_string().unwrap();
|
172
|
+
arr.push(class_new("Pathname", vec![str_to_any_obj(&file_name_str[..])]));
|
173
|
+
}
|
174
|
+
|
175
|
+
arr
|
176
|
+
}
|
177
|
+
|
178
|
+
pub fn pn_extname(pth: MaybeString) -> RString {
|
127
179
|
RString::new(
|
128
180
|
&extname::extname(pth.ok().unwrap_or(RString::new("")).to_str())[..]
|
129
181
|
)
|
130
182
|
}
|
131
183
|
|
132
|
-
// pub fn pn_find(pth:
|
184
|
+
// pub fn pn_find(pth: MaybeString ,ignore_error: Boolean){}
|
133
185
|
|
134
|
-
pub fn pn_has_trailing_separator(pth:
|
186
|
+
pub fn pn_has_trailing_separator(pth: MaybeString) -> Boolean {
|
135
187
|
let v = pth.ok().unwrap_or(RString::new(""));
|
136
188
|
match chop_basename::chop_basename(v.to_str()) {
|
137
189
|
Some((a,b)) => {
|
@@ -143,22 +195,22 @@ pub fn pn_has_trailing_separator(pth: Result<ruru::RString, ruru::result::Error>
|
|
143
195
|
|
144
196
|
// pub fn pn_join(args: Array){}
|
145
197
|
|
146
|
-
// pub fn pn_mkpath(pth:
|
198
|
+
// pub fn pn_mkpath(pth: MaybeString) -> NilClass {
|
147
199
|
// NilClass::new()
|
148
200
|
// }
|
149
201
|
|
150
|
-
// pub fn pn_is_mountpoint(pth:
|
202
|
+
// pub fn pn_is_mountpoint(pth: MaybeString){}
|
151
203
|
|
152
|
-
// pub fn pn_parent(pth:
|
204
|
+
// pub fn pn_parent(pth: MaybeString){}
|
153
205
|
|
154
206
|
// also need impl +
|
155
|
-
pub fn pn_plus(pth1:
|
207
|
+
pub fn pn_plus(pth1: MaybeString, pth2: MaybeString) -> RString {
|
156
208
|
RString::new(&plus::plus_paths(pth1.ok().unwrap().to_str(), pth2.ok().unwrap().to_str())[..])
|
157
209
|
}
|
158
210
|
|
159
|
-
// pub fn pn_prepend_prefix(prefix:
|
211
|
+
// pub fn pn_prepend_prefix(prefix: MaybeString, relpath: MaybeString){}
|
160
212
|
|
161
|
-
pub fn pn_is_relative(pth:
|
213
|
+
pub fn pn_is_relative(pth: MaybeString) -> Boolean {
|
162
214
|
Boolean::new(
|
163
215
|
match pth.ok().unwrap_or(RString::new(&MAIN_SEPARATOR.to_string()[..])).to_str().chars().next() {
|
164
216
|
Some(c) => c != MAIN_SEPARATOR,
|
@@ -167,13 +219,13 @@ pub fn pn_is_relative(pth: Result<ruru::RString, ruru::result::Error>) -> Boolea
|
|
167
219
|
)
|
168
220
|
}
|
169
221
|
|
170
|
-
// pub fn pn_root(pth:
|
222
|
+
// pub fn pn_root(pth: MaybeString){}
|
171
223
|
|
172
|
-
// pub fn pn_split_names(pth:
|
224
|
+
// pub fn pn_split_names(pth: MaybeString){}
|
173
225
|
|
174
226
|
// pub fn pn_relative_path_from(){}
|
175
227
|
|
176
|
-
// pub fn pn_rmtree(pth:
|
228
|
+
// pub fn pn_rmtree(pth: MaybeString) -> NilClass {
|
177
229
|
// NilClass::new()
|
178
230
|
// }
|
179
231
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faster_path
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel P. Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.9'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: read_source
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.2.6
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.2.6
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- src/chop_basename.rs
|
178
178
|
- src/dirname.rs
|
179
179
|
- src/extname.rs
|
180
|
+
- src/helpers.rs
|
180
181
|
- src/lib.rs
|
181
182
|
- src/path_parsing.rs
|
182
183
|
- src/pathname.rs
|