faster_path 0.2.1 → 0.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 739814304e0316723938ab4430c07c7b17d490a2
4
- data.tar.gz: 108e7bcbf3ff76a25cc13abcc93139c6aa605f8b
3
+ metadata.gz: 9d4375a359961afcc5baa61ac3c67569797e7f2f
4
+ data.tar.gz: b73c128d729d3fd37d5b125f584149466463a83b
5
5
  SHA512:
6
- metadata.gz: 87faa82ae7729a586da191ee691e41db88a24269aa26e9ab54d0f823c5ce140bd105ecc91066dc0f0d5ee8a4dd883b030a8af17e85705d250dc9f6b8a0d53785
7
- data.tar.gz: 3d1861b3bd1238270820b6b1f688da630ebfc5556afab69cc37b2eb62bc02f3fe6a4538f5d3605fc97d9afb60681f561f5d3e4a4b6e08c2b7600339bee85f4d0
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
@@ -13,5 +13,6 @@ name = "faster_path"
13
13
  crate-type = ["dylib"]
14
14
 
15
15
  [dependencies]
16
+ ruby-sys = "0.2.20"
16
17
  ruru = "0.9.3"
17
18
  array_tool = "0.4.1"
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.11.svg)](https://github.com/danielpclark/faster_path/pulse)
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 "method_source", "~> 0.8.2"
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
- def children(with_dir=true)
42
- FasterPath.children(@path, with_dir)
43
- end
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
- def entries
55
- FasterPath.entries(@path)
56
- end
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
- def children(with_dir=true)
38
- FasterPath.children(@path, with_dir)
39
- end
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
- def entries
51
- FasterPath.entries(@path)
52
- end
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)
@@ -1,3 +1,3 @@
1
1
  module FasterPath
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
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
- pub fn pn_add_trailing_separator(pth: Result<ruru::RString, ruru::result::Error>) -> RString {
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: Result<ruru::RString, ruru::result::Error>) -> Boolean {
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: Result<ruru::RString, ruru::result::Error>, ext: Result<ruru::RString, ruru::result::Error>) -> RString {
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: Result<ruru::RString, ruru::result::Error>, with_dir: Result<ruru::Boolean, ruru::result::Error>) -> Array {
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 pn_chop_basename(pth: Result<ruru::RString, ruru::result::Error>) -> Array {
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: Result<ruru::RString, ruru::result::Error>){}
116
+ // pub fn pn_cleanpath(pth: MaybeString){}
80
117
 
81
- // pub fn pn_cleanpath_aggressive(pth: Result<ruru::RString, ruru::result::Error>){}
118
+ // pub fn pn_cleanpath_aggressive(pth: MaybeString){}
82
119
 
83
- // pub fn pn_cleanpath_conservative(pth: Result<ruru::RString, ruru::result::Error>){}
120
+ // pub fn pn_cleanpath_conservative(pth: MaybeString){}
84
121
 
85
- // pub fn pn_del_trailing_separator(pth: Result<ruru::RString, ruru::result::Error>){}
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: Result<ruru::RString, ruru::result::Error>) -> Boolean {
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: Result<ruru::RString, ruru::result::Error>) -> RString {
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: Result<ruru::RString, ruru::result::Error>) -> NilClass {
144
+ // pub fn pn_each_filename(pth: MaybeString) -> NilClass {
108
145
  // NilClass::new()
109
146
  // }
110
147
 
111
- pub fn pn_entries(pth: Result<ruru::RString, ruru::result::Error>) -> Array {
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 pn_extname(pth: Result<ruru::RString, ruru::result::Error>) -> RString {
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: Result<ruru::RString, ruru::result::Error> ,ignore_error: Boolean){}
184
+ // pub fn pn_find(pth: MaybeString ,ignore_error: Boolean){}
133
185
 
134
- pub fn pn_has_trailing_separator(pth: Result<ruru::RString, ruru::result::Error>) -> Boolean {
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: Result<ruru::RString, ruru::result::Error>) -> NilClass {
198
+ // pub fn pn_mkpath(pth: MaybeString) -> NilClass {
147
199
  // NilClass::new()
148
200
  // }
149
201
 
150
- // pub fn pn_is_mountpoint(pth: Result<ruru::RString, ruru::result::Error>){}
202
+ // pub fn pn_is_mountpoint(pth: MaybeString){}
151
203
 
152
- // pub fn pn_parent(pth: Result<ruru::RString, ruru::result::Error>){}
204
+ // pub fn pn_parent(pth: MaybeString){}
153
205
 
154
206
  // also need impl +
155
- pub fn pn_plus(pth1: Result<ruru::RString, ruru::result::Error>, pth2: Result<ruru::RString, ruru::result::Error>) -> RString {
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: Result<ruru::RString, ruru::result::Error>, relpath: Result<ruru::RString, ruru::result::Error>){}
211
+ // pub fn pn_prepend_prefix(prefix: MaybeString, relpath: MaybeString){}
160
212
 
161
- pub fn pn_is_relative(pth: Result<ruru::RString, ruru::result::Error>) -> Boolean {
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: Result<ruru::RString, ruru::result::Error>){}
222
+ // pub fn pn_root(pth: MaybeString){}
171
223
 
172
- // pub fn pn_split_names(pth: Result<ruru::RString, ruru::result::Error>){}
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: Result<ruru::RString, ruru::result::Error>) -> NilClass {
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.1
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-13 00:00:00.000000000 Z
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: method_source
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.8.2
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.8.2
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