ebook_renamer 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +57 -36
- data/Rakefile +0 -10
- data/bin/ebook_renamer +1 -5
- data/ebook_renamer.gemspec +2 -1
- data/lib/ebook_renamer.rb +6 -128
- data/lib/ebook_renamer/cli.rb +103 -0
- data/lib/ebook_renamer/core_ext/hash.rb +20 -0
- data/lib/ebook_renamer/helper.rb +2 -1
- data/lib/ebook_renamer/version.rb +1 -1
- data/test/fixtures/ebooks/subdir/{demo3.pdf → demo1.pdf} +0 -0
- data/test/fixtures/ebooks/subdir/{demo4.epub → demo2.epub} +0 -0
- data/test/lib/ebook_renamer/{helpers_test.rb → helper_test.rb} +0 -0
- data/test/test_helper.rb +1 -1
- metadata +26 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e27d4db397905bbe0cf08d76ed4b6d01b4b2a29
|
4
|
+
data.tar.gz: 53bc900783b7757cfdbdd8d6ed632facdd8a9f52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c04360a30e7491e5704d51ed7140146f805a11062f8deab049988ef7a0ef1e8fe7e7d30258abe683b9ce0d81d5d0eeef0dcafde5fb5673a2aa62e16e7d722462
|
7
|
+
data.tar.gz: 22ce0baff5a0bdc51ff3e422ef8f9c2e8aa45d8c20d45a7a142483f20519d04a148b7acd92c5e49b0603d2262c8510346f2cbfb7bacdf1c633e30470d90107f4
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,17 +2,8 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/ebook_renamer.svg)](http://badge.fury.io/rb/ebook_renamer)
|
4
4
|
|
5
|
-
|
6
|
-
the embedded meta-data (title, author(s)).
|
7
|
-
|
8
|
-
### Why do I wrote this gem
|
9
|
-
|
10
|
-
Almost always, when I get an ebook it does not have a good file name.
|
11
|
-
This is very annoying as it does not work well when you want to search for it later.
|
12
|
-
|
13
|
-
I wrote this gem just to make it possible to rename multiple ebook files at once using the
|
14
|
-
available meta-data from each file. I like to be able to use this on the single folder or recursively from
|
15
|
-
a given folder.
|
5
|
+
Perform bulk rename of ebook files (epub,mobi,pdf, and any other extensions supported by Calibre)
|
6
|
+
based on the embedded meta-data (title, author(s)).
|
16
7
|
|
17
8
|
### How the file is renamed
|
18
9
|
|
@@ -22,16 +13,21 @@ Also the final file name will be sanitized e.g. any multiple occurence of specia
|
|
22
13
|
replace by one dot `.`.
|
23
14
|
|
24
15
|
For example if the ebook contain the title `Start with Why: How Grate Leader Inspire Everyone to Take Action`
|
25
|
-
and the author is `Simon Sinek` then the default output will be
|
16
|
+
and the author is `Simon Sinek` then the default output will be
|
17
|
+
`Start.with.Why.How.Great.Leader.Inspire.Everyone.to.Take.Action.by.Simon.Sinek.pdf`
|
26
18
|
Note that the `:` and one space before the word `How` is replaced with just one dot string.
|
27
19
|
|
28
|
-
if the `--sep-string` is used then the output will be
|
20
|
+
if the `--sep-string _` is used then the output will be
|
21
|
+
`Start_with_Why_How_Great_Leader_Inspire_Everyone_to_Take_Action_by_Simon_Sinek.pdf`.
|
29
22
|
|
30
23
|
### What you will need
|
31
24
|
|
32
25
|
* You will need to install the [Calibre](http://www.calibre-ebook.com/) and
|
33
26
|
[Calibre CLI](http://manual.calibre-ebook.com/cli/cli-index.html) on your OS.
|
34
27
|
|
28
|
+
In particular the gem is looking for the `ebook-meta` binary in a path.
|
29
|
+
If this is not installed the error will be raised.
|
30
|
+
|
35
31
|
* Linux or Mac OSX operating system
|
36
32
|
|
37
33
|
### Installation and Usage:
|
@@ -83,28 +79,40 @@ test/fixtures/
|
|
83
79
|
Run the command without making any changes
|
84
80
|
|
85
81
|
```sh
|
86
|
-
|
82
|
+
ebook_renamer rename --base-dir -e epub pdf ./test/fixtures/ebooks --recursive
|
87
83
|
```
|
88
84
|
|
89
85
|
You should see the result like the following
|
90
86
|
|
91
87
|
```
|
92
|
-
Your
|
88
|
+
Your options :{:base_dir=>"test/fixtures/ebooks/",
|
89
|
+
:exts=>["epub", "pdf"],
|
90
|
+
:non_exts=>[],
|
91
|
+
:inc_words=>[],
|
92
|
+
:exc_words=>[],
|
93
|
+
:ignore_case=>true,
|
94
|
+
:recursive=>true,
|
95
|
+
:version=>false,
|
96
|
+
:sep_string=>".",
|
97
|
+
:commit=>false}
|
93
98
|
Changes will not be applied without the --commit option.
|
94
|
-
|
95
|
-
[
|
96
|
-
[
|
97
|
-
[
|
99
|
+
|
100
|
+
[test/fixtures/ebooks/demo1.pdf] -> [test/fixtures/ebooks/Fearless.Refactoring.by.Andrzej.Krzywda.pdf]
|
101
|
+
[test/fixtures/ebooks/demo2.epub] -> [test/fixtures/ebooks/EPUB.3.0.Specification.by.EPUB.3.Working.Group.epub]
|
102
|
+
[test/fixtures/ebooks/subdir/demo1.pdf] -> [test/fixtures/ebooks/subdir/Reliably.Deploying.Rails.Applications.by.Ben.Dixon.pdf]
|
103
|
+
[test/fixtures/ebooks/subdir/demo2.epub] -> [test/fixtures/ebooks/subdir/EPUB.3.0.Specification.by.EPUB.3.Working.Group.epub]
|
104
|
+
|
98
105
|
```
|
99
106
|
|
100
|
-
To actually make the actual rename just pass in the `--commit` option like
|
107
|
+
To actually make the actual rename just pass in the `--commit` option like so:
|
101
108
|
|
102
109
|
```sh
|
103
|
-
./bin/ebook_renamer rename --base-dir ./test/fixtures/ebooks --recursive --commit
|
104
|
-
|
110
|
+
./bin/ebook_renamer rename --base-dir ./test/fixtures/ebooks -e epub pdf --recursive --commit
|
111
|
+
# or short version
|
112
|
+
./bin/ebook_renamer rename -b ./test/fixtures/ebooks -e epub pdf -r -c
|
105
113
|
```
|
106
114
|
|
107
|
-
The final output should be like
|
115
|
+
The final output should be something like:
|
108
116
|
|
109
117
|
```
|
110
118
|
test/fixtures/
|
@@ -119,30 +127,43 @@ test/fixtures/
|
|
119
127
|
|
120
128
|
### Sample Usage
|
121
129
|
|
130
|
+
To get the help just type `ebook_renamer` without any argument
|
131
|
+
|
122
132
|
```
|
123
133
|
Usage:
|
124
|
-
ebook_renamer rename
|
134
|
+
ebook_renamer rename [OPTIONS]
|
125
135
|
|
126
136
|
Options:
|
127
|
-
-b, [--base-dir=BASE_DIR]
|
128
|
-
|
129
|
-
-e, [--exts=one two three]
|
130
|
-
|
131
|
-
-
|
132
|
-
|
133
|
-
-
|
134
|
-
|
135
|
-
-
|
136
|
-
|
137
|
-
|
137
|
+
-b, [--base-dir=BASE_DIR] # Base directory
|
138
|
+
# Default: . (current directory)
|
139
|
+
-e, [--exts=one two three] # List of extensions to search for
|
140
|
+
-f, [--non-exts=one two three] # List of files without extension to search for
|
141
|
+
-n, [--inc-words=one two three] # List of words to be included in the result if any
|
142
|
+
-x, [--exc-words=one two three] # List of words to be excluded from the result if any
|
143
|
+
-i, [--ignore-case], [--no-ignore-case] # Match case insensitively
|
144
|
+
# Default: true
|
145
|
+
-r, [--recursive], [--no-recursive] # Search for files recursively
|
146
|
+
# Default: true
|
147
|
+
-v, [--version], [--no-version] # Display version information
|
148
|
+
-s, [--sep-string=SEP_STRING] # Separator string between words in filename
|
149
|
+
# Default: .
|
150
|
+
-c, [--commit], [--no-commit] # Make change permanent
|
151
|
+
|
152
|
+
Rename multiple ebook files (pdf,epub,mobi)
|
138
153
|
```
|
139
154
|
|
140
155
|
### Changelog
|
141
156
|
|
157
|
+
#### 0.1.1
|
158
|
+
|
159
|
+
- Make use of the 'code_lister' for better options [see: `ebook_renamer` for detail]
|
160
|
+
- The --exts must be specified explicitly as `code_lister` is not set any extension by default.
|
161
|
+
|
142
162
|
#### 0.1.0
|
143
163
|
|
144
164
|
- Add link to the version badge to link to latest gem.
|
145
|
-
-
|
165
|
+
- Implicitly set the default value for extension to `pdf,epub,mobi` if
|
166
|
+
not explicitly set by the user at the command line.
|
146
167
|
|
147
168
|
#### 0.0.9
|
148
169
|
|
data/Rakefile
CHANGED
@@ -9,16 +9,6 @@ end
|
|
9
9
|
|
10
10
|
task :default => :test
|
11
11
|
|
12
|
-
task :irb do
|
13
|
-
require 'irb'
|
14
|
-
require 'awesome_print'
|
15
|
-
require 'irb/completion'
|
16
|
-
require 'ebook_renamer'
|
17
|
-
include EbookRenamer
|
18
|
-
ARGV.clear
|
19
|
-
IRB.start
|
20
|
-
end
|
21
|
-
|
22
12
|
task :pry do
|
23
13
|
require 'pry'
|
24
14
|
require 'awesome_print'
|
data/bin/ebook_renamer
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'thor'
|
3
2
|
require_relative '../lib/ebook_renamer'
|
4
|
-
require_relative '../lib/ebook_renamer/helper'
|
5
|
-
require_relative '../lib/ebook_renamer/version'
|
6
|
-
|
7
3
|
include EbookRenamer
|
8
|
-
EbookRenamer::
|
4
|
+
EbookRenamer::CLI.start(ARGV)
|
data/ebook_renamer.gemspec
CHANGED
@@ -18,10 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_runtime_dependency "thor", "~> 0.18"
|
21
|
-
spec.add_runtime_dependency "
|
21
|
+
spec.add_runtime_dependency "code_lister", "~> 0.0.6"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "awesome_print", "~> 1.2"
|
25
26
|
spec.add_development_dependency "minitest-spec-context", "~> 0.0.3"
|
26
27
|
spec.add_development_dependency "guard-minitest", "~> 2.2"
|
27
28
|
spec.add_development_dependency "minitest", "~> 4.2"
|
data/lib/ebook_renamer.rb
CHANGED
@@ -1,129 +1,7 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
method_option :base_dir,
|
9
|
-
aliases: "-b",
|
10
|
-
desc: "Base directory",
|
11
|
-
default: Dir.pwd
|
12
|
-
|
13
|
-
method_option :exts,
|
14
|
-
aliases: "-e",
|
15
|
-
desc: "List of extensions to search for",
|
16
|
-
type: :array,
|
17
|
-
default: %w(pdf epub mobi)
|
18
|
-
|
19
|
-
method_option :sep_string,
|
20
|
-
aliases: "-s",
|
21
|
-
desc: "Separator string between words in filename",
|
22
|
-
default: "."
|
23
|
-
|
24
|
-
method_option :commit,
|
25
|
-
aliases: "-c",
|
26
|
-
desc: "Make change permanent",
|
27
|
-
type: :boolean,
|
28
|
-
default: false
|
29
|
-
|
30
|
-
method_option :recursive,
|
31
|
-
aliases: "-r",
|
32
|
-
desc: "Search for files recursively",
|
33
|
-
type: :boolean,
|
34
|
-
default: false
|
35
|
-
|
36
|
-
method_option :version,
|
37
|
-
aliases: "-v",
|
38
|
-
desc: "Display version information",
|
39
|
-
type: :boolean,
|
40
|
-
default: false
|
41
|
-
|
42
|
-
def rename
|
43
|
-
args = options.symbolize_keys
|
44
|
-
#puts "Your argument: #{args}"
|
45
|
-
|
46
|
-
if options[:version]
|
47
|
-
puts "You are using ebook_renamer version #{EbookRenamer::VERSION}"
|
48
|
-
exit
|
49
|
-
end
|
50
|
-
|
51
|
-
execute(args)
|
52
|
-
end
|
53
|
-
|
54
|
-
desc "help", "Display help screen"
|
55
|
-
def help
|
56
|
-
puts <<-EOS
|
57
|
-
Usage:
|
58
|
-
ebook_renamer rename
|
59
|
-
|
60
|
-
Options:
|
61
|
-
-b, [--base-dir=BASE_DIR] # Base directory
|
62
|
-
# Default: /home/bchoomnuan/Dropbox/spikes/ebooks-renamer
|
63
|
-
-e, [--exts=one two three] # List of extensions to search for
|
64
|
-
# Default: ["pdf", "epub", "mobi"]
|
65
|
-
-s, [--sep-string=SEP_STRING] # Separator string between words in filename
|
66
|
-
# Default: .
|
67
|
-
-c, [--commit], [--no-commit] # Make change permanent
|
68
|
-
-r, [--recursive], [--no-recursive] # Search for files recursively
|
69
|
-
-v, [--version], [--no-version] # Display version information
|
70
|
-
|
71
|
-
Rename ebook files (pdf,epub,mobi)
|
72
|
-
EOS
|
73
|
-
end
|
74
|
-
|
75
|
-
default_task :help
|
76
|
-
|
77
|
-
private
|
78
|
-
|
79
|
-
# Rename the file from the given directory
|
80
|
-
# Using the with the argurment options as follow
|
81
|
-
#
|
82
|
-
# :base_dir - the base directory
|
83
|
-
# :recursive - perform the rename recursively (true|false)
|
84
|
-
# :commit - make the rename permanent (true|false)
|
85
|
-
# :exts - list of extensions to be processed default to ['epub,mobi,pdf']
|
86
|
-
#
|
87
|
-
# @param args [Hash<Symbol, Object>] options argument
|
88
|
-
def execute(args = {})
|
89
|
-
meta_binary = "ebook-meta"
|
90
|
-
options = default_options.merge(args)
|
91
|
-
|
92
|
-
input_files = files(options[:base_dir], options).sort
|
93
|
-
|
94
|
-
if input_files.empty?
|
95
|
-
puts "No file found for your option:", options
|
96
|
-
ap options
|
97
|
-
return
|
98
|
-
end
|
99
|
-
|
100
|
-
unless options[:commit]
|
101
|
-
puts "Changes will not be applied without the --commit option."
|
102
|
-
end
|
103
|
-
|
104
|
-
input_files.each do |file|
|
105
|
-
extension = File.extname(file)
|
106
|
-
begin
|
107
|
-
hash = meta_to_hash(meta(file, meta_binary))
|
108
|
-
full_name = formatted_name(hash, sep_char: " by ")
|
109
|
-
new_name = "#{File.dirname(file)}/#{sanitize_filename(full_name, options[:sep_string])}#{extension}"
|
110
|
-
puts "[#{file}] -> [#{new_name}]"
|
111
|
-
FileUtils.mv(file,new_name) if options[:commit] && file != new_name
|
112
|
-
rescue RuntimeError => e
|
113
|
-
puts e.backtrace
|
114
|
-
next
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
def default_options
|
120
|
-
options = {
|
121
|
-
base_dir: Dir.pwd,
|
122
|
-
recursive: false,
|
123
|
-
commit: false,
|
124
|
-
exts: %w(epub mobi pdf),
|
125
|
-
sep_string: '.'
|
126
|
-
}
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
2
|
+
require 'code_lister'
|
3
|
+
require_relative 'ebook_renamer/core_ext/hash'
|
4
|
+
require_relative 'ebook_renamer/version'
|
5
|
+
require_relative 'ebook_renamer/logger'
|
6
|
+
require_relative 'ebook_renamer/helper'
|
7
|
+
require_relative 'ebook_renamer/cli'
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'code_lister'
|
2
|
+
require_relative '../ebook_renamer'
|
3
|
+
|
4
|
+
module EbookRenamer
|
5
|
+
class CLI < CodeLister::BaseCLI
|
6
|
+
desc 'rename', 'Rename multiple ebook files (pdf,epub,mobi)'
|
7
|
+
|
8
|
+
shared_options
|
9
|
+
|
10
|
+
method_option :sep_string,
|
11
|
+
aliases: "-s",
|
12
|
+
desc: "Separator string between words in filename",
|
13
|
+
default: "."
|
14
|
+
|
15
|
+
method_option :commit,
|
16
|
+
aliases: "-c",
|
17
|
+
desc: "Make change permanent",
|
18
|
+
type: :boolean,
|
19
|
+
default: false
|
20
|
+
def rename
|
21
|
+
opts = options.symbolize_keys
|
22
|
+
|
23
|
+
# Note: by default the 'code_lister' for exts: is [].
|
24
|
+
# To make it more user friendly, we explicitly set the extension
|
25
|
+
# to %w(pdf epub mobi) to avoid the need for explicit value by the user
|
26
|
+
opts[:exts] = %w(pdf epub mobi) if opts.fetch(:exts, []).empty?
|
27
|
+
|
28
|
+
if opts[:version]
|
29
|
+
puts "You are using EbookRenamer version #{EbookRenamer::VERSION}"
|
30
|
+
exit
|
31
|
+
end
|
32
|
+
execute(opts)
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "usage", "Display help screen"
|
36
|
+
def usage
|
37
|
+
puts <<-EOS
|
38
|
+
Usage:
|
39
|
+
cli.rb rename [OPTIONS]
|
40
|
+
|
41
|
+
Options:
|
42
|
+
-b, [--base-dir=BASE_DIR] # Base directory
|
43
|
+
# Default: /Users/agilecreativity/Dropbox/spikes/ebooks-renamer
|
44
|
+
-e, [--exts=one two three] # List of extensions to search for
|
45
|
+
-f, [--non-exts=one two three] # List of files without extension to search for
|
46
|
+
-n, [--inc-words=one two three] # List of words to be included in the result if any
|
47
|
+
-x, [--exc-words=one two three] # List of words to be excluded from the result if any
|
48
|
+
-i, [--ignore-case], [--no-ignore-case] # Match case insensitively
|
49
|
+
# Default: true
|
50
|
+
-r, [--recursive], [--no-recursive] # Search for files recursively
|
51
|
+
# Default: true
|
52
|
+
-v, [--version], [--no-version] # Display version information
|
53
|
+
-s, [--sep-string=SEP_STRING] # Separator string between words in filename
|
54
|
+
# Default: .
|
55
|
+
-c, [--commit], [--no-commit] # Make change permanent
|
56
|
+
|
57
|
+
Rename multiple ebook files (pdf,epub,mobi)
|
58
|
+
EOS
|
59
|
+
end
|
60
|
+
|
61
|
+
default_task :usage
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
# Rename the file from the given directory
|
66
|
+
# Using the with the argurment options as follow
|
67
|
+
#
|
68
|
+
# :base_dir - the base directory
|
69
|
+
# :recursive - perform the rename recursively (true|false)
|
70
|
+
# :commit - make the rename permanent (true|false)
|
71
|
+
# :exts - list of extensions to be processed default to ['epub,mobi,pdf']
|
72
|
+
#
|
73
|
+
# @param args [Hash<Symbol, Object>] options argument
|
74
|
+
def execute(options = {})
|
75
|
+
meta_binary = "ebook-meta"
|
76
|
+
|
77
|
+
input_files = CodeLister.files(options)
|
78
|
+
|
79
|
+
if input_files.empty?
|
80
|
+
puts "No file found for your option: #{options}"
|
81
|
+
return
|
82
|
+
end
|
83
|
+
|
84
|
+
unless options[:commit]
|
85
|
+
puts "Changes will not be applied without the --commit option."
|
86
|
+
end
|
87
|
+
|
88
|
+
input_files.each do |file|
|
89
|
+
extension = File.extname(file)
|
90
|
+
begin
|
91
|
+
hash = meta_to_hash(meta(file, meta_binary))
|
92
|
+
full_name = formatted_name(hash, sep_char: " by ")
|
93
|
+
new_name = "#{File.dirname(file)}/#{sanitize_filename(full_name, options[:sep_string])}#{extension}"
|
94
|
+
puts "[#{file}] -> [#{new_name}]"
|
95
|
+
FileUtils.mv(file,new_name) if options[:commit] && file != new_name
|
96
|
+
rescue RuntimeError => e
|
97
|
+
puts e.backtrace
|
98
|
+
next
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -33,4 +33,24 @@ class Hash
|
|
33
33
|
transform_keys!{ |key| key.to_sym rescue key }
|
34
34
|
end
|
35
35
|
|
36
|
+
# Merges the caller into +other_hash+. For example,
|
37
|
+
#
|
38
|
+
# options = options.reverse_merge(size: 25, velocity: 10)
|
39
|
+
#
|
40
|
+
# is equivalent to
|
41
|
+
#
|
42
|
+
# options = { size: 25, velocity: 10 }.merge(options)
|
43
|
+
#
|
44
|
+
# This is particularly useful for initializing an options hash
|
45
|
+
# with default values.
|
46
|
+
def reverse_merge(other_hash)
|
47
|
+
other_hash.merge(self)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Destructive +reverse_merge+.
|
51
|
+
def reverse_merge!(other_hash)
|
52
|
+
# right wins if there is no left
|
53
|
+
merge!(other_hash) { |key,left,right| left }
|
54
|
+
end
|
55
|
+
|
36
56
|
end
|
data/lib/ebook_renamer/helper.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ebook_renamer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Burin Choomnuan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.18'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: code_lister
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.0.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.0.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: awesome_print
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.2'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.2'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: minitest-spec-context
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,15 +198,16 @@ files:
|
|
184
198
|
- bin/ebook_renamer
|
185
199
|
- ebook_renamer.gemspec
|
186
200
|
- lib/ebook_renamer.rb
|
201
|
+
- lib/ebook_renamer/cli.rb
|
187
202
|
- lib/ebook_renamer/core_ext/hash.rb
|
188
203
|
- lib/ebook_renamer/helper.rb
|
189
204
|
- lib/ebook_renamer/logger.rb
|
190
205
|
- lib/ebook_renamer/version.rb
|
191
206
|
- test/fixtures/ebooks/demo1.pdf
|
192
207
|
- test/fixtures/ebooks/demo2.epub
|
193
|
-
- test/fixtures/ebooks/subdir/
|
194
|
-
- test/fixtures/ebooks/subdir/
|
195
|
-
- test/lib/ebook_renamer/
|
208
|
+
- test/fixtures/ebooks/subdir/demo1.pdf
|
209
|
+
- test/fixtures/ebooks/subdir/demo2.epub
|
210
|
+
- test/lib/ebook_renamer/helper_test.rb
|
196
211
|
- test/test_helper.rb
|
197
212
|
homepage: https://github.com/agilecreativity/ebook_renamer
|
198
213
|
licenses:
|
@@ -222,8 +237,8 @@ summary: Rename multiple ebook files (pdf, epub, mobi) based on existing meta-da
|
|
222
237
|
test_files:
|
223
238
|
- test/fixtures/ebooks/demo1.pdf
|
224
239
|
- test/fixtures/ebooks/demo2.epub
|
225
|
-
- test/fixtures/ebooks/subdir/
|
226
|
-
- test/fixtures/ebooks/subdir/
|
227
|
-
- test/lib/ebook_renamer/
|
240
|
+
- test/fixtures/ebooks/subdir/demo1.pdf
|
241
|
+
- test/fixtures/ebooks/subdir/demo2.epub
|
242
|
+
- test/lib/ebook_renamer/helper_test.rb
|
228
243
|
- test/test_helper.rb
|
229
244
|
has_rdoc:
|