pathutil 0.4.2 → 0.6.0

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: 2f764aa49d17400ee6d3e613e2d4402dc7ff69de
4
- data.tar.gz: d362e2e9d92234bc1bc7dd7b32ee01d69de5b99d
3
+ metadata.gz: e0379be022c3075e3a84b161087c637460dadf4d
4
+ data.tar.gz: 835f3036a786ac0096522886b66f11d9b5584e66
5
5
  SHA512:
6
- metadata.gz: fba4041a94c1abf33246e417ad6fe5361aaf8dddcdaf44eda11468e539e35a62c8e85b4a01e5ffd9665353f4ea3f0b10576bd8ecb23ade4db3099d9c9f6e15b3
7
- data.tar.gz: af0114a98b2b63b3dcedcb74fae2e7610b659abf57e1aac225145d951e7c6d281363bb242d3b6f6e3aa50cfc3117bf82642a421fd8631b03a6e6224283572eb9
6
+ metadata.gz: f2e6321fbcbb23807bc9de1a166c20a3566d481c39240ae48aa6d898834f8d17aeefd206e624061ea0a2d514ad3b688374b9b566c4c348b1dfa9f5a67384c6c0
7
+ data.tar.gz: be5897bdcdf38edf0494f4dadb9963345c33cb40aa10f73807861702d593660afa74b7352169695ec6e68e6ecf3ee4bee6aedef674524fca80bc33c12a55eef8
data/Gemfile CHANGED
@@ -1,12 +1,15 @@
1
+ # ----------------------------------------------------------------------------
1
2
  # Frozen-string-literal: true
2
3
  # Copyright: 2015-2016 Jordon Bedwell - MIT License
3
4
  # Encoding: utf-8
5
+ # ----------------------------------------------------------------------------
4
6
 
5
7
  source "https://rubygems.org"
6
8
  gem "rake", :require => false
7
9
  gemspec
8
10
 
9
11
  group :test do
12
+ gem "luna-rspec-formatters", :require => false
10
13
  gem "codeclimate-test-reporter", :require => false
11
14
  gem "safe_yaml", :require => false
12
15
  end
@@ -16,7 +19,6 @@ group :development do
16
19
  gem "rspec-helpers", :require => false
17
20
  gem "luna-rubocop-formatters", :require => false
18
21
  gem "rubocop", :github => "bbatsov/rubocop", :require => false
19
- gem "luna-rspec-formatters", :require => false
20
22
  gem "benchmark-ips", :require => false
21
23
  gem "simple-ansi", :require => false
22
24
  gem "pry", :require => false
data/Rakefile CHANGED
@@ -1,18 +1,25 @@
1
+ # ----------------------------------------------------------------------------
1
2
  # Frozen-string-literal: true
2
3
  # Copyright: 2015-2016 Jordon Bedwell - MIT License
3
4
  # Encoding: utf-8
5
+ # ----------------------------------------------------------------------------
4
6
 
5
7
  require "open3"
6
8
  require "rspec/core/rake_task"
7
9
  require_relative "benchmark/support/task"
10
+ require "luna/rubocop/rake/task"
8
11
  require "simple/ansi"
9
12
  require "pathutil"
10
13
  require "json"
11
14
 
15
+ # ----------------------------------------------------------------------------
16
+
12
17
  task :default => [
13
18
  ENV["BENCHMARK"] ? :benchmark : :spec
14
19
  ]
15
20
 
21
+ # ----------------------------------------------------------------------------
22
+
16
23
  BenchmarkTask.new :benchmark
17
24
  RSpec::Core::RakeTask.new :spec
18
25
  task :test => :spec
@@ -74,10 +81,3 @@ task :methods do
74
81
 
75
82
  $stdout.puts
76
83
  end
77
-
78
- # ----------------------------------------------------------------------------
79
-
80
- task :rubocop do
81
- sh "bundle", "exec", "rubocop", "-DE", "-r", "luna/rubocop/formatters/checks", \
82
- "-f", "Luna::RuboCop::Formatters::Checks"
83
- end
data/lib/pathutil.rb CHANGED
@@ -8,13 +8,13 @@ require "pathutil/helpers"
8
8
  require "forwardable/extended"
