faster_path 0.1.7 → 0.1.8
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/lib/faster_path/version.rb +1 -1
- data/src/add_trailing_separator.rs +19 -18
- data/src/basename.rs +6 -2
- data/src/basename_for_chop.rs +3 -2
- data/src/both_are_blank.rs +6 -2
- data/src/dirname_for_chop.rs +3 -2
- data/src/is_absolute.rs +3 -2
- data/src/is_blank.rs +3 -2
- data/src/is_directory.rs +3 -2
- data/src/is_relative.rs +3 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ad592a885912e4267151be6ee15a9accfbd34ef
|
4
|
+
data.tar.gz: b2b22d3198284b6dc2bb177c72bd1c99bbcbb3a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17eecf18612f14fa87de8fc58f2ae4b08cb4e7f98e4d62283f87457d09e1822a3aba7db72df2e14e4d9cddcab60abf7cc2148742d9ae301541454e7a62080201
|
7
|
+
data.tar.gz: 15ad8f6310ce3b5188533f957bbc5e0ba9280686dd148adca124d455249c6426b2ee1f4b9cff43383e6601daf5682fad78a0d376d343537fe1f81118a20fcb21
|
data/lib/faster_path/version.rb
CHANGED
@@ -4,25 +4,26 @@ use std::ffi::{CStr, CString};
|
|
4
4
|
use std::str;
|
5
5
|
|
6
6
|
#[no_mangle]
|
7
|
-
pub extern
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
CStr::from_ptr(string)
|
12
|
-
};
|
13
|
-
let r_str = str::from_utf8(c_str.to_bytes()).unwrap_or("");
|
14
|
-
|
15
|
-
if r_str.is_empty() {
|
16
|
-
return string;
|
7
|
+
pub extern fn add_trailing_separator(string: *const c_char) -> *const c_char {
|
8
|
+
let c_str = unsafe {
|
9
|
+
if string.is_null() {
|
10
|
+
return string;
|
17
11
|
}
|
12
|
+
CStr::from_ptr(string)
|
13
|
+
};
|
14
|
+
let r_str = str::from_utf8(c_str.to_bytes()).unwrap_or("");
|
15
|
+
|
16
|
+
if r_str.is_empty() {
|
17
|
+
return string;
|
18
|
+
}
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
let path = Path::new(r_str);
|
21
|
+
let out_str = if !(path.to_str().unwrap().chars().last().unwrap() == '/') {
|
22
|
+
format!("{}{}", path.to_str().unwrap(), MAIN_SEPARATOR)
|
23
|
+
} else {
|
24
|
+
path.to_str().unwrap().to_string()
|
25
|
+
};
|
25
26
|
|
26
|
-
|
27
|
-
|
27
|
+
let output = CString::new(out_str).unwrap();
|
28
|
+
output.into_raw()
|
28
29
|
}
|
data/src/basename.rs
CHANGED
@@ -56,11 +56,15 @@ fn it_chomps_strings_correctly(){
|
|
56
56
|
#[no_mangle]
|
57
57
|
pub extern fn basename(str_pth: *const c_char, comp_ext: *const c_char) -> *const c_char {
|
58
58
|
let c_str1 = unsafe {
|
59
|
-
|
59
|
+
if str_pth.is_null(){
|
60
|
+
return str_pth;
|
61
|
+
}
|
60
62
|
CStr::from_ptr(str_pth)
|
61
63
|
};
|
62
64
|
let c_str2 = unsafe {
|
63
|
-
|
65
|
+
if comp_ext.is_null() {
|
66
|
+
return str_pth;
|
67
|
+
}
|
64
68
|
CStr::from_ptr(comp_ext)
|
65
69
|
};
|
66
70
|
let string = str::from_utf8(c_str1.to_bytes()).unwrap();
|
data/src/basename_for_chop.rs
CHANGED
data/src/both_are_blank.rs
CHANGED
@@ -5,11 +5,15 @@ use std::str;
|
|
5
5
|
#[no_mangle]
|
6
6
|
pub extern fn both_are_blank(s1: *const c_char, s2: *const c_char) -> bool {
|
7
7
|
let c_str1 = unsafe {
|
8
|
-
|
8
|
+
if s1.is_null() {
|
9
|
+
return true;
|
10
|
+
}
|
9
11
|
CStr::from_ptr(s1)
|
10
12
|
};
|
11
13
|
let c_str2 = unsafe {
|
12
|
-
|
14
|
+
if s2.is_null() {
|
15
|
+
return true;
|
16
|
+
}
|
13
17
|
CStr::from_ptr(s2)
|
14
18
|
};
|
15
19
|
|
data/src/dirname_for_chop.rs
CHANGED
data/src/is_absolute.rs
CHANGED
data/src/is_blank.rs
CHANGED
data/src/is_directory.rs
CHANGED
data/src/is_relative.rs
CHANGED
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.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel P. Clark
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
165
|
version: '0'
|
166
166
|
requirements: []
|
167
167
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.6.4
|
169
169
|
signing_key:
|
170
170
|
specification_version: 4
|
171
171
|
summary: Reimplementation of Pathname for better performance
|