nanoc 4.11.14 → 4.11.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +16 -0
  3. data/lib/nanoc.rb +4 -2
  4. data/lib/nanoc/data_sources/filesystem.rb +9 -3
  5. data/lib/nanoc/extra.rb +1 -0
  6. data/lib/nanoc/extra/core_ext.rb +0 -1
  7. data/lib/nanoc/extra/srcset_parser.rb +79 -0
  8. data/lib/nanoc/filters/erb.rb +1 -5
  9. data/lib/nanoc/filters/relativize_paths.rb +62 -10
  10. data/lib/nanoc/helpers/rendering.rb +5 -4
  11. data/lib/nanoc/orig_cli.rb +0 -5
  12. data/lib/nanoc/rule_dsl.rb +1 -0
  13. data/lib/nanoc/rule_dsl/action_provider.rb +1 -1
  14. data/lib/nanoc/rule_dsl/compiler_dsl.rb +1 -1
  15. data/lib/nanoc/rule_dsl/errors.rb +25 -0
  16. data/lib/nanoc/rule_dsl/rules_loader.rb +1 -1
  17. data/lib/nanoc/version.rb +1 -1
  18. metadata +37 -33
  19. data/lib/nanoc/base.rb +0 -13
  20. data/lib/nanoc/base/changes_stream.rb +0 -53
  21. data/lib/nanoc/base/errors.rb +0 -65
  22. data/lib/nanoc/checking.rb +0 -14
  23. data/lib/nanoc/checking/check.rb +0 -93
  24. data/lib/nanoc/checking/checks.rb +0 -14
  25. data/lib/nanoc/checking/checks/css.rb +0 -16
  26. data/lib/nanoc/checking/checks/external_links.rb +0 -151
  27. data/lib/nanoc/checking/checks/html.rb +0 -16
  28. data/lib/nanoc/checking/checks/internal_links.rb +0 -95
  29. data/lib/nanoc/checking/checks/mixed_content.rb +0 -37
  30. data/lib/nanoc/checking/checks/stale.rb +0 -41
  31. data/lib/nanoc/checking/checks/w3c_validator.rb +0 -31
  32. data/lib/nanoc/checking/dsl.rb +0 -27
  33. data/lib/nanoc/checking/issue.rb +0 -16
  34. data/lib/nanoc/checking/loader.rb +0 -50
  35. data/lib/nanoc/checking/runner.rb +0 -136
  36. data/lib/nanoc/deploying.rb +0 -10
  37. data/lib/nanoc/deploying/deployer.rb +0 -45
  38. data/lib/nanoc/deploying/deployers.rb +0 -11
  39. data/lib/nanoc/deploying/deployers/fog.rb +0 -220
  40. data/lib/nanoc/deploying/deployers/git.rb +0 -112
  41. data/lib/nanoc/deploying/deployers/rsync.rb +0 -68
  42. data/lib/nanoc/extra/core_ext/pathname.rb +0 -27
  43. data/lib/nanoc/orig_cli/commands/check.rb +0 -43
  44. data/lib/nanoc/orig_cli/commands/deploy.rb +0 -126
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f542b39fb4659e2567bffcd64e9d1ae1e75d1eb482c432eaff0a2ee9a2912d1
4
- data.tar.gz: c4a88763e2ef6262c1aab94de7ddd6e5f891cdab23b9ce07f44e5369c764af68
3
+ metadata.gz: 4095705ee984152d7ecf6d5a30be0ca2a924c3c5133587ac84a054fa0fc46e9d
4
+ data.tar.gz: 160e3dae99c1e08af2a04d51dc9b65ec7a5222e0cf8281e8103c787290c29a22
5
5
  SHA512:
6
- metadata.gz: '088c1d6d14fe2bb6451c0ab246bbe3b763126b257730eba7fff4788661ba07f4d4344fb76559b1daccd71e61825dc1b7f60e8a4a91b81a5e648884b577912ec7'
7
- data.tar.gz: 795e7850fdff1d75734cd17ad226cbdbb935b6c5803f8d7eb93d6f5397cdd6620f818bf6fb64fda8e8384842072e9de85eab995c61d57cf4080554df34ae4097
6
+ metadata.gz: f76a9bd9dc02e98c8c095073d1ec6a584ec260f1b92c859590183b67c3233d88f2ee7ef790812df6b830e7d0d70db6c79301de11d0eed91c8636062a65826215
7
+ data.tar.gz: ea3e1ce531452ddf3b8c8aceac582f8019d10ad0668a65fab99bb56f487bff7fbc0abb427b87a4f87e46304bf1ca78026510c03ba890f424dd00accdab5d9ba5
data/NEWS.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.11.15 (2020-03-07)
4
+
5
+ Enhancements:
6
+
7
+ * Made `prune` print files to delete when using dry run (#1474, #1476)
8
+ * Made Nanoc emit a warning when the `contracts` library is loaded, as it can cause severe slowdowns (#1483, #1489)
9
+ * Made the default Rules handle `index.*` files (#1485, #1490)
10
+
11
+ Fixes:
12
+
13
+ * Fixed warnings on Ruby 2.7
14
+ * Made `@rep` (not just `@item_rep`) available in the Rendering helper (#1484, #1488)
15
+ * Made the `:relativize_paths` filter relativize the `value` attribute, not the `content` one, of the `param` HTML element (#1491)
16
+ * Made the `:relativize_paths` filter support relativizing paths in `srcset` attributes (#1475, #1492)
17
+ * Fixed an issue that could cause items to be marked as outdated when they shouldn’t be (#1471, #1493).
18
+
3
19
  ## 4.11.14 (2019-11-10)
4
20
 
5
21
  Fixes:
data/lib/nanoc.rb CHANGED
@@ -34,18 +34,20 @@ require 'uri'
34
34
 
35
35
  # Load extracted Nanoc dependencies
36
36
  require 'nanoc-core'
37
+ require 'nanoc-cli'
38
+ require 'nanoc-checking'
39
+ require 'nanoc-deploying'
37
40
 
38
41
  # Re-export from Nanoc::Core
39
42
  Nanoc::Identifier = Nanoc::Core::Identifier
40
43
  Nanoc::DataSource = Nanoc::Core::DataSource
41
44
  Nanoc::Filter = Nanoc::Core::Filter
42
45
  Nanoc::Error = Nanoc::Core::Error
46
+ Nanoc::Check = Nanoc::Checking::Check
43
47
 
44
48
  # Load Nanoc
45
49
  require 'nanoc/version'
46
- require 'nanoc/base'
47
50
  require 'nanoc/checking'
48
- require 'nanoc/deploying'
49
51
  require 'nanoc/extra'
50
52
  require 'nanoc/data_sources'
51
53
  require 'nanoc/filters'
@@ -48,6 +48,12 @@ module Nanoc::DataSources
48
48
  #
49
49
  # @api private
50
50
  class Filesystem < Nanoc::DataSource
51
+ class AmbiguousMetadataAssociationError < ::Nanoc::Core::Error
52
+ def initialize(content_filenames, meta_filename)
53
+ super("There are multiple content files (#{content_filenames.sort.join(', ')}) that could match the file containing metadata (#{meta_filename}).")
54
+ end
55
+ end
56
+
51
57
  identifiers :filesystem, :filesystem_unified
52
58
 
53
59
  # See {Nanoc::DataSource#up}.
@@ -85,9 +91,9 @@ module Nanoc::DataSources
85
91
  def changes_for_dir(dir)
86
92
  require 'listen'
87
93
 
88
- Nanoc::ChangesStream.new do |cl|
94
+ Nanoc::Core::ChangesStream.new do |cl|
89
95
  listener =
90
- Listen.to(dir, latency: 0.0, wait_for_delay: 0.0) do |_modifieds, _addeds, _deleteds|
96
+ Listen.to(dir, latency: 0.1, wait_for_delay: 0.0) do |_modifieds, _addeds, _deleteds|
91
97
  cl.unknown
92
98
  end
93
99
 
@@ -203,7 +209,7 @@ module Nanoc::DataSources
203
209
 
204
210
  have_possible_ambiguity = meta_filename && content_filenames.size > 1
205
211
  if have_possible_ambiguity && content_filenames.count { |fn| !parser.frontmatter?(fn) } != 1
206
- raise Nanoc::Int::Errors::AmbiguousMetadataAssociation.new(content_filenames, meta_filename)
212
+ raise Nanoc::DataSources::Filesystem::AmbiguousMetadataAssociationError.new(content_filenames, meta_filename)
207
213
  end
208
214
 
209
215
  content_filenames.each do |content_filename|
data/lib/nanoc/extra.rb CHANGED
@@ -17,4 +17,5 @@ end
17
17
 
18
18
  require_relative 'extra/link_collector'
19
19
  require_relative 'extra/jruby_nokogiri_warner'
20
+ require_relative 'extra/srcset_parser'
20
21
  require_relative 'extra/core_ext'
@@ -1,4 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'nanoc/extra/core_ext/pathname'
4
3
  require 'nanoc/extra/core_ext/time'
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc
4
+ module Extra
5
+ # @api private
6
+ class SrcsetParser
7
+ class InvalidFormat < ::Nanoc::Core::Error
8
+ def initialize
9
+ super('Invalid srcset format')
10
+ end
11
+ end
12
+
13
+ REGEX_REST =
14
+ /
15
+ ( # Zero or one of the following:
16
+ ( # A width descriptor, consisting of:
17
+ \s+ # ASCII whitespace
18
+ \d+ # a valid non-negative integer
19
+ w # a U+0077 LATIN SMALL LETTER W character
20
+ )
21
+ |
22
+ ( # A pixel density descriptor, consisting of
23
+ \s+ # ASCII whitespace
24
+ (\d*\.)?\d+ # a valid floating-point number
25
+ x # and a U+0078 LATIN SMALL LETTER X character.
26
+ )
27
+ )*
28
+ /x.freeze
29
+
30
+ def initialize(value)
31
+ @value = value
32
+ end
33
+
34
+ def call
35
+ matches = []
36
+
37
+ loop do
38
+ match = {}
39
+
40
+ scan(/\s*/)
41
+ match[:url] = scan(/[^, ]+/)
42
+ match[:rest] = scan(REGEX_REST)
43
+ scan(/\s*/)
44
+
45
+ matches << match
46
+
47
+ next if try_scan(/,/)
48
+ break if eos?
49
+
50
+ raise(InvalidFormat)
51
+ end
52
+
53
+ matches
54
+ rescue InvalidFormat
55
+ @value
56
+ end
57
+
58
+ private
59
+
60
+ def scan(pattern)
61
+ match = try_scan(pattern)
62
+
63
+ match || raise(InvalidFormat)
64
+ end
65
+
66
+ def try_scan(pattern)
67
+ scanner.scan(pattern)
68
+ end
69
+
70
+ def eos?
71
+ scanner.eos?
72
+ end
73
+
74
+ def scanner
75
+ @_scanner ||= StringScanner.new(@value)
76
+ end
77
+ end
78
+ end
79
+ end
@@ -11,9 +11,6 @@ module Nanoc::Filters
11
11
  #
12
12
  # @param [String] content The content to filter
13
13
  #
14
- # @option params [Integer] :safe_level (nil) The safe level (`$SAFE`) to
15
- # use while running this filter
16
- #
17
14
  # @option params [String] :trim_mode (nil) The trim mode to use
18
15
  #
19
16
  # @return [String] The filtered content
@@ -29,9 +26,8 @@ module Nanoc::Filters
29
26
  assigns_binding = context.get_binding(&proc)
30
27
 
31
28
  # Get result
32
- safe_level = params[:safe_level]
33
29
  trim_mode = params[:trim_mode]
34
- erb = ::ERB.new(content, safe_level, trim_mode)
30
+ erb = ::ERB.new(content, nil, trim_mode)
35
31
  erb.filename = filename
36
32
  erb.result(assigns_binding)
37
33
  end
@@ -10,7 +10,16 @@ module Nanoc::Filters
10
10
 
11
11
  DDMemoize.activate(self)
12
12
 
13
- SELECTORS = ['*/@href', '*/@src', 'object/@data', 'param[@name="movie"]/@content', 'form/@action', 'comment()'].freeze
13
+ SELECTORS =
14
+ [
15
+ '*/@href',
16
+ '*/@src',
17
+ 'object/@data',
18
+ 'param[@name="movie"]/@value',
19
+ 'form/@action',
20
+ 'comment()',
21
+ { path: '*/@srcset', type: :srcset },
22
+ ].freeze
14
23
 
15
24
  GCSE_SEARCH_WORKAROUND = 'nanoc__gcse_search__f7ac3462f628a053f86fe6563c0ec98f1fe45cee'
16
25
 
@@ -135,14 +144,7 @@ module Nanoc::Filters
135
144
  content = apply_gcse_search_workaround(content)
136
145
 
137
146
  doc = /<html[\s>]/.match?(content) ? klass.parse(content) : klass.fragment(content)
138
- selector = selectors.map { |sel| "descendant-or-self::#{sel}" }.join('|')
139
- doc.xpath(selector, namespaces).each do |node|
140
- if node.name == 'comment'
141
- nokogiri_process_comment(node, doc, selectors, namespaces, klass, type, params)
142
- elsif path_is_relativizable?(node.content, params)
143
- node.content = relative_path_to(node.content)
144
- end
145
- end
147
+ handle_selectors(selectors, doc, namespaces, klass, type, params)
146
148
 
147
149
  output =
148
150
  case type
@@ -163,6 +165,33 @@ module Nanoc::Filters
163
165
  content.gsub(GCSE_SEARCH_WORKAROUND, 'gcse:search')
164
166
  end
165
167
 
168
+ def handle_selectors(selectors, doc, namespaces, klass, type, params)
169
+ selectors_by_type(selectors).each do |selector_type, sub_selectors|
170
+ selector = sub_selectors.map { |sel| "descendant-or-self::#{sel.fetch(:path)}" }.join('|')
171
+
172
+ doc.xpath(selector, namespaces).each do |node|
173
+ if node.name == 'comment'
174
+ nokogiri_process_comment(node, doc, sub_selectors, namespaces, klass, type, params)
175
+ elsif path_is_relativizable?(node.content, params)
176
+ node.content = relativize_node(node, selector_type)
177
+ end
178
+ end
179
+ end
180
+ end
181
+
182
+ def selectors_by_type(selectors)
183
+ typed_selectors =
184
+ selectors.map do |s|
185
+ if s.respond_to?(:keys)
186
+ s
187
+ else
188
+ { path: s, type: :basic }
189
+ end
190
+ end
191
+
192
+ typed_selectors.group_by { |s| s.fetch(:type) }
193
+ end
194
+
166
195
  def nokogiri_process_comment(node, doc, selectors, namespaces, klass, type, params)
167
196
  content = node.content.dup.sub(%r{^(\s*\[.+?\]>\s*)(.+?)(\s*<!\[endif\])}m) do |_m|
168
197
  beginning = Regexp.last_match[1]
@@ -175,8 +204,31 @@ module Nanoc::Filters
175
204
  node.replace(Nokogiri::XML::Comment.new(doc, content))
176
205
  end
177
206
 
207
+ def relativize_node(node, selector_type)
208
+ case selector_type
209
+ when :basic
210
+ relative_path_to(node.content)
211
+ when :srcset
212
+ handle_srcset_node(node)
213
+ else
214
+ raise Nanoc::Core::Errors::InternalInconsistency, "Unsupported selector type #{selector_type.inspect} in #{self.class}"
215
+ end
216
+ end
217
+
218
+ def handle_srcset_node(node)
219
+ parsed = Nanoc::Extra::SrcsetParser.new(node.content).call
220
+
221
+ if parsed.is_a?(Array)
222
+ parsed.map do |pair|
223
+ [relative_path_to(pair[:url]), pair[:rest]].join('')
224
+ end.join(',')
225
+ else
226
+ relative_path_to(parsed)
227
+ end
228
+ end
229
+
178
230
  def path_is_relativizable?(path, params)
179
- path.start_with?('/') && !exclude?(path, params)
231
+ path.match?(/\A\s*\//) && !exclude?(path, params)
180
232
  end
181
233
  end
182
234
  end
@@ -8,8 +8,8 @@ module Nanoc::Helpers
8
8
  # @param [String] identifier
9
9
  # @param [Hash] other_assigns
10
10
  #
11
- # @raise [Nanoc::Int::Errors::UnknownLayout]
12
- # @raise [Nanoc::Int::Errors::CannotDetermineFilter]
11
+ # @raise [Nanoc::Core::Errors::UnknownLayout]
12
+ # @raise [Nanoc::Core::Errors::CannotDetermineFilter]
13
13
  # @raise [Nanoc::Filter::UnknownFilter]
14
14
  #
15
15
  # @return [String, nil]
@@ -17,7 +17,7 @@ module Nanoc::Helpers
17
17
  # Find layout
18
18
  layout_view = @layouts[identifier]
19
19
  layout_view ||= @layouts[identifier.__nanoc_cleaned_identifier]
20
- raise Nanoc::Int::Errors::UnknownLayout.new(identifier) if layout_view.nil?
20
+ raise Nanoc::Core::Errors::UnknownLayout.new(identifier) if layout_view.nil?
21
21
 
22
22
  layout = layout_view._unwrap
23
23
 
@@ -33,6 +33,7 @@ module Nanoc::Helpers
33
33
  content: captured_content,
34
34
  item: @item,
35
35
  item_rep: @item_rep,
36
+ rep: @item_rep,
36
37
  items: @items,
37
38
  layout: layout_view,
38
39
  layouts: @layouts,
@@ -43,7 +44,7 @@ module Nanoc::Helpers
43
44
  filter_name_and_args = @config._context.compilation_context.filter_name_and_args_for_layout(layout)
44
45
  filter_name = filter_name_and_args.name
45
46
  filter_args = filter_name_and_args.args
46
- raise Nanoc::Int::Errors::CannotDetermineFilter.new(layout.identifier) if filter_name.nil?
47
+ raise Nanoc::Core::Errors::CannotDetermineFilter.new(layout.identifier) if filter_name.nil?
47
48
 
48
49
  # Get filter class
49
50
  filter_class = Nanoc::Filter.named!(filter_name)
@@ -11,10 +11,5 @@ end
11
11
  Nanoc::CLI.after_setup do
12
12
  root = File.dirname(__FILE__)
13
13
  commands_path = File.join(root, 'orig_cli', 'commands')
14
- Nanoc::CLI.add_command(Cri::Command.load_file(File.join(commands_path, 'check.rb'), infer_name: true))
15
- Nanoc::CLI.add_command(Cri::Command.load_file(File.join(commands_path, 'deploy.rb'), infer_name: true))
16
14
  Nanoc::CLI.add_command(Cri::Command.load_file(File.join(commands_path, 'show-rules.rb'), infer_name: true))
17
-
18
- # TODO: move into nanoc-deploying, once that exists as a package
19
- Nanoc::CLI::Commands::ShowPlugins.add_plugin_class(Nanoc::Deploying::Deployer, 'Deployers')
20
15
  end
@@ -6,6 +6,7 @@ module Nanoc
6
6
  end
7
7
  end
8
8
 
9
+ require_relative 'rule_dsl/errors'
9
10
  require_relative 'rule_dsl/compiler_dsl'
10
11
  require_relative 'rule_dsl/action_provider'
11
12
  require_relative 'rule_dsl/action_recorder'
@@ -29,7 +29,7 @@ module Nanoc::RuleDSL
29
29
 
30
30
  def rep_names_for(item)
31
31
  matching_rules = @rules_collection.item_compilation_rules_for(item)
32
- raise Nanoc::Int::Errors::NoMatchingCompilationRuleFound.new(item) if matching_rules.empty?
32
+ raise Nanoc::RuleDSL::Errors::NoMatchingCompilationRuleFound.new(item) if matching_rules.empty?
33
33
 
34
34
  matching_rules.map(&:rep_name).uniq
35
35
  end
@@ -231,7 +231,7 @@ module Nanoc::RuleDSL
231
231
  # include_rules 'rules/content'
232
232
  def include_rules(name)
233
233
  filename = [name.to_s, "#{name}.rb", "./#{name}", "./#{name}.rb"].find { |f| File.file?(f) }
234
- raise Nanoc::Int::Errors::NoRulesFileFound.new if filename.nil?
234
+ raise Nanoc::RuleDSL::Errors::NoRulesFileFound.new if filename.nil?
235
235
 
236
236
  Nanoc::RuleDSL::RulesLoader.new(@config, @rules_collection).parse(filename)
237
237
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc
4
+ module RuleDSL
5
+ module Errors
6
+ # Error that is raised when no rules file can be found in the current
7
+ # working directory.
8
+ class NoRulesFileFound < ::Nanoc::Core::Error
9
+ def initialize
10
+ super('This site does not have a rules file, which is required for Nanoc sites.')
11
+ end
12
+ end
13
+
14
+ # Error that is raised when no compilation rule that can be applied to the
15
+ # current item can be found.
16
+ class NoMatchingCompilationRuleFound < ::Nanoc::Core::Error
17
+ # @param [Nanoc::Core::Item] item The item for which no compilation rule
18
+ # could be found
19
+ def initialize(item)
20
+ super("No compilation rules were found for the “#{item.identifier}” item.")
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -10,7 +10,7 @@ module Nanoc::RuleDSL
10
10
  # Find rules file
11
11
  rules_filenames = ['Rules', 'rules', 'Rules.rb', 'rules.rb']
12
12
  rules_filename = rules_filenames.find { |f| File.file?(f) }
13
- raise Nanoc::Int::Errors::NoRulesFileFound.new if rules_filename.nil?
13
+ raise Nanoc::RuleDSL::Errors::NoRulesFileFound.new if rules_filename.nil?
14
14
 
15
15
  parse(rules_filename)
16
16
  end
data/lib/nanoc/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Nanoc
4
4
  # The current Nanoc version.
5
- VERSION = '4.11.14'
5
+ VERSION = '4.11.15'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.14
4
+ version: 4.11.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-10 00:00:00.000000000 Z
11
+ date: 2020-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -38,34 +38,62 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nanoc-checking
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: nanoc-cli
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - '='
46
60
  - !ruby/object:Gem::Version
47
- version: 4.11.14
61
+ version: 4.11.15
48
62
  type: :runtime
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - '='
53
67
  - !ruby/object:Gem::Version
54
- version: 4.11.14
68
+ version: 4.11.15
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: nanoc-core
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - '='
60
74
  - !ruby/object:Gem::Version
61
- version: 4.11.14
75
+ version: 4.11.15
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - '='
67
81
  - !ruby/object:Gem::Version
68
- version: 4.11.14
82
+ version: 4.11.15
83
+ - !ruby/object:Gem::Dependency
84
+ name: nanoc-deploying
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: parallel
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -123,40 +151,17 @@ files:
123
151
  - README.md
124
152
  - bin/nanoc
125
153
  - lib/nanoc.rb
126
- - lib/nanoc/base.rb
127
- - lib/nanoc/base/changes_stream.rb
128
- - lib/nanoc/base/errors.rb
129
- - lib/nanoc/checking.rb
130
- - lib/nanoc/checking/check.rb
131
- - lib/nanoc/checking/checks.rb
132
- - lib/nanoc/checking/checks/css.rb
133
- - lib/nanoc/checking/checks/external_links.rb
134
- - lib/nanoc/checking/checks/html.rb
135
- - lib/nanoc/checking/checks/internal_links.rb
136
- - lib/nanoc/checking/checks/mixed_content.rb
137
- - lib/nanoc/checking/checks/stale.rb
138
- - lib/nanoc/checking/checks/w3c_validator.rb
139
- - lib/nanoc/checking/dsl.rb
140
- - lib/nanoc/checking/issue.rb
141
- - lib/nanoc/checking/loader.rb
142
- - lib/nanoc/checking/runner.rb
143
154
  - lib/nanoc/data_sources.rb
144
155
  - lib/nanoc/data_sources/filesystem.rb
145
156
  - lib/nanoc/data_sources/filesystem/errors.rb
146
157
  - lib/nanoc/data_sources/filesystem/parser.rb
147
158
  - lib/nanoc/data_sources/filesystem/tools.rb
148
- - lib/nanoc/deploying.rb
149
- - lib/nanoc/deploying/deployer.rb
150
- - lib/nanoc/deploying/deployers.rb
151
- - lib/nanoc/deploying/deployers/fog.rb
152
- - lib/nanoc/deploying/deployers/git.rb
153
- - lib/nanoc/deploying/deployers/rsync.rb
154
159
  - lib/nanoc/extra.rb
155
160
  - lib/nanoc/extra/core_ext.rb
156
- - lib/nanoc/extra/core_ext/pathname.rb
157
161
  - lib/nanoc/extra/core_ext/time.rb
158
162
  - lib/nanoc/extra/jruby_nokogiri_warner.rb
159
163
  - lib/nanoc/extra/link_collector.rb
164
+ - lib/nanoc/extra/srcset_parser.rb
160
165
  - lib/nanoc/filters.rb
161
166
  - lib/nanoc/filters/asciidoc.rb
162
167
  - lib/nanoc/filters/asciidoctor.rb
@@ -203,8 +208,6 @@ files:
203
208
  - lib/nanoc/helpers/text.rb
204
209
  - lib/nanoc/helpers/xml_sitemap.rb
205
210
  - lib/nanoc/orig_cli.rb
206
- - lib/nanoc/orig_cli/commands/check.rb
207
- - lib/nanoc/orig_cli/commands/deploy.rb
208
211
  - lib/nanoc/orig_cli/commands/show-rules.rb
209
212
  - lib/nanoc/rule_dsl.rb
210
213
  - lib/nanoc/rule_dsl/action_provider.rb
@@ -213,6 +216,7 @@ files:
213
216
  - lib/nanoc/rule_dsl/compilation_rule.rb
214
217
  - lib/nanoc/rule_dsl/compilation_rule_context.rb
215
218
  - lib/nanoc/rule_dsl/compiler_dsl.rb
219
+ - lib/nanoc/rule_dsl/errors.rb
216
220
  - lib/nanoc/rule_dsl/routing_rule.rb
217
221
  - lib/nanoc/rule_dsl/routing_rule_context.rb
218
222
  - lib/nanoc/rule_dsl/rule.rb
@@ -239,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
243
  - !ruby/object:Gem::Version
240
244
  version: '0'
241
245
  requirements: []
242
- rubygems_version: 3.0.6
246
+ rubygems_version: 3.1.2
243
247
  signing_key:
244
248
  specification_version: 4
245
249
  summary: A static-site generator with a focus on flexibility.