9
9
  require "find"
10
10
 
11
- #
12
-
13
11
  class Pathutil
14
12
  attr_writer :encoding
15
13
  extend Forwardable::Extended
16
14
  extend Helpers
17
15
 
16
+ # --------------------------------------------------------------------------
17
+ # Note: A lot of this class can be compatible with Pathname.
18
18
  # --------------------------------------------------------------------------
19
19
 
20
20
  def initialize(path)
@@ -24,15 +24,9 @@ class Pathutil
24
24
  end
25
25
 
26
26
  # --------------------------------------------------------------------------
27
+ # Note: It will return all results that it finds across all ascending paths.
28
+ # Example: Pathutil.new("~/").expand_path.search_backwards(".bashrc") => [#<Pathutil:/home/user/.bashrc>]
27
29
  # Search backwards for a file (like Rakefile, _config.yml, opts.yml).
28
- # @note It will return all results that it finds across all ascending paths.
29
- # @param backwards how far do you wish to search backwards in that path?
30
- # @param file the file you are searching for.
31
- #
32
- # @example
33
- # Pathutil.new("~/").expand_path.search_backwards(".bashrc") => [
34
- # #<Pathutil:/home/user/.bashrc>
35
- # ]
36
30
  # --------------------------------------------------------------------------
37
31
 
38
32
  def search_backwards(file, backwards: Float::INFINITY)
@@ -64,6 +58,9 @@ class Pathutil
64
58
  ary
65
59
  end
66
60
 
61
+ # --------------------------------------------------------------------------
62
+ # See: self.class.load_yaml as this a direct alias of that method.
63
+ # Read the file as a YAML file turning it into an object.
67
64
  # --------------------------------------------------------------------------
68
65
 
69
66
  def read_yaml(throw_missing: false, **kwd)
@@ -77,6 +74,9 @@ class Pathutil
77
74
  )
78
75
  end
79
76
 
77
+ # --------------------------------------------------------------------------
78
+ # See: self.class.read_json as this is a direct alias of that method.
79
+ # Read the file as a JSON file turning it into an object.
80
80
  # --------------------------------------------------------------------------
81
81
 
82
82
  def read_json(throw_missing: false)
@@ -91,13 +91,9 @@ class Pathutil
91
91
  end
92
92
 
93
93
  # --------------------------------------------------------------------------
94
+ # Note: The blank part is intentionally left there so that you can rejoin.
94
95
  # Splits the path into all parts so that you can do step by step comparisons
95
- # @note The blank part is intentionally left there so that you can rejoin.
96
- #
97
- # @example
98
- # Pathutil.new("/my/path").split_path # => [
99
- # "", "my", "path"
100
- # ]
96
+ # Example: Pathutil.new("/my/path").split_path # => ["", "my", "path"]
101
97
  # --------------------------------------------------------------------------
102
98
 
103
99
  def split_path
@@ -107,10 +103,8 @@ class Pathutil
107
103
  end
108
104
 
109
105
  # --------------------------------------------------------------------------
110
- # @see `String#==` for more details.
111
106
  # A stricter version of `==` that also makes sure the object matches.
112
- # @param [Pathutil] other the comparee.
113
- # @return true, false
107
+ # See: `String#==` for more details.
114
108
  # --------------------------------------------------------------------------
115
109
 
116
110
  def ===(other)
@@ -118,11 +112,9 @@ class Pathutil
118
112
  end
119
113
 
120
114
  # --------------------------------------------------------------------------
121
- # @example Pathutil.new("/hello") >= Pathutil.new("/") # => true
122
- # @example Pathutil.new("/hello") >= Pathutil.new("/hello") # => true
123
115
  # Checks to see if a path falls within a path and deeper or is the other.
124
- # @param path the path that should be above the object.
125
- # @return true, false
116
+ # Example: Pathutil.new("/hello") >= Pathutil.new("/hello") # => true
117
+ # Example: Pathutil.new("/hello") >= Pathutil.new("/") # => true
126
118
  # --------------------------------------------------------------------------
127
119
 
128
120
  def >=(other)
@@ -132,10 +124,8 @@ class Pathutil
132
124
  end
133
125
 
134
126
  # --------------------------------------------------------------------------
135
- # @example Pathutil.new("/hello/world") > Pathutil.new("/hello") # => true
136
127
  # Strictly checks to see if a path is deeper but within the path of the other.
137
- # @param path the path that should be above the object.
138
- # @return true, false
128
+ # Example: Pathutil.new("/hello/world") > Pathutil.new("/hello") # => true
139
129
  # --------------------------------------------------------------------------
140
130
 
141
131
  def >(other)
@@ -145,10 +135,8 @@ class Pathutil
145
135
  end
146
136
 
147
137
  # --------------------------------------------------------------------------
148
- # @example Pathutil.new("/") < Pathutil.new("/hello") # => true
149
138
  # Strictly check to see if a path is behind other path but within it.
150
- # @param path the path that should be below the object.
151
- # @return true, false
139
+ # Example: Pathutil.new("/") < Pathutil.new("/hello") # => true
152
140
  # --------------------------------------------------------------------------
153
141
 
154
142
  def <(other)
@@ -158,11 +146,9 @@ class Pathutil
158
146
  end
159
147
 
160
148
  # --------------------------------------------------------------------------
161
- # Check to see if a path is behind the other path butt within it.
162
- # @example Pathutil.new("/hello") < Pathutil.new("/hello") # => true
163
- # @example Pathutil.new("/") < Pathutil.new("/hello") # => true
164
- # @param path the path that should be below the object.
165
- # @return true, false
149
+ # Check to see if a path is behind the other path but within it.
150
+ # Example: Pathutil.new("/hello") < Pathutil.new("/hello") # => true
151
+ # Example: Pathutil.new("/") < Pathutil.new("/hello") # => true
166
152
  # --------------------------------------------------------------------------
167
153
 
168
154
  def <=(other)
@@ -172,9 +158,8 @@ class Pathutil
172
158
  end
173
159
 
174
160
  # --------------------------------------------------------------------------
175
- # @note "./" is considered relative.
176
161
  # Check to see if the path is absolute, as in: starts with "/"
177
- # @return true, false
162
+ # Note: "./" is considered relative.
178
163
  # --------------------------------------------------------------------------
179
164
 
180
165
  def absolute?
@@ -183,21 +168,8 @@ class Pathutil
183
168
 
184
169
  # --------------------------------------------------------------------------
185
170
  # Break apart the path and yield each with the previous parts.
186
- # @return Enumerator if no block is given.
187
- #
188
- # @example
189
- # Pathutil.new("/hello/world").ascend.to_a # => [
190
- # "/", "/hello", "/hello/world"
191
- # ]
192
- #
193
- # @example
194
- # Pathutil.new("/hello/world").ascend do |path|
195
- # $stdout.puts path
196
- # end
197
- #
198
- # /
199
- # /hello
200
- # /hello/world
171
+ # Example: Pathutil.new("/hello/world").ascend.to_a # => ["/", "/hello", "/hello/world"]
172
+ # Example: Pathutil.new("/hello/world").ascend { |path| $stdout.puts path }
201
173
  # --------------------------------------------------------------------------
202
174
 
203
175
  def ascend
@@ -225,21 +197,8 @@ class Pathutil
225
197
 
226
198
  # --------------------------------------------------------------------------
227
199
  # Break apart the path in reverse order and descend into the path.
228
- # @return Enumerator if no block is given.
229
- #
230
- # @example
231
- # Pathutil.new("/hello/world").descend.to_a # => [
232
- # "/hello/world", "/hello", "/"
233
- # ]
234
- #
235
- # @example
236
- # Pathutil.new("/hello/world").descend do |path|
237
- # $stdout.puts path
238
- # end
239
- #
240
- # /hello/world
241
- # /hello
242
- # /
200
+ # Example: Pathutil.new("/hello/world").descend.to_a # => ["/hello/world", "/hello", "/"]
201
+ # Example: Pathutil.new("/hello/world").descend { |path| $stdout.puts path }
243
202
  # --------------------------------------------------------------------------
