nanoc 4.12.6 → 4.12.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7930f72e16665dbb7ec96deb6430f004a6c67fc948809ee464786910138aa702
4
- data.tar.gz: dd34cd1ee0145b4308351885bda5d5a7b9d7b81025d76e0c253e7577e2baf2d4
3
+ metadata.gz: fdb0492ec48bece377285f3e02e3cec63ec48af4542c4aa55006e3bb1b06a6e9
4
+ data.tar.gz: 8daf5631e1711f91e6ed2c2f571f456d12140fb4285def555f0d18e4b311ad5b
5
5
  SHA512:
6
- metadata.gz: 327c9540056f40e9bf62b2f8fab40eb6d0b28c21b255f38350fefc8132732249289368a88aa98c7871298f58c7b289c7fe0cb29413108b2d3f20151adc0f9309
7
- data.tar.gz: 05a90540eb2bda0268bb00d82fde2d498e8eb60be6640c19d9ae77a3a630d22ecd7788f80862032b8088aee361766036b6fac9e3690a8aeb56f26e7eb3c07543
6
+ metadata.gz: ebb45b98247466d11385db0285d1e24d210c6aeb037bbbbe10b655dfdfcfdd05f80206c7282b5cfb4bcb69bbeb16ce73355423b43111905edd49a1c062b7c5bf
7
+ data.tar.gz: ff4219588e17be3de27c20e0fdaa76036587e94b6b204480baffc06786d5ad1a79ae0280297ec01e9af50fa580d2541d7178eb1ae2c9b5bc16a02065c4545f61
data/NEWS.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.12.7 (2022-06-06)
4
+
5
+ Fixes:
6
+
7
+ - Dropped support for incompatible Psych versions (#1577, #1583)
8
+
9
+ Enhancements:
10
+
11
+ - Replaced UglifyJS (unmaintained) with Terser (#1578, #1579)
12
+ - Dropped support for Ruby 2.6 (EOL) (#1580)
13
+
3
14
  ## 4.12.6 (2022-05-28)
4
15
 
5
16
  Fixes:
@@ -4,7 +4,7 @@
4
4
  class Nanoc::DataSources::Filesystem
5
5
  class Parser
6
6
  SEPARATOR = /(-{5}|-{3})/.source
7
- PERMITTED_YAML_CLASSES = [Symbol, Date, Time].freeze
7
+ PERMITTED_YAML_CLASSES = Nanoc::Core::ConfigLoader::PERMITTED_YAML_CLASSES
8
8
 
9
9
  class ParseResult
10
10
  attr_reader :content
@@ -48,6 +48,8 @@ module Nanoc::DataSources
48
48
  #
49
49
  # @api private
50
50
  class Filesystem < Nanoc::DataSource
51
+ PERMITTED_YAML_CLASSES = Nanoc::Core::ConfigLoader::PERMITTED_YAML_CLASSES
52
+
51
53
  class AmbiguousMetadataAssociationError < ::Nanoc::Core::Error
52
54
  def initialize(content_filenames, meta_filename)
53
55
  super("There are multiple content files (#{content_filenames.sort.join(', ')}) that could match the file containing metadata (#{meta_filename}).")
@@ -116,7 +118,7 @@ module Nanoc::DataSources
116
118
  attr_reader :is_binary
117
119
  alias binary? is_binary
118
120
 
119
- def initialize(is_binary:, content: nil, filename: nil, attributes:, content_checksum_data: nil, attributes_checksum_data: nil)
121
+ def initialize(is_binary:, attributes:, content: nil, filename: nil, content_checksum_data: nil, attributes_checksum_data: nil)
120
122
  if content.nil? && filename.nil?
121
123
  raise ArgumentError, '#initialize needs at least content or filename'
122
124
  end
@@ -150,7 +152,7 @@ module Nanoc::DataSources
150
152
  is_binary = content_filename && !@site_config[:text_extensions].include?(File.extname(content_filename)[1..-1])
151
153
 
152
154
  if is_binary && klass == Nanoc::Core::Item
153
- meta = (meta_filename && YAML.load_file(meta_filename, permitted_classes: Parser::PERMITTED_YAML_CLASSES)) || {}
155
+ meta = (meta_filename && YAML.safe_load_file(meta_filename, permitted_classes: PERMITTED_YAML_CLASSES)) || {}
154
156
 
155
157
  ProtoDocument.new(is_binary: true, filename: content_filename, attributes: meta)
156
158
  elsif is_binary && klass == Nanoc::Core::Layout
@@ -318,10 +320,8 @@ module Nanoc::DataSources
318
320
  raise Errors::MultipleMetaFiles.new(meta_filenames, basename)
319
321
  end
320
322
 
321
- unless config[:identifier_type] == 'full'
322
- unless [0, 1].include?(content_filenames.size)
323
- raise Errors::MultipleContentFiles.new(meta_filenames, basename)
324
- end
323
+ if (config[:identifier_type] != 'full') && ![0, 1].include?(content_filenames.size)
324
+ raise Errors::MultipleContentFiles.new(meta_filenames, basename)
325
325
  end
326
326
 
327
327
  all[basename] = []
@@ -2,22 +2,23 @@
2
2
 
3
3
  module Nanoc::Filters
4
4
  # @api private
5
- class UglifyJS < Nanoc::Filter
5
+ class Terser < Nanoc::Filter
6
+ identifier :terser
6
7
  identifier :uglify_js
7
8
 
8
- requires 'uglifier'
9
+ requires 'terser'
9
10
 
10
- # Runs the content through [UglifyJS](https://github.com/mishoo/UglifyJS2/).
11
- # This method optionally takes options to pass directly to Uglifier.
11
+ # Runs the content through [terser](https://github.com/ahorek/terser-ruby).
12
+ # This method optionally takes options to pass directly to Terser.
12
13
  #
13
14
  # @param [String] content The content to filter
14
15
  #
15
- # @option params [Array] :options ([]) A list of options to pass on to Uglifier
16
+ # @option params [Array] :options ([]) A list of options to pass on to Terser
16
17
  #
17
18
  # @return [String] The filtered content
18
19
  def run(content, params = {})
19
20
  # Add filename to load path
20
- Uglifier.new(params).compile(content)
21
+ ::Terser.new(params).compile(content)
21
22
  end
22
23
  end
23
24
  end
data/lib/nanoc/filters.rb CHANGED
@@ -30,6 +30,6 @@ require_relative 'filters/rubypants'
30
30
  require_relative 'filters/sass'
31
31
  require_relative 'filters/slim'
32
32
  require_relative 'filters/typogruby'
33
- require_relative 'filters/uglify_js'
33
+ require_relative 'filters/terser'
34
34
  require_relative 'filters/xsl'
35
35
  require_relative 'filters/yui_compressor'
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.12.6'
5
+ VERSION = '4.12.7'
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.12.6
4
+ version: 4.12.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-28 00:00:00.000000000 Z
11
+ date: 2022-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -64,28 +64,28 @@ dependencies:
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 4.12.6
67
+ version: 4.12.7
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - '='
73
73
  - !ruby/object:Gem::Version
74
- version: 4.12.6
74
+ version: 4.12.7
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: nanoc-core
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - '='
80
80
  - !ruby/object:Gem::Version
81
- version: 4.12.6
81
+ version: 4.12.7
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - '='
87
87
  - !ruby/object:Gem::Version
88
- version: 4.12.6
88
+ version: 4.12.7
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: nanoc-deploying
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -197,8 +197,8 @@ files:
197
197
  - lib/nanoc/filters/sass/functions.rb
198
198
  - lib/nanoc/filters/sass/importer.rb
199
199
  - lib/nanoc/filters/slim.rb
200
+ - lib/nanoc/filters/terser.rb
200
201
  - lib/nanoc/filters/typogruby.rb
201
- - lib/nanoc/filters/uglify_js.rb
202
202
  - lib/nanoc/filters/xsl.rb
203
203
  - lib/nanoc/filters/yui_compressor.rb
204
204
  - lib/nanoc/helpers.rb
@@ -243,14 +243,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
243
243
  requirements:
244
244
  - - ">="
245
245
  - !ruby/object:Gem::Version
246
- version: '2.6'
246
+ version: '2.7'
247
247
  required_rubygems_version: !ruby/object:Gem::Requirement
248
248
  requirements:
249
249
  - - ">="
250
250
  - !ruby/object:Gem::Version
251
251
  version: '0'
252
252
  requirements: []
253
- rubygems_version: 3.3.14
253
+ rubygems_version: 3.3.15
254
254
  signing_key:
255
255
  specification_version: 4
256
256
  summary: A static-site generator with a focus on flexibility.