pandocomatic 0.2.7.8 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pandocomatic/cli.rb +81 -64
- data/lib/pandocomatic/command/command.rb +37 -35
- data/lib/pandocomatic/command/convert_dir_command.rb +44 -46
- data/lib/pandocomatic/command/convert_file_command.rb +314 -286
- data/lib/pandocomatic/command/convert_file_multiple_command.rb +56 -53
- data/lib/pandocomatic/command/convert_list_command.rb +31 -34
- data/lib/pandocomatic/command/copy_file_command.rb +14 -15
- data/lib/pandocomatic/command/create_link_command.rb +24 -27
- data/lib/pandocomatic/command/skip_command.rb +12 -15
- data/lib/pandocomatic/configuration.rb +682 -867
- data/lib/pandocomatic/default_configuration.yaml +4 -0
- data/lib/pandocomatic/error/cli_error.rb +30 -26
- data/lib/pandocomatic/error/configuration_error.rb +10 -9
- data/lib/pandocomatic/error/io_error.rb +13 -13
- data/lib/pandocomatic/error/pandoc_error.rb +10 -9
- data/lib/pandocomatic/error/pandocomatic_error.rb +15 -14
- data/lib/pandocomatic/error/processor_error.rb +9 -9
- data/lib/pandocomatic/error/template_error.rb +50 -0
- data/lib/pandocomatic/input.rb +53 -54
- data/lib/pandocomatic/multiple_files_input.rb +79 -72
- data/lib/pandocomatic/output.rb +29 -0
- data/lib/pandocomatic/pandoc_metadata.rb +193 -181
- data/lib/pandocomatic/pandocomatic.rb +101 -97
- data/lib/pandocomatic/pandocomatic_yaml.rb +70 -0
- data/lib/pandocomatic/path.rb +171 -0
- data/lib/pandocomatic/printer/command_printer.rb +7 -5
- data/lib/pandocomatic/printer/configuration_errors_printer.rb +7 -6
- data/lib/pandocomatic/printer/error_printer.rb +12 -7
- data/lib/pandocomatic/printer/finish_printer.rb +11 -10
- data/lib/pandocomatic/printer/help_printer.rb +8 -6
- data/lib/pandocomatic/printer/printer.rb +34 -34
- data/lib/pandocomatic/printer/summary_printer.rb +39 -33
- data/lib/pandocomatic/printer/version_printer.rb +8 -8
- data/lib/pandocomatic/printer/views/cli_error.txt +5 -0
- data/lib/pandocomatic/printer/views/configuration_error.txt +2 -1
- data/lib/pandocomatic/printer/views/error.txt +1 -1
- data/lib/pandocomatic/printer/views/finish.txt +1 -1
- data/lib/pandocomatic/printer/views/help.txt +27 -15
- data/lib/pandocomatic/printer/views/summary.txt +7 -1
- data/lib/pandocomatic/printer/views/template_error.txt +1 -0
- data/lib/pandocomatic/printer/views/version.txt +3 -3
- data/lib/pandocomatic/printer/views/warning.txt +1 -1
- data/lib/pandocomatic/printer/warning_printer.rb +21 -19
- data/lib/pandocomatic/processor.rb +28 -28
- data/lib/pandocomatic/processors/fileinfo_preprocessor.rb +35 -30
- data/lib/pandocomatic/processors/metadata_preprocessor.rb +23 -22
- data/lib/pandocomatic/template.rb +244 -0
- data/lib/pandocomatic/warning.rb +24 -25
- metadata +32 -12
@@ -1,31 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
|
-
# Copyright 2017, Huub de Beer <Huub@heerdebeer.org>
|
3
|
-
#
|
4
|
+
# Copyright 2017, 2022, Huub de Beer <Huub@heerdebeer.org>
|
5
|
+
#
|
4
6
|
# This file is part of pandocomatic.
|
5
|
-
#
|
7
|
+
#
|
6
8
|
# Pandocomatic is free software: you can redistribute it and/or modify
|
7
9
|
# it under the terms of the GNU General Public License as published by the
|
8
10
|
# Free Software Foundation, either version 3 of the License, or (at your
|
9
11
|
# option) any later version.
|
10
|
-
#
|
12
|
+
#
|
11
13
|
# Pandocomatic is distributed in the hope that it will be useful, but
|
12
14
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
13
15
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
14
16
|
# for more details.
|
15
|
-
#
|
17
|
+
#
|
16
18
|
# You should have received a copy of the GNU General Public License along
|
17
19
|
# with pandocomatic. If not, see <http://www.gnu.org/licenses/>.
|
18
20
|
#++
|
19
21
|
module Pandocomatic
|
22
|
+
require_relative '../error/io_error'
|
20
23
|
|
21
|
-
require_relative '
|
22
|
-
|
23
|
-
require_relative '
|
24
|
-
require_relative '
|
25
|
-
require_relative '
|
26
|
-
require_relative '
|
27
|
-
require_relative 'copy_file_command.rb'
|
28
|
-
require_relative 'skip_command.rb'
|
24
|
+
require_relative 'command'
|
25
|
+
require_relative 'create_link_command'
|
26
|
+
require_relative 'convert_file_command'
|
27
|
+
require_relative 'convert_list_command'
|
28
|
+
require_relative 'copy_file_command'
|
29
|
+
require_relative 'skip_command'
|
29
30
|
|
30
31
|
# Create a command to convert one file multiple times
|
31
32
|
#
|
@@ -33,9 +34,10 @@ module Pandocomatic
|
|
33
34
|
# @return [Command[]] the subcommands to execute when running this
|
34
35
|
# ConvertFileMultipleCommand
|
35
36
|
class ConvertFileMultipleCommand < ConvertListCommand
|
36
|
-
|
37
37
|
attr_reader :subcommands
|
38
38
|
|
39
|
+
# rubocop:disable Metrics
|
40
|
+
|
39
41
|
# Create a new ConvertFileMultipleCommand
|
40
42
|
#
|
41
43
|
# @param config [Configuration] Pandocomatic's configuration used to
|
@@ -43,63 +45,64 @@ module Pandocomatic
|
|
43
45
|
# @param src [String] the file to convert
|
44
46
|
# @param dst [String] the output file
|
45
47
|
def initialize(config, src, dst)
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
super()
|
49
|
+
@config = config
|
50
|
+
@src = src
|
51
|
+
|
52
|
+
metadata = PandocMetadata.load_file @src
|
49
53
|
|
50
|
-
|
54
|
+
subcommands = []
|
51
55
|
|
52
|
-
|
56
|
+
if metadata.template?
|
57
|
+
# There are templates in this document's metadata, try to use
|
58
|
+
# those.
|
59
|
+
metadata.templates.each do |template_name|
|
60
|
+
unless template_name.empty? || config.template?(template_name)
|
61
|
+
raise ConfigurationError.new(:no_such_template, nil,
|
62
|
+
template_name)
|
63
|
+
end
|
53
64
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
65
|
+
subcommands.push ConvertFileCommand.new(@config, @src, dst, template_name)
|
66
|
+
end
|
67
|
+
else
|
68
|
+
# Try to match any global templates using the glob patterns
|
69
|
+
global_templates = @config.determine_templates(@src)
|
59
70
|
|
60
|
-
|
61
|
-
|
71
|
+
if global_templates.empty?
|
72
|
+
subcommands.push ConvertFileCommand.new(@config, @src, dst)
|
62
73
|
else
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
if global_templates.empty?
|
67
|
-
subcommands.push ConvertFileCommand.new(@config, @src, dst)
|
68
|
-
else
|
69
|
-
global_templates.each do |template_name|
|
70
|
-
subcommands.push ConvertFileCommand.new(@config, @src, dst, template_name)
|
71
|
-
end
|
72
|
-
end
|
74
|
+
global_templates.each do |template_name|
|
75
|
+
subcommands.push ConvertFileCommand.new(@config, @src, dst, template_name)
|
76
|
+
end
|
73
77
|
end
|
78
|
+
end
|
74
79
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
80
|
+
# Only run a command if the src file is modified, or if the modified
|
81
|
+
# setting is ignored.
|
82
|
+
subcommands.each do |subcommand|
|
83
|
+
if (!modified_only? || file_modified?(@src, subcommand.dst)) && !(subcommand.nil? || subcommand.skip?)
|
84
|
+
push subcommand
|
81
85
|
end
|
86
|
+
end
|
82
87
|
end
|
83
88
|
|
89
|
+
# rubocop:enable Metrics
|
84
90
|
|
85
91
|
# A string representation of this command
|
86
92
|
#
|
87
93
|
# @return [String]
|
88
|
-
def to_s
|
89
|
-
|
94
|
+
def to_s
|
95
|
+
"converting #{@src} #{@subcommands.size} time#{'s' if @subcommands.size != 1}:"
|
90
96
|
end
|
91
97
|
|
92
98
|
# Execute this ConvertFileMultipleCommand
|
93
|
-
def execute
|
94
|
-
if
|
95
|
-
CommandPrinter.new(self).print unless quiet? or @subcommands.size == 1
|
96
|
-
run if not dry_run? and runnable?
|
99
|
+
def execute
|
100
|
+
return if @subcommands.empty?
|
97
101
|
|
98
|
-
|
99
|
-
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
102
|
+
CommandPrinter.new(self).print unless quiet? || (@subcommands.size == 1)
|
103
|
+
run if !dry_run? && runnable?
|
103
104
|
|
105
|
+
@subcommands.each(&:execute)
|
106
|
+
end
|
104
107
|
end
|
105
108
|
end
|
@@ -1,41 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
|
-
# Copyright 2017, Huub de Beer <Huub@heerdebeer.org>
|
3
|
-
#
|
4
|
+
# Copyright 2017, 2022, Huub de Beer <Huub@heerdebeer.org>
|
5
|
+
#
|
4
6
|
# This file is part of pandocomatic.
|
5
|
-
#
|
7
|
+
#
|
6
8
|
# Pandocomatic is free software: you can redistribute it and/or modify
|
7
9
|
# it under the terms of the GNU General Public License as published by the
|
8
10
|
# Free Software Foundation, either version 3 of the License, or (at your
|
9
11
|
# option) any later version.
|
10
|
-
#
|
12
|
+
#
|
11
13
|
# Pandocomatic is distributed in the hope that it will be useful, but
|
12
14
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
13
15
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
14
16
|
# for more details.
|
15
|
-
#
|
17
|
+
#
|
16
18
|
# You should have received a copy of the GNU General Public License along
|
17
19
|
# with pandocomatic. If not, see <http://www.gnu.org/licenses/>.
|
18
20
|
#++
|
19
21
|
module Pandocomatic
|
22
|
+
require_relative '../error/io_error'
|
20
23
|
|
21
|
-
require_relative '
|
22
|
-
|
23
|
-
require_relative '
|
24
|
-
require_relative '
|
25
|
-
require_relative '
|
26
|
-
require_relative 'copy_file_command.rb'
|
27
|
-
require_relative 'skip_command.rb'
|
24
|
+
require_relative 'command'
|
25
|
+
require_relative 'create_link_command'
|
26
|
+
require_relative 'convert_file_command'
|
27
|
+
require_relative 'copy_file_command'
|
28
|
+
require_relative 'skip_command'
|
28
29
|
|
29
30
|
# A Command with sub commands
|
30
31
|
#
|
31
32
|
# @!attribute subcommands
|
32
33
|
# @return [Command[]] the subcommands of this ConvertListCommand
|
33
34
|
class ConvertListCommand < Command
|
34
|
-
|
35
35
|
attr_reader :subcommands
|
36
36
|
|
37
37
|
# Create a new ConvertListCommand
|
38
|
-
def initialize
|
38
|
+
def initialize
|
39
39
|
super()
|
40
40
|
@subcommands = []
|
41
41
|
end
|
@@ -44,58 +44,55 @@ module Pandocomatic
|
|
44
44
|
#
|
45
45
|
# @param command [Command] command to add
|
46
46
|
def push(command)
|
47
|
-
|
47
|
+
@subcommands.push command
|
48
48
|
end
|
49
49
|
|
50
50
|
# Skip this ConvertListCommand when there are no sub commands
|
51
51
|
#
|
52
52
|
# @return [Boolean]
|
53
|
-
def skip?
|
53
|
+
def skip?
|
54
54
|
@subcommands.empty?
|
55
55
|
end
|
56
56
|
|
57
57
|
# The number of commands to execute when this ConvertListCommand
|
58
58
|
# is executed.
|
59
|
-
def count
|
60
|
-
@subcommands.reduce(
|
61
|
-
total
|
59
|
+
def count
|
60
|
+
@subcommands.reduce(0) do |total, subcommand|
|
61
|
+
total + subcommand.count
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
65
|
# Get a list of all errors generated while running this command
|
66
66
|
#
|
67
|
-
# @return [Error[]]
|
68
|
-
def all_errors
|
67
|
+
# @return [Error[]]
|
68
|
+
def all_errors
|
69
69
|
@subcommands.reduce(@errors) do |total, subcommand|
|
70
|
-
total
|
70
|
+
total + subcommand.all_errors
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
74
|
# A string representation of this ConvertListCommand
|
75
75
|
#
|
76
76
|
# @return [String]
|
77
|
-
def to_s
|
78
|
-
|
77
|
+
def to_s
|
78
|
+
"converting #{@subcommands.size} items:"
|
79
79
|
end
|
80
80
|
|
81
81
|
# Can this command have multiple commands?
|
82
82
|
#
|
83
83
|
# @return [Boolean] true
|
84
84
|
def multiple?
|
85
|
-
|
85
|
+
true
|
86
86
|
end
|
87
87
|
|
88
88
|
# Execute this ConvertListCommand
|
89
|
-
def execute
|
90
|
-
if
|
91
|
-
CommandPrinter.new(self).print unless quiet?
|
92
|
-
run if not dry_run? and runnable?
|
89
|
+
def execute
|
90
|
+
return if @subcommands.empty?
|
93
91
|
|
94
|
-
|
95
|
-
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
92
|
+
CommandPrinter.new(self).print unless quiet?
|
93
|
+
run if !dry_run? && runnable?
|
99
94
|
|
95
|
+
@subcommands.each(&:execute)
|
96
|
+
end
|
100
97
|
end
|
101
98
|
end
|
@@ -1,26 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
4
|
# Copyright 2017, Huub de Beer <Huub@heerdebeer.org>
|
3
|
-
#
|
5
|
+
#
|
4
6
|
# This file is part of pandocomatic.
|
5
|
-
#
|
7
|
+
#
|
6
8
|
# Pandocomatic is free software: you can redistribute it and/or modify
|
7
9
|
# it under the terms of the GNU General Public License as published by the
|
8
10
|
# Free Software Foundation, either version 3 of the License, or (at your
|
9
11
|
# option) any later version.
|
10
|
-
#
|
12
|
+
#
|
11
13
|
# Pandocomatic is distributed in the hope that it will be useful, but
|
12
14
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
13
15
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
14
16
|
# for more details.
|
15
|
-
#
|
17
|
+
#
|
16
18
|
# You should have received a copy of the GNU General Public License along
|
17
19
|
# with pandocomatic. If not, see <http://www.gnu.org/licenses/>.
|
18
20
|
#++
|
19
21
|
module Pandocomatic
|
20
22
|
require 'fileutils'
|
21
23
|
|
22
|
-
require_relative '../error/io_error
|
23
|
-
require_relative 'command
|
24
|
+
require_relative '../error/io_error'
|
25
|
+
require_relative 'command'
|
24
26
|
|
25
27
|
# A command to copy a file
|
26
28
|
#
|
@@ -38,24 +40,21 @@ module Pandocomatic
|
|
38
40
|
@src = src
|
39
41
|
@dst = dst
|
40
42
|
@errors.push IOError.new(:file_is_not_readable, nil, @src) unless File.readable? @src
|
41
|
-
@errors.push IOError.new(:file_is_not_writable, nil, @dst) unless
|
43
|
+
@errors.push IOError.new(:file_is_not_writable, nil, @dst) unless !File.exist?(@dst) || File.writable?(@dst)
|
42
44
|
end
|
43
45
|
|
44
46
|
# Run this CopyFileCommand
|
45
|
-
def run
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
raise IOError.new(:unable_to_copy_file, e, [@src, @dst])
|
50
|
-
end
|
47
|
+
def run
|
48
|
+
FileUtils.cp(@src, @dst) if file_modified?(@src, @dst)
|
49
|
+
rescue StandardError => e
|
50
|
+
raise IOError.new(:unable_to_copy_file, e, [@src, @dst])
|
51
51
|
end
|
52
52
|
|
53
53
|
# A string representation of this CopyFileCommand
|
54
54
|
#
|
55
55
|
# @return [String]
|
56
|
-
def to_s
|
56
|
+
def to_s
|
57
57
|
"copy #{File.basename @src}"
|
58
58
|
end
|
59
|
-
|
60
59
|
end
|
61
60
|
end
|
@@ -1,28 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
4
|
# Copyright 2017, Huub de Beer <Huub@heerdebeer.org>
|
3
|
-
#
|
5
|
+
#
|
4
6
|
# This file is part of pandocomatic.
|
5
|
-
#
|
7
|
+
#
|
6
8
|
# Pandocomatic is free software: you can redistribute it and/or modify
|
7
9
|
# it under the terms of the GNU General Public License as published by the
|
8
10
|
# Free Software Foundation, either version 3 of the License, or (at your
|
9
11
|
# option) any later version.
|
10
|
-
#
|
12
|
+
#
|
11
13
|
# Pandocomatic is distributed in the hope that it will be useful, but
|
12
14
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
13
15
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
14
16
|
# for more details.
|
15
|
-
#
|
17
|
+
#
|
16
18
|
# You should have received a copy of the GNU General Public License along
|
17
19
|
# with pandocomatic. If not, see <http://www.gnu.org/licenses/>.
|
18
20
|
#++
|
19
21
|
module Pandocomatic
|
22
|
+
require_relative 'command'
|
20
23
|
|
21
|
-
require_relative '
|
22
|
-
|
23
|
-
require_relative '../
|
24
|
-
require_relative '../error/io_error.rb'
|
25
|
-
require_relative '../printer/warning_printer.rb'
|
24
|
+
require_relative '../warning'
|
25
|
+
require_relative '../error/io_error'
|
26
|
+
require_relative '../printer/warning_printer'
|
26
27
|
|
27
28
|
# A command to create a link to a file
|
28
29
|
#
|
@@ -35,7 +36,6 @@ module Pandocomatic
|
|
35
36
|
# @!attribute dst_target
|
36
37
|
# @return [String] the link in the destination tree to link to
|
37
38
|
class CreateLinkCommand < Command
|
38
|
-
|
39
39
|
attr_reader :src, :dst, :dst_target
|
40
40
|
|
41
41
|
# Create a new CreateLinkCommand
|
@@ -48,10 +48,10 @@ module Pandocomatic
|
|
48
48
|
begin
|
49
49
|
src_target = File.readlink @src
|
50
50
|
|
51
|
-
if src_target.start_with? '.'
|
51
|
+
if src_target.start_with? '.'
|
52
52
|
full_src_target = File.expand_path src_target, File.dirname(src)
|
53
53
|
|
54
|
-
if full_src_target.start_with? src_root
|
54
|
+
if full_src_target.start_with? src_root
|
55
55
|
@dst = dst
|
56
56
|
@dst_target = src_target
|
57
57
|
else
|
@@ -66,39 +66,37 @@ module Pandocomatic
|
|
66
66
|
end
|
67
67
|
|
68
68
|
# Run this CreateLinkCommand
|
69
|
-
def run
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
raise IOError.new(:unable_to_create_symbolic_link, e, [@src, @dst])
|
74
|
-
end
|
69
|
+
def run
|
70
|
+
File.symlink @dst_target, @dst unless File.exist? @dst
|
71
|
+
rescue StandardError => e
|
72
|
+
raise IOError.new(:unable_to_create_symbolic_link, e, [@src, @dst])
|
75
73
|
end
|
76
74
|
|
77
75
|
# Can this CreateLinkCommand be run?
|
78
76
|
#
|
79
77
|
# @return [Boolean] True if there are no errors and both source and
|
80
78
|
# destination do exist
|
81
|
-
def runnable?
|
82
|
-
|
79
|
+
def runnable?
|
80
|
+
!(errors? or @dst.nil? or @dst_target.nil? or @src.nil?)
|
83
81
|
end
|
84
82
|
|
85
83
|
# Create a string representation of this CreateLinkCommand
|
86
|
-
def to_s
|
84
|
+
def to_s
|
87
85
|
"link #{File.basename @dst} -> #{@dst_target}"
|
88
86
|
end
|
89
87
|
|
90
88
|
# Should this CreateLinkCommand be skipped?
|
91
89
|
#
|
92
90
|
# @return [Boolean]
|
93
|
-
def skip?
|
94
|
-
|
91
|
+
def skip?
|
92
|
+
!modified_only? or !modified?
|
95
93
|
end
|
96
|
-
|
94
|
+
|
97
95
|
# Has the source file been modified?
|
98
96
|
#
|
99
97
|
# @return [Boolean]
|
100
|
-
def modified?
|
101
|
-
if File.exist? @dst
|
98
|
+
def modified?
|
99
|
+
if File.exist? @dst
|
102
100
|
absolute_dst = File.realpath @dst
|
103
101
|
target = File.expand_path(@dst_target, absolute_dst)
|
104
102
|
absolute_dst != target
|
@@ -106,6 +104,5 @@ module Pandocomatic
|
|
106
104
|
true
|
107
105
|
end
|
108
106
|
end
|
109
|
-
|
110
107
|
end
|
111
108
|
end
|
@@ -1,24 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
#--
|
2
4
|
# Copyright 2017, Huub de Beer <Huub@heerdebeer.org>
|
3
|
-
#
|
5
|
+
#
|
4
6
|
# This file is part of pandocomatic.
|
5
|
-
#
|
7
|
+
#
|
6
8
|
# Pandocomatic is free software: you can redistribute it and/or modify
|
7
9
|
# it under the terms of the GNU General Public License as published by the
|
8
10
|
# Free Software Foundation, either version 3 of the License, or (at your
|
9
11
|
# option) any later version.
|
10
|
-
#
|
12
|
+
#
|
11
13
|
# Pandocomatic is distributed in the hope that it will be useful, but
|
12
14
|
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
13
15
|
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
14
16
|
# for more details.
|
15
|
-
#
|
17
|
+
#
|
16
18
|
# You should have received a copy of the GNU General Public License along
|
17
19
|
# with pandocomatic. If not, see <http://www.gnu.org/licenses/>.
|
18
20
|
#++
|
19
21
|
module Pandocomatic
|
20
|
-
|
21
|
-
require_relative 'command.rb'
|
22
|
+
require_relative 'command'
|
22
23
|
|
23
24
|
# A command to skip a file or directory
|
24
25
|
#
|
@@ -44,18 +45,17 @@ module Pandocomatic
|
|
44
45
|
# Has this SkipCommand a message?
|
45
46
|
#
|
46
47
|
# @return [Boolean]
|
47
|
-
def
|
48
|
-
|
48
|
+
def message?
|
49
|
+
!((@message.nil? or @message.empty?))
|
49
50
|
end
|
50
51
|
|
51
52
|
# 'Run' this SkipCommand by doing nothing
|
52
|
-
def run
|
53
|
-
end
|
53
|
+
def run; end
|
54
54
|
|
55
55
|
# Skip this command
|
56
56
|
#
|
57
57
|
# @return [Boolean] true
|
58
|
-
def skip?
|
58
|
+
def skip?
|
59
59
|
true
|
60
60
|
end
|
61
61
|
|
@@ -63,10 +63,7 @@ module Pandocomatic
|
|
63
63
|
#
|
64
64
|
# @return [String]
|
65
65
|
def to_s
|
66
|
-
"skipping #{File.basename @src}" + if
|
67
|
-
": #{@message.to_s}"
|
68
|
-
end
|
66
|
+
"skipping #{File.basename @src}" + (": #{@message}" if message?)
|
69
67
|
end
|
70
|
-
|
71
68
|
end
|
72
69
|
end
|