244
203
 
245
204
  def descend
@@ -257,15 +216,8 @@ class Pathutil
257
216
  end
258
217
 
259
218
  # --------------------------------------------------------------------------
219
+ # Example: Pathutil.new("/hello/world").each_line { |line| $stdout.puts line }
260
220
  # Wraps `readlines` and allows you to yield on the result.
261
- #
262
- # @example
263
- # Pathutil.new("/hello/world").each_line do |line|
264
- # $stdout.puts line
265
- # end
266
- #
267
- # Hello
268
- # World
269
221
  # --------------------------------------------------------------------------
270
222
 
271
223
  def each_line
@@ -278,12 +230,10 @@ class Pathutil
278
230
  end
279
231
 
280
232
  # --------------------------------------------------------------------------
281
- # @see `File#fnmatch` for more information.
233
+ # Example: Pathutil.new("/hello").fnmatch?("/hello") # => true
282
234
  # Unlike traditional `fnmatch`, with this one `Regexp` is allowed.
283
- # @param [String, Regexp] matcher the matcher used, can be a `Regexp`
284
- # @example Pathutil.new("/hello").fnmatch?("/hello") # => true
285
- # @example Pathutil.new("/hello").fnmatch?(/h/) # => true
286
- # @return true, false
235
+ # Example: Pathutil.new("/hello").fnmatch?(/h/) # => true
236
+ # See: `File#fnmatch` for more information.
287
237
  # --------------------------------------------------------------------------
288
238
 
289
239
  def fnmatch?(matcher)
@@ -293,7 +243,6 @@ class Pathutil
293
243
 
294
244
  # --------------------------------------------------------------------------
295
245
  # Allows you to quickly determine if the file is the root folder.
296
- # @return true, false
297
246
  # --------------------------------------------------------------------------
298
247
 
299
248
  def root?
@@ -301,9 +250,7 @@ class Pathutil
301
250
  end
302
251
 
303
252
  # --------------------------------------------------------------------------
304
- # @param [Pathutil, String] path the reference.
305
253
  # Allows you to check if the current path is in the path you want.
306
- # @return true, false
307
254
  # --------------------------------------------------------------------------
308
255
 
309
256
  def in_path?(path)
@@ -321,7 +268,6 @@ class Pathutil
321
268
 
322
269
  # --------------------------------------------------------------------------
323
270
  # Grab all of the children from the current directory, including hidden.
324
- # @return Array<Pathutils>
325
271
  # --------------------------------------------------------------------------
326
272
 
327
273
  def children
@@ -343,11 +289,8 @@ class Pathutil
343
289
  end
344
290
 
345
291
  # --------------------------------------------------------------------------
346
- # @see `File::Constants` for a list of flags.
347
- # Allows you to glob however you wish to glob in the current `Pathutils`
348
- # @param [String] flags the flags you want to ship to the glob.
349
- # @param [String] pattern the pattern A.K.A: "**/*"
350
- # @return Enumerator unless a block is given.
292
+ # Allows you to glob however you wish to glob in the current `Pathutil`
293
+ # See: `File::Constants` for a list of flags.
351
294
  # --------------------------------------------------------------------------
352
295
 
353
296
  def glob(pattern, flags = 0)
@@ -369,9 +312,8 @@ class Pathutil
369
312
  end
370
313
 
371
314
  # --------------------------------------------------------------------------
372
- # @note you do not need to ship a block at all.
373
315
  # Move to the current directory temporarily (or for good) and do work son.
374
- # @return 0, 1 if no block given
316
+ # Note: you do not need to ship a block at all.
375
317
  # --------------------------------------------------------------------------
376
318
 
377
319
  def chdir
@@ -388,9 +330,7 @@ class Pathutil
388
330
  end
389
331
 
390
332
  # --------------------------------------------------------------------------
391
- # @return Enumerator if no block is given.
392
333
  # Find all files without care and yield the given block.
393
- # @see Find.find
394
334
  # --------------------------------------------------------------------------
395
335
 
396
336
  def find
@@ -402,7 +342,6 @@ class Pathutil
402
342
 
403
343
  # --------------------------------------------------------------------------
404
344
  # Splits the path returning each part (filename) back to you.
405
- # @return Enumerator if no block is given.
406
345
  # --------------------------------------------------------------------------
407
346
 
408
347
  def each_filename
@@ -412,6 +351,9 @@ class Pathutil
412
351
  end
413
352
  end
414
353
 
354
+ # --------------------------------------------------------------------------
355
+ # Note: This will simply return self if "/".
356
+ # Get the parent of the current path.
415
357
  # --------------------------------------------------------------------------
416
358
 
417
359
  def parent
@@ -423,7 +365,6 @@ class Pathutil
423
365
 
424
366
  # --------------------------------------------------------------------------
425
367
  # Split the file into its dirname and basename, so you can do stuff.
426
- # @return File.dirname, File.basename
427
368
  # --------------------------------------------------------------------------
428
369
 
429
370
  def split
@@ -434,6 +375,7 @@ class Pathutil
434
375
 
435
376
  # --------------------------------------------------------------------------
436
377
  # Replace a files extension with your given extension.
378
+ # Note: Your extension should start with "."
437
379
  # --------------------------------------------------------------------------
438
380
 
439
381
  def sub_ext(ext)
@@ -442,20 +384,18 @@ class Pathutil
442
384
 
443
385
  # --------------------------------------------------------------------------
444
386
  # A less complex version of `relative_path_from` that simply uses a
445
- # `Regexp` and returns the full path if it cannot be relatively determined.
446
- # @return Pathutils the relative path if it can be determined or is relative.
447
- # @return Pathutils the full path if relative path cannot be determined
387
+ # `Regexp` and returns the full path if it cannot be determined.
448
388
  # --------------------------------------------------------------------------
449
389
 
450
390
  def relative_path_from(from)
451
391
  from = self.class.new(from).expand_path.gsub(%r!/$!, "")
