nrename 0.0.2 → 0.1.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.
@@ -0,0 +1,22 @@
1
+ (The MIT License)
2
+
3
+ Copyright (c) 2012 Victor Deryagin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ 'Software'), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,55 @@
1
+ [![Build Status](https://secure.travis-ci.org/vderyagin/nrename.png)](http://travis-ci.org/vderyagin/nrename)
2
+ [![Dependency Status](https://gemnasium.com/vderyagin/nrename.png)](https://gemnasium.com/vderyagin/nrename)
3
+
4
+ # Nrename
5
+
6
+ Command-line utility for renaming numbered files.
7
+
8
+ ## Installation ##
9
+
10
+ ```
11
+ gem install nrename
12
+ ```
13
+
14
+ ## Description ##
15
+
16
+
17
+ When you have a set of files like:
18
+
19
+ ```
20
+ 1.txt
21
+ 2.txt
22
+ 10.txt
23
+ 11.txt
24
+ 99.txt
25
+ 100.txt
26
+ ```
27
+
28
+ it's hard to get a list of them in order (from `1.txt` to `100.txt`). Shell of
29
+ file manager will usually sort them starting from first symbol in filename,
30
+ like this:
31
+
32
+ ```
33
+ 1.txt
34
+ 10.txt
35
+ 100.txt
36
+ 11.txt
37
+ 2.txt
38
+ 99.txt
39
+ ```
40
+
41
+ Nrename lets you rename such files so that they have equal number of digits in
42
+ names:
43
+
44
+ ```
45
+ 001.txt
46
+ 002.txt
47
+ 010.txt
48
+ 011.txt
49
+ 099.txt
50
+ 100.txt
51
+ ```
52
+
53
+ ## Usage ##
54
+
55
+ See `nrename --help`
@@ -8,6 +8,11 @@ Feature: Options processing
8
8
  Then the exit status should be 0
9
9
  And the stdout should contain "Usage: nrename "
10
10
 
11
+ Scenario: Displaying help when run without options
12
+ When I run `nrename`
13
+ Then the exit status should be 0
14
+ And the stdout should contain "Usage: nrename "
15
+
11
16
  Scenario: Displaying help when run without any options
12
17
  When I run `nrename`
13
18
  Then the exit status should be 0
@@ -16,7 +21,7 @@ Feature: Options processing
16
21
  Scenario: Displaying version
17
22
  When I run `nrename --version`
18
23
  Then the exit status should be 0
19
- And the stdout should match /^(\d+)\.\g'1'\.\g'1'$/
24
+ And the stdout should match /^(\d+)\.(\d+)\.(\d+)$/
20
25
 
21
26
  Scenario: Passing valid directory name
22
27
  Given a directory named "foo_bar"
@@ -39,8 +39,9 @@ Feature: Renaming files
39
39
  | 10.txt |
40
40
  | 0023.txt |
41
41
  When I cd to "dir"
42
- When I run `nrename`
42
+ When I run `nrename .`
43
43
  Then the exit status should be 0
44
+ And the stderr should contain "No renaming is done. Run with -X option to perform actual changes."
44
45
  And the following files should exist:
45
46
  | 1.txt |
46
47
  | 10.txt |
@@ -19,6 +19,10 @@ Then(/^the following files should exist inside directory "([^"]*)":$/) do |direc
19
19
  end
20
20
  end
21
21
 
22
+ Before do
23
+ @aruba_timeout_seconds = 10 # account for slow JVM startup
24
+ end
25
+
22
26
  After do
23
27
  FileUtils.rm_rf File.expand_path('../../../tmp', __FILE__)
24
28
  end
@@ -1,4 +1,5 @@
1
- $:.push File.expand_path(File.dirname __FILE__)
1
+ libdir = File.expand_path(File.dirname __FILE__)
2
+ $:.push libdir unless $:.include? libdir
2
3
 
3
4
  require 'nrename/version'
4
5
  require 'nrename/directory'
@@ -13,8 +14,6 @@ module Nrename
13
14
  def self.run(args=[])
14
15
  @options = Options.parse args
15
16
 
16
- options.dirs
17
- .map { |dir| Directory.new dir }
18
- .each &:normalize
17
+ options.dirs.map { |dir| Directory.new dir }.each &:normalize
19
18
  end
20
19
  end
@@ -15,9 +15,9 @@ module Nrename
15
15
  end
16
16
 
17
17
  def numbered_files
18
- @numbered_files ||= @dir.children
19
- .reject(&:directory?)
20
- .select { |file| file.basename.to_s =~ @pattern }
18
+ @numbered_files ||= @dir.children.select { |file|
19
+ !file.directory? && file.basename.to_s =~ @pattern
20
+ }
21
21
  end
22
22
 
23
23
  def num_field_length
@@ -63,6 +63,12 @@ module Nrename
63
63
  end
64
64
  end.parse!(args)
65
65
 
66
+ if !options.execute && executable_name == 'nrename'
67
+ at_exit do
68
+ warn 'No renaming is done. Run with -X option to perform actual changes.'
69
+ end
70
+ end
71
+
66
72
  args.each do |arg|
67
73
  dir = File.expand_path arg
68
74
  if File.directory? dir
@@ -1,3 +1,3 @@
1
1
  module Nrename
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -85,7 +85,7 @@ describe Nrename::Directory do
85
85
 
86
86
  describe '#normalize' do
87
87
  before do
88
- Nrename.options.stub execute: true, verbose: false
88
+ Nrename.options.stub :execute => true, :verbose => false
89
89
  end
90
90
 
91
91
  it 'renames files so than they can be sorted properly' do
@@ -106,16 +106,16 @@ describe Nrename::Directory do
106
106
  it 'returns normalized name for file' do
107
107
  dir = Nrename::Directory.new test_dir
108
108
  file = Pathname.new(test_dir) + 'b1.txt'
109
- dir.stub num_field_length: 4
109
+ dir.stub :num_field_length => 4
110
110
  new_name = dir.normalized_name_for(file).basename.to_s
111
111
  new_name.should be == 'b0001.txt'
112
112
  end
113
113
 
114
114
  it 'returns bare number if numbers_only options is provided' do
115
- Nrename.options.stub numbers_only: true
115
+ Nrename.options.stub :numbers_only => true
116
116
  dir = Nrename::Directory.new test_dir
117
117
  file = Pathname.new(test_dir) + 'b1.txt'
118
- dir.stub num_field_length: 4
118
+ dir.stub :num_field_length => 4
119
119
  new_name = dir.normalized_name_for(file).basename.to_s
120
120
  new_name.should be == '0001.txt'
121
121
  end
@@ -140,7 +140,7 @@ describe Nrename::Directory do
140
140
  end
141
141
 
142
142
  dir = Nrename::Directory.new test_dir
143
- dir.stub num_field_length: 6
143
+ dir.stub :num_field_length => 6
144
144
  file = dir.numbered_files.first
145
145
  dir.adjusted_number_string_for(file).should be == '000032'
146
146
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nrename
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,31 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-06 00:00:00.000000000 Z
12
+ date: 2012-02-13 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &72697810 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.9.2
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *72697810
14
25
  - !ruby/object:Gem::Dependency
15
26
  name: rspec
16
- requirement: &74275200 !ruby/object:Gem::Requirement
27
+ requirement: &72697580 !ruby/object:Gem::Requirement
17
28
  none: false
18
29
  requirements:
19
- - - ! '>='
30
+ - - ~>
20
31
  - !ruby/object:Gem::Version
21
- version: '0'
32
+ version: 2.8.0
22
33
  type: :development
23
34
  prerelease: false
24
- version_requirements: *74275200
35
+ version_requirements: *72697580
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: aruba
27
- requirement: &74274990 !ruby/object:Gem::Requirement
38
+ requirement: &72697350 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
- - - ! '>='
41
+ - - ~>
31
42
  - !ruby/object:Gem::Version
32
- version: '0'
43
+ version: 0.4.11
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *74274990
36
- description: ''
46
+ version_requirements: *72697350
47
+ description: Nrename lets you rename set of numbered files so that they can be sorted
48
+ correctly in any shell or file manager.
37
49
  email:
38
50
  - vderyagin@gmail.com
39
51
  executables:
@@ -41,19 +53,22 @@ executables:
41
53
  extensions: []
42
54
  extra_rdoc_files: []
43
55
  files:
56
+ - MIT-LICENSE
57
+ - README.md
44
58
  - bin/nrename
59
+ - features/options_processing.feature
60
+ - features/renaming_files.feature
61
+ - features/support/env.rb
62
+ - lib/nrename.rb
63
+ - lib/nrename/directory.rb
45
64
  - lib/nrename/options.rb
46
65
  - lib/nrename/version.rb
47
- - lib/nrename/directory.rb
48
- - lib/nrename.rb
49
- - spec/spec_helper.rb
50
- - spec/nrename/options_spec.rb
51
66
  - spec/nrename/directory_spec.rb
52
- - features/renaming_files.feature
53
- - features/support/env.rb
54
- - features/options_processing.feature
55
- homepage: ''
56
- licenses: []
67
+ - spec/nrename/options_spec.rb
68
+ - spec/spec_helper.rb
69
+ homepage: https://github.com/vderyagin/nrename
70
+ licenses:
71
+ - MIT
57
72
  post_install_message:
58
73
  rdoc_options: []
59
74
  require_paths:
@@ -69,18 +84,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
84
  requirements:
70
85
  - - ! '>='
71
86
  - !ruby/object:Gem::Version
72
- version: '0'
87
+ version: 1.3.6
73
88
  requirements: []
74
89
  rubyforge_project: nrename
75
90
  rubygems_version: 1.8.10
76
91
  signing_key:
77
92
  specification_version: 3
78
- summary: ''
79
- test_files:
80
- - spec/spec_helper.rb
81
- - spec/nrename/options_spec.rb
82
- - spec/nrename/directory_spec.rb
83
- - features/renaming_files.feature
84
- - features/support/env.rb
85
- - features/options_processing.feature
93
+ summary: Command-line utility for renaming numbered files.
94
+ test_files: []
86
95
  has_rdoc: