nanoc 4.11.2 → 4.11.3

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +15 -8
  3. data/README.md +1 -1
  4. data/lib/nanoc.rb +4 -1
  5. data/lib/nanoc/base/entities.rb +0 -2
  6. data/lib/nanoc/base/entities/site.rb +8 -1
  7. data/lib/nanoc/base/errors.rb +0 -19
  8. data/lib/nanoc/base/services.rb +0 -3
  9. data/lib/nanoc/base/services/compiler/stage.rb +1 -1
  10. data/lib/nanoc/base/services/compiler/stages/calculate_checksums.rb +1 -1
  11. data/lib/nanoc/base/services/compiler/stages/load_stores.rb +1 -1
  12. data/lib/nanoc/base/services/compiler/stages/store_pre_compilation_state.rb +1 -1
  13. data/lib/nanoc/base/services/compiler_loader.rb +1 -1
  14. data/lib/nanoc/base/services/executor.rb +1 -1
  15. data/lib/nanoc/base/services/item_rep_builder.rb +22 -1
  16. data/lib/nanoc/base/services/outdatedness_checker.rb +2 -2
  17. data/lib/nanoc/base/services/outdatedness_rule.rb +1 -1
  18. data/lib/nanoc/checking/check.rb +1 -1
  19. data/lib/nanoc/checking/checks/external_links.rb +5 -0
  20. data/lib/nanoc/cli/commands/compile_listeners/diff_generator.rb +2 -8
  21. data/lib/nanoc/cli/commands/create-site.rb +3 -3
  22. data/lib/nanoc/cli/commands/shell.rb +1 -1
  23. data/lib/nanoc/cli/commands/show-rules.rb +1 -1
  24. data/lib/nanoc/deploying/deployers.rb +2 -0
  25. data/lib/nanoc/deploying/deployers/git.rb +8 -16
  26. data/lib/nanoc/deploying/deployers/rsync.rb +1 -2
  27. data/lib/nanoc/extra.rb +0 -1
  28. data/lib/nanoc/filters/asciidoc.rb +1 -5
  29. data/lib/nanoc/filters/colorize_syntax/colorizers.rb +3 -14
  30. data/lib/nanoc/filters/kramdown.rb +1 -1
  31. data/lib/nanoc/filters/mustache.rb +1 -1
  32. data/lib/nanoc/filters/rainpress.rb +1 -1
  33. data/lib/nanoc/filters/rdiscount.rb +1 -1
  34. data/lib/nanoc/helpers/blogging.rb +4 -4
  35. data/lib/nanoc/helpers/breadcrumbs.rb +2 -2
  36. data/lib/nanoc/helpers/capturing.rb +1 -1
  37. data/lib/nanoc/helpers/child_parent.rb +1 -1
  38. data/lib/nanoc/helpers/filtering.rb +1 -1
  39. data/lib/nanoc/helpers/html_escape.rb +1 -1
  40. data/lib/nanoc/helpers/link_to.rb +1 -1
  41. data/lib/nanoc/helpers/rendering.rb +1 -1
  42. data/lib/nanoc/helpers/tagging.rb +1 -1
  43. data/lib/nanoc/helpers/text.rb +1 -1
  44. data/lib/nanoc/helpers/xml_sitemap.rb +1 -1
  45. data/lib/nanoc/rule_dsl/action_provider.rb +1 -1
  46. data/lib/nanoc/rule_dsl/action_recorder.rb +2 -2
  47. data/lib/nanoc/rule_dsl/action_sequence_calculator.rb +4 -4
  48. data/lib/nanoc/spec.rb +2 -7
  49. data/lib/nanoc/version.rb +1 -1
  50. metadata +62 -12
  51. data/lib/nanoc/base/entities/action_sequence.rb +0 -80
  52. data/lib/nanoc/base/entities/checksum_collection.rb +0 -34
  53. data/lib/nanoc/base/services/action_provider.rb +0 -34
  54. data/lib/nanoc/base/services/action_sequence_builder.rb +0 -55
  55. data/lib/nanoc/base/services/instrumentor.rb +0 -17
  56. data/lib/nanoc/extra/piper.rb +0 -47