452
- self.class.new(expand_path.gsub(%r!^#{from.regexp_escape}/!, ""))
392
+ self.class.new(expand_path.gsub(%r!^#{
393
+ from.regexp_escape
394
+ }/!, ""))
453
395
  end
454
396
 
455
397
  # --------------------------------------------------------------------------
456
398
  # Expands the path and left joins the root to the path.
457
- # @param [String, Pathutil] root the root you wish to enforce on it.
458
- # @return Pathutil the enforced path with given root.
459
399
  # --------------------------------------------------------------------------
460
400
 
461
401
  def enforce_root(root)
@@ -472,19 +412,28 @@ class Pathutil
472
412
 
473
413
  # --------------------------------------------------------------------------
474
414
  # Copy a directory, allowing symlinks if the link falls inside of the root.
415
+ # This is indented for people who wish some safety to their copies.
475
416
  # --------------------------------------------------------------------------
476
417
 
477
418
  def safe_copy(to, root: nil)
478
419
  raise ArgumentError, "must give a root" unless root
479
- to = self.class.new(to)
480
-
481
420
  root = self.class.new(root)
482
- return safe_copy_directory(to, :root => root) if directory?
483
- safe_copy_file(to, :root => root)
421
+ to = self.class.new(to)
422
+
423
+ if directory?
424
+ safe_copy_directory(to, {
425
+ :root => root
426
+ })
427
+
428
+ else
429
+ safe_copy_file(to, {
430
+ :root => root
431
+ })
432
+ end
484
433
  end
485
434
 
486
435
  # --------------------------------------------------------------------------
487
- # @see `self.class.normalize` as this is an alias.
436
+ # See: `self.class.normalize` as this is an alias.
488
437
  # --------------------------------------------------------------------------
489
438
 
490
439
  def normalize
@@ -494,7 +443,7 @@ class Pathutil
494
443
  end
495
444
 
496
445
  # --------------------------------------------------------------------------
497
- # @see `self.class.encoding` as this is an alias.
446
+ # See: `self.class.encoding` as this is an alias.
498
447
  # --------------------------------------------------------------------------
499
448
 
500
449
  def encoding
@@ -505,6 +454,7 @@ class Pathutil
505
454
 
506
455
  # --------------------------------------------------------------------------
507
456
  # Read took two steroid shots: it can normalize your string, and encode.
457
+ # Note: You can set the default encodings via the class.
508
458
  # --------------------------------------------------------------------------
509
459
 
510
460
  def read(*args, **kwd)
@@ -524,6 +474,7 @@ class Pathutil
524
474
 
525
475
  # --------------------------------------------------------------------------
526
476
  # Binread took two steroid shots: it can normalize your string, and encode.
477
+ # Note: You can set the default encodings via the class.
527
478
  # --------------------------------------------------------------------------
528
479
 
529
480
  def binread(*args, **kwd)
@@ -543,6 +494,7 @@ class Pathutil
543
494
 
544
495
  # --------------------------------------------------------------------------
545
496
  # Readlines took two steroid shots: it can normalize your string, and encode.
497
+ # Note: You can set the default encodings via the class.
546
498
  # --------------------------------------------------------------------------
547
499
 
548
500
  def readlines(*args, **kwd)
@@ -562,6 +514,7 @@ class Pathutil
562
514
 
563
515
  # --------------------------------------------------------------------------
564
516
  # Write took two steroid shots: it can normalize your string, and encode.
517
+ # Note: You can set the default encodings via the class.
565
518
  # --------------------------------------------------------------------------
566
519
 
567
520
  def write(data, *args, **kwd)
@@ -581,6 +534,7 @@ class Pathutil
581
534
 
582
535
  # --------------------------------------------------------------------------
583
536
  # Binwrite took two steroid shots: it can normalize your string, and encode.
537
+ # Note: You can set the default encodings via the class.
584
538
  # --------------------------------------------------------------------------
585
539
 
586
540
  def binwrite(data, *args, **kwd)
@@ -599,7 +553,7 @@ class Pathutil
599
553
  end
600
554
 
601
555
  # --------------------------------------------------------------------------
602
- # @api returns the current objects expanded path and their expanded path.
556
+ # Expand the paths and return.
603
557
  # --------------------------------------------------------------------------
604
558
 
605
559
  private
@@ -607,6 +561,8 @@ class Pathutil
607
561
  return expand_path, self.class.new(path).expand_path
608
562
  end
609
563
 
564
+ # --------------------------------------------------------------------------
565
+ # Safely copy a file.
610
566
  # --------------------------------------------------------------------------
611
567
 
612
568
  private
@@ -617,6 +573,8 @@ class Pathutil
617
573
  })
618
574
  end
619
575
 
576
+ # --------------------------------------------------------------------------
577
+ # Safely copy a directory and it's sub-files.
620
578
  # --------------------------------------------------------------------------
621
579
 
622
580
  private
@@ -649,13 +607,12 @@ class Pathutil
649
607
  end
650
608
  end
651
609
 
652
- # --------------------------------------------------------------------------
653
-
654
610
  class << self
655
611
  attr_writer :encoding
656
612
 
657
613
  # ------------------------------------------------------------------------
658
614
  # Get the current directory that Ruby knows about.
615
+ # Note: We do nothing special here.
659
616
  # ------------------------------------------------------------------------
660
617
 
661
618
  def pwd
@@ -668,9 +625,9 @@ class Pathutil
668
625
  alias cwd pwd
669
626
 
670
627
  # ------------------------------------------------------------------------
628
+ # Note: you are encouraged to override this if you need to.
671
629
  # Aliases the default system encoding to us so that we can do most read
672
630
  # and write operations with that encoding, instead of being crazy.
673
- # @note you are encouraged to override this if you need to.
674
631
  # ------------------------------------------------------------------------
675
632
 
676
633
  def encoding
@@ -680,8 +637,8 @@ class Pathutil
680
637
  end
681
638
 
682
639
  # ------------------------------------------------------------------------
683
- # Normalize CRLF -> LF on Windows reads, to ease your troubles.
684
- # Normalize LF -> CLRF on Windows write, to ease their troubles.
640
+ # Normalize CRLF -> LF on Windows reads, to ease your troubles.
641
+ # Normalize LF -> CLRF on Windows write, to ease your troubles.
685
642
  # ------------------------------------------------------------------------
686
643
 
687
644
  def normalize
@@ -691,6 +648,10 @@ class Pathutil
691
648
  }
692
649
  end
693
650
 
651
+ # ------------------------------------------------------------------------
652
+ # Make a temporary directory.
653
+ # Note: if you adruptly exit it will not remove the dir.
654
+ # Note: this directory is removed on exit.
694
655
  # ------------------------------------------------------------------------
695
656
 
696
657
  def tmpdir(*args)
@@ -702,6 +663,10 @@ class Pathutil
702
663
  rtn
703
664
  end
704
665
 
666
+ # ------------------------------------------------------------------------
667
+ # Make a temporary file.
668
+ # Note: if you adruptly exit it will not remove the dir.
669
+ # Note: this file is removed on exit.
705
670
  # ------------------------------------------------------------------------
706
671
 
707
672
  def tmpfile(*args)
@@ -812,8 +777,6 @@ class Pathutil
812
777
  rb_delegate :shellescape, :to => :Shellwords, :args => :@path
813
778
  rb_delegate :mkdir, :to => :Dir, :args => :@path
814
779
 
815
- # --------------------------------------------------------------------------
816
- # alias last basename, alias first dirname, alias ext extname
817
780
  # --------------------------------------------------------------------------
818
781
 
819
782
  alias + join
@@ -4,7 +4,7 @@ class Pathutil
4
4
 
5
5
  # ------------------------------------------------------------------------
6
6
  # Wraps around YAML and SafeYAML to provide alternatives to Rubies.
7
- # @note We default aliases to yes so we can detect if you explicit true.
7
+ # Note: We default aliases to yes so we can detect if you explicit true.
8
8
  # ------------------------------------------------------------------------
9
9
 
10
10
  def load_yaml(data, safe: true, whitelist_classes: [], whitelist_symbols: [], aliases: :yes)
@@ -32,6 +32,8 @@ class Pathutil
32
32
  end
33
33
  end
34
34
 
35
+ # ------------------------------------------------------------------------
36
+ # Make a temporary name suitable for temporary files and directories.
35
37
  # ------------------------------------------------------------------------
36
38
 
37
39
  def make_tmpname(prefix = "", suffix = nil, root = nil)
@@ -46,6 +48,7 @@ class Pathutil
46
48
 
47
49
  # ------------------------------------------------------------------------
48
50
 
51
+ private
49
52
  def tmpname_suffix(suffix)
50
53
  suffix = suffix.join("-") if suffix.is_a?(Array)
51
54
  suffix = suffix.gsub(/\A\-/, "") unless !suffix || suffix.empty?
@@ -53,6 +56,7 @@ class Pathutil
53
56
  end
54
57
 
55
58
  # ------------------------------------------------------------------------
59
+ # Cleanup the temp name prefix, joining if necessary.
56
60
  # rubocop:disable Style/ParallelAssignment
57
61
  # ------------------------------------------------------------------------
58
62
 
@@ -73,6 +77,7 @@ class Pathutil
73
77
  end
74
78
 
75
79
  # ------------------------------------------------------------------------
80
+ # Wrap around, cleanup, deprecate and use SafeYAML.
76
81
  # rubocop:enable Style/ParallelAssignment
77
82
  # ------------------------------------------------------------------------
78
83
 
@@ -5,5 +5,5 @@
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
7
  class Pathutil
8
- VERSION = "0.4.2"
8
+ VERSION = "0.6.0"
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pathutil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordon Bedwell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-05 00:00:00.000000000 Z
11
+ date: 2016-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: forwardable-extended
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.4'
19
+ version: '2.5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.4'
26
+ version: '2.5'
27
27
  description: Like Pathname but a little less insane.
28
28
  email:
29
29
  - jordon@envygeeks.io
@@ -57,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  version: '0'
58
58
  requirements: []
59
59
  rubyforge_project:
60
- rubygems_version: 2.5.1
60
+ rubygems_version: 2.6.2
61
61
  signing_key:
62
62
  specification_version: 4
63
63
  summary: Almost like Pathname but just a little less insane.