@@ -62,8 +62,7 @@ module Nanoc::Deploying::Deployers
62
62
  private
63
63
 
64
64
  def run_shell_cmd(cmd)
65
- piper = Nanoc::Extra::Piper.new(stdout: $stdout, stderr: $stderr)
66
- piper.run(cmd, nil)
65
+ TTY::Command.new(printer: :null).run(*cmd)
67
66
  end
68
67
  end
69
68
  end
@@ -16,6 +16,5 @@ module Nanoc::Extra
16
16
  end
17
17
 
18
18
  require_relative 'extra/link_collector'
19
- require_relative 'extra/piper'
20
19
  require_relative 'extra/jruby_nokogiri_warner'
21
20
  require_relative 'extra/core_ext'
@@ -12,11 +12,7 @@ module Nanoc::Filters
12
12
  #
13
13
  # @return [String] The filtered content
14
14
  def run(content, _params = {})
15
- stdout = StringIO.new
16
- stderr = $stderr
17
- piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
18
- piper.run(%w[asciidoc -o - -], content)
19
- stdout.string
15
+ TTY::Command.new(printer: :null).run('asciidoc -o - -', input: content).out
20
16
  end
21
17
  end
22
18
  end
@@ -13,8 +13,7 @@ module Nanoc::Filters::ColorizeSyntax::Colorizers
13
13
  private
14
14
 
15
15
  def check_availability(*cmd)
16
- piper = Nanoc::Extra::Piper.new(stdout: StringIO.new, stderr: StringIO.new)
17
- piper.run(cmd, nil)
16
+ TTY::Command.new(printer: :null).run!(*cmd).success?
18
17
  end
19
18
  end
20
19
 
@@ -66,12 +65,7 @@ module Nanoc::Filters::ColorizeSyntax::Colorizers
66
65
  cmd = ['pygmentize', '-l', language, '-f', 'html']
67
66
  cmd << '-O' << params.map { |k, v| "#{k}=#{v}" }.join(',') unless params.empty?
68
67
 
69
- stdout = StringIO.new
70
- stderr = $stderr
71
- piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
72
- piper.run(cmd, code)
73
-
74
- stdout.string
68
+ TTY::Command.new(printer: :null).run(*cmd, input: code).out
75
69
  end
76
70
  end
77
71
 
@@ -116,12 +110,7 @@ module Nanoc::Filters::ColorizeSyntax::Colorizers
116
110
  end
117
111
  end
118
112
 
119
- stdout = StringIO.new
120
- stderr = $stderr
121
- piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
122
- piper.run(cmd, code)
123
-
124
- stdout.string
113
+ TTY::Command.new(printer: :null).run(*cmd, input: code).out
125
114
  end
126
115
  end
127
116
 
@@ -7,7 +7,7 @@ module Nanoc::Filters
7
7
 
8
8
  requires 'kramdown'
9
9
 
10
- # Runs the content through [Kramdown](http://kramdown.gettalong.org/).
10
+ # Runs the content through [Kramdown](https://kramdown.gettalong.org/).
11
11
  # Parameters passed to this filter will be passed on to Kramdown.
12
12
  #
13
13
  # @param [String] content The content to filter
@@ -8,7 +8,7 @@ module Nanoc::Filters
8
8
  requires 'mustache'
9
9
 
10
10
  # Runs the content through
11
- # [Mustache](http://github.com/defunkt/mustache). This method takes no
11
+ # [Mustache](https://github.com/defunkt/mustache). This method takes no
12
12
  # options.
13
13
  #
14
14
  # @param [String] content The content to filter
@@ -7,7 +7,7 @@ module Nanoc::Filters
7
7
 
8
8
  requires 'rainpress'
9
9
 
10
- # Runs the content through [Rainpress](http://code.google.com/p/rainpress/).
10
+ # Runs the content through [Rainpress](https://github.com/ddfreyne/rainpress).
11
11
  # Parameters passed to this filter will be passed on to Rainpress.
12
12
  #
13
13
  # @param [String] content The content to filter
@@ -7,7 +7,7 @@ module Nanoc::Filters
7
7
 
8
8
  requires 'rdiscount'
9
9
 
10
- # Runs the content through [RDiscount](http://github.com/rtomayko/rdiscount).
10
+ # Runs the content through [RDiscount](https://github.com/davidfstr/rdiscount).
11
11
  #
12
12
  # @option params [Array] :extensions ([]) A list of RDiscount extensions
13
13
  #
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#blogging
4
+ # @see https://nanoc.ws/doc/reference/helpers/#blogging
5
5
  module Blogging
6
6
  # @return [Array]
7
7
  def articles
@@ -120,8 +120,8 @@ module Nanoc::Helpers
120
120
  xml.updated(updated.__nanoc_to_iso8601_time)
121
121
 
122
122
  # Add links
123
- xml.link(rel: 'alternate', href: (alt_link || root_url))
124
- xml.link(rel: 'self', href: feed_url)
123
+ xml.link(rel: 'alternate', href: (alt_link || root_url), type: 'text/html')
124
+ xml.link(rel: 'self', href: feed_url, type: 'application/atom+xml')
125
125
 
126
126
  # Add author information
127
127
  xml.author do
@@ -163,7 +163,7 @@ module Nanoc::Helpers
163
163
  end
164
164
 
165
165
  # Add link
166
- xml.link(rel: 'alternate', href: url)
166
+ xml.link(rel: 'alternate', href: url, type: 'text/html')
167
167
 
168
168
  # Add content
169
169
  summary = excerpt_proc.call(article)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#breadcrumbs
4
+ # @see https://nanoc.ws/doc/reference/helpers/#breadcrumbs
5
5
  module Breadcrumbs
6
- class AmbiguousAncestorError < Nanoc::Int::Errors::Generic
6
+ class AmbiguousAncestorError < ::Nanoc::Core::Error
7
7
  def initialize(pattern, items)
8
8
  @pattern = pattern
9
9
  @items = items
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#capturing
4
+ # @see https://nanoc.ws/doc/reference/helpers/#capturing
5
5
  module Capturing
6
6
  # @api private
7
7
  class SetContent
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#childparent
4
+ # @see https://nanoc.ws/doc/reference/helpers/#childparent
5
5
  module ChildParent
6
6
  def parent_of(item)
7
7
  if item.identifier.legacy?
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#filtering
4
+ # @see https://nanoc.ws/doc/reference/helpers/#filtering
5
5
  module Filtering
6
6
  require 'nanoc/helpers/capturing'
7
7
  include Nanoc::Helpers::Capturing
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#filtering
4
+ # @see https://nanoc.ws/doc/reference/helpers/#filtering
5
5
  module HTMLEscape
6
6
  require 'nanoc/helpers/capturing'
7
7
  include Nanoc::Helpers::Capturing
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#linkto
4
+ # @see https://nanoc.ws/doc/reference/helpers/#linkto
5
5
  module LinkTo
6
6
  require 'nanoc/helpers/html_escape'
7
7
  include Nanoc::Helpers::HTMLEscape
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#rendering
4
+ # @see https://nanoc.ws/doc/reference/helpers/#rendering
5
5
  module Rendering
6
6
  include Nanoc::Helpers::Capturing
7
7
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#tagging
4
+ # @see https://nanoc.ws/doc/reference/helpers/#tagging
5
5
  module Tagging
6
6
  require 'nanoc/helpers/html_escape'
7
7
  include Nanoc::Helpers::HTMLEscape
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#text
4
+ # @see https://nanoc.ws/doc/reference/helpers/#text
5
5
  module Text
6
6
  # @param [String] string
7
7
  # @param [Number] length
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::Helpers
4
- # @see http://nanoc.ws/doc/reference/helpers/#xmlsitemap
4
+ # @see https://nanoc.ws/doc/reference/helpers/#xmlsitemap
5
5
  module XMLSitemap
6
6
  # @option params [Array] :items
7
7
  # @option params [Proc] :rep_select
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nanoc::RuleDSL
4
- class ActionProvider < Nanoc::Int::ActionProvider
4
+ class ActionProvider < Nanoc::Core::ActionProvider
5
5
  identifier :rule_dsl
6
6
 
7
7
  # @api private
@@ -7,7 +7,7 @@ module Nanoc
7
7
 
8
8
  contract Nanoc::Core::ItemRep => C::Any
9
9
  def initialize(rep)
10
- @action_sequence_builder = Nanoc::Int::ActionSequenceBuilder.new(rep)
10
+ @action_sequence_builder = Nanoc::Core::ActionSequenceBuilder.new(rep)
11
11
 
12
12
  @any_layouts = false
13
13
  @last_snapshot = false
@@ -61,7 +61,7 @@ module Nanoc
61
61
  nil
62
62
  end
63
63
 
64
- contract C::None => Nanoc::Int::ActionSequence
64
+ contract C::None => Nanoc::Core::ActionSequence
65
65
  def action_sequence
66
66
  @action_sequence_builder.action_sequence
67
67
  end
@@ -40,7 +40,7 @@ module Nanoc::RuleDSL
40
40
 
41
41
  # @param [#reference] obj
42
42
  #
43
- # @return [Nanoc::Int::ActionSequence]
43
+ # @return [Nanoc::Core::ActionSequence]
44
44
  def [](obj)
45
45
  case obj
46
46
  when Nanoc::Core::ItemRep
@@ -78,7 +78,7 @@ module Nanoc::RuleDSL
78
78
 
79
79
  # @param [Nanoc::Core::Layout] layout
80
80
  #
81
- # @return [Nanoc::Int::ActionSequence]
81
+ # @return [Nanoc::Core::ActionSequence]
82
82
  def new_action_sequence_for_layout(layout)
83
83
  res = @rules_collection.filter_for_layout(layout)
84
84
 
@@ -86,7 +86,7 @@ module Nanoc::RuleDSL
86
86
  raise NoActionSequenceForLayoutException.new(layout)
87
87
  end
88
88
 
89
- Nanoc::Int::ActionSequenceBuilder.build(layout) do |b|
89
+ Nanoc::Core::ActionSequenceBuilder.build(layout) do |b|
90
90
  b.add_filter(res[0], res[1])
91
91
  end
92
92
  end
@@ -100,7 +100,7 @@ module Nanoc::RuleDSL
100
100
  actions << action
101
101
  end
102
102
  end
103
- Nanoc::Int::ActionSequence.new(seq.item_rep, actions: actions)
103
+ Nanoc::Core::ActionSequence.new(seq.item_rep, actions: actions)
104
104
  end
105
105
 
106
106
  def copy_paths_from_routing_rules(seq, snapshots_for_which_to_skip_routing_rule, rep:)
@@ -12,13 +12,8 @@ module Nanoc
12
12
  Dir.chdir(here)
13
13
  end
14
14
 
15
- def on_windows?
16
- Nanoc.on_windows?
17
- end
18
-
19
15
  def command?(cmd)
20
- which, null = on_windows? ? %w[where NUL] : ['which', '/dev/null']
21
- system("#{which} #{cmd} > #{null} 2>&1")
16
+ TTY::Which.exist?(cmd)
22
17
  end
23
18
 
24
19
  def skip_unless_have_command(cmd)
@@ -184,7 +179,7 @@ module Nanoc
184
179
  end
185
180
 
186
181
  def new_action_provider
187
- Class.new(Nanoc::Int::ActionProvider) do
182
+ Class.new(Nanoc::Core::ActionProvider) do
188
183
  def self.for(_context)
189
184
  raise NotImplementedError
190
185
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Nanoc
4
4
  # The current Nanoc version.
5
- VERSION = '4.11.2'
5
+ VERSION = '4.11.3'
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.2
4
+ version: 4.11.3
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-02-16 00:00:00.000000000 Z
11
+ date: 2019-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 4.11.2
47
+ version: 4.11.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 4.11.2
54
+ version: 4.11.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: parallel
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,62 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '1.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: tty-command
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.8'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.8'
111
+ - !ruby/object:Gem::Dependency
112
+ name: tty-file
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.7'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.7'
125
+ - !ruby/object:Gem::Dependency
126
+ name: tty-platform
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.2'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: tty-which
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '0.4'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '0.4'
97
153
  description: Nanoc is a static-site generator focused on flexibility. It transforms
98
154
  content from a format such as Markdown or AsciiDoc into another format, usually
99
155
  HTML, and lays out pages consistently to retain the site’s look and feel throughout.
@@ -113,8 +169,6 @@ files:
113
169
  - lib/nanoc/base/assertions.rb
114
170
  - lib/nanoc/base/changes_stream.rb
115
171
  - lib/nanoc/base/entities.rb
116
- - lib/nanoc/base/entities/action_sequence.rb
117
- - lib/nanoc/base/entities/checksum_collection.rb
118
172
  - lib/nanoc/base/entities/dependency.rb
119
173
  - lib/nanoc/base/entities/outdatedness_reasons.rb
120
174
  - lib/nanoc/base/entities/outdatedness_status.rb
@@ -140,8 +194,6 @@ files:
140
194
  - lib/nanoc/base/repos/store.rb
141
195
  - lib/nanoc/base/repos/textual_compiled_content_cache.rb
142
196
  - lib/nanoc/base/services.rb
143
- - lib/nanoc/base/services/action_provider.rb
144
- - lib/nanoc/base/services/action_sequence_builder.rb
145
197
  - lib/nanoc/base/services/compilation_context.rb
146
198
  - lib/nanoc/base/services/compiler.rb
147
199
  - lib/nanoc/base/services/compiler/phases.rb
@@ -170,7 +222,6 @@ files:
170
222
  - lib/nanoc/base/services/dependency_tracker.rb
171
223
  - lib/nanoc/base/services/executor.rb
172
224
  - lib/nanoc/base/services/filter.rb
173
- - lib/nanoc/base/services/instrumentor.rb
174
225
  - lib/nanoc/base/services/item_rep_builder.rb
175
226
  - lib/nanoc/base/services/item_rep_router.rb
176
227
  - lib/nanoc/base/services/item_rep_selector.rb
@@ -276,7 +327,6 @@ files:
276
327
  - lib/nanoc/extra/core_ext/time.rb
277
328
  - lib/nanoc/extra/jruby_nokogiri_warner.rb
278
329
  - lib/nanoc/extra/link_collector.rb
279
- - lib/nanoc/extra/piper.rb
280
330
  - lib/nanoc/filters.rb
281
331
  - lib/nanoc/filters/asciidoc.rb
282
332
  - lib/nanoc/filters/asciidoctor.rb
@@ -337,7 +387,7 @@ files:
337
387
  - lib/nanoc/rule_dsl/rules_loader.rb
338
388
  - lib/nanoc/spec.rb
339
389
  - lib/nanoc/version.rb
340
- homepage: http://nanoc.ws/
390
+ homepage: https://nanoc.ws/
341
391
  licenses:
342
392
  - MIT
343
393
  metadata: {}
@@ -356,7 +406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
356
406
  - !ruby/object:Gem::Version
357
407
  version: '0'
358
408
  requirements: []
359
- rubygems_version: 3.0.2
409
+ rubygems_version: 3.0.3
360
410
  signing_key:
361
411
  specification_version: 4
362
412
  summary: A static-site generator with a focus on flexibility.