nanoc-tidy.rb 0.8.1 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0898b9a7ec2f3c137c9fa5233313a88102ea13ad27f8b6093f258c1f0f096e66'
4
- data.tar.gz: 344d471e7428617674f06a759da09dcde5807ccdbc811ee76ab0a8e3d5d01083
3
+ metadata.gz: a795c8b72d5a01390d1fc1207f591907122770a381b87ce678e07536176e1b84
4
+ data.tar.gz: 334ae45c5f9d92401b5277a72eab418cd520b7b9cc0f867a6f22b944221ccefb
5
5
  SHA512:
6
- metadata.gz: dd18a0e8598f6cfd2fe27a2294deed691d8e671110ea1efa3521fbb7c0005a17e43178251c9a90a331a0a8bbfdea46fb728982b78debb49a8c8699d7eb0a1fd7
7
- data.tar.gz: 84471209421d20f88c6a6b36e05ed51f11c85cfebb623ad63c93ba35cf92a53335461cf518ea1ed56a32f4295e07d0924e91a5ad2be06ccf52dfbca9667c4d8a
6
+ metadata.gz: e9dcc2d5a72046d5250db9483057e6b64e2ead1ea5ceaea0a4e262cd54612698cd2314a19a5bd1ca52c8c1a22c947f1feddef9fe9fb5aa654b32d56ba169610e
7
+ data.tar.gz: b4d645c500657c30390a4c7cca1f75c73642cc45ef2e0bc88dc05a65bb7b2de58cdca362b848036b959c040a8f5d464638adcbcd3de0b5ff5d1802a6744be6f8
@@ -34,12 +34,13 @@ module Nanoc::Tidy
34
34
  # @return [String]
35
35
  # Returns HTML content (modified)
36
36
  def run(content, options = {})
37
+ options = Ryo(options)
37
38
  file = temporary_file(
38
39
  File.basename(item.identifier.to_s),
39
40
  content
40
41
  )
41
- spawn options[:exe] || "tidy5",
42
- [*default_argv, *(options[:argv] || []), "-modify", file.path]
42
+ spawn options.exe || "tidy5",
43
+ [*default_argv, *(options.argv || []), "-modify", file.path]
43
44
  File.read(file.path)
44
45
  ensure
45
46
  file ? file.tap(&:unlink).close : nil
@@ -19,11 +19,17 @@ module Nanoc::Tidy
19
19
  def spawn(exe, argv)
20
20
  r = cmd(exe, *argv)
21
21
  ##
22
- # exit codes
22
+ # tidy-html5 exit codes
23
23
  # * 0: no warnings, no errors
24
24
  # * 1: has warnings
25
25
  # * 2: has errors
26
- if [0, 1].include?(r.exit_status)
26
+ if r.exit_status == 1
27
+ if r.stderr =~ /No such file or directory/
28
+ raise Nanoc::Tidy::Error, "The #{exe} executable was not found"
29
+ else
30
+ r.exit_status
31
+ end
32
+ elsif r.exit_status == 0
27
33
  r.exit_status
28
34
  else
29
35
  raise Nanoc::Tidy::Error,
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Nanoc
4
4
  module Tidy
5
- VERSION = "0.8.1"
5
+ VERSION = "0.8.3"
6
6
  end
7
7
  end
data/lib/nanoc/tidy.rb CHANGED
@@ -6,6 +6,7 @@ module Nanoc::Tidy
6
6
  # Generic error
7
7
  Error = Class.new(RuntimeError)
8
8
 
9
+ require "ryo"
9
10
  require_relative "tidy/version"
10
11
  require_relative "tidy/filter"
11
12
 
@@ -12,7 +12,8 @@ Gem::Specification.new do |gem|
12
12
  gem.require_paths = ["lib"]
13
13
  gem.summary = "nanoc-tidy.rb = nanoc + tidy-html5"
14
14
  gem.description = gem.summary
15
- gem.add_runtime_dependency "test-cmd.rb", "~> 0.12.2"
15
+ gem.add_runtime_dependency "ryo.rb", "~> 0.5"
16
+ gem.add_runtime_dependency "test-cmd.rb", "~> 0.12.3"
16
17
  gem.add_development_dependency "yard", "~> 0.9"
17
18
  gem.add_development_dependency "redcarpet", "~> 3.5"
18
19
  gem.add_development_dependency "test-unit", "~> 3.6"
@@ -4,17 +4,25 @@ require_relative "setup"
4
4
 
5
5
  class FilterTest < Test::Unit::TestCase
6
6
  def test_default_options
7
- options = {argv: ["--tidy-mark", "false"]}
7
+ options = {exe:, argv: ["--tidy-mark", "false"]}
8
8
  assert_equal read_result("default_options.html"),
9
9
  filter_for("fixture.html").run(html, options)
10
10
  end
11
11
 
12
12
  def test_upper_option
13
- options = {argv: ["-upper", "--tidy-mark", "false"]}
13
+ options = {exe:, argv: ["-upper", "--tidy-mark", "false"]}
14
14
  assert_equal read_result("upper_option.html"),
15
15
  filter_for("fixture.html").run(html, options)
16
16
  end
17
17
 
18
+ def test_exe_not_found
19
+ options = {exe: "/path/not/found", argv: ["-upper", "--tidy-mark", "false"]}
20
+ assert_raises(
21
+ Nanoc::Tidy::Error,
22
+ "The /path/not/found executable was not found"
23
+ ) { filter_for("fixture.html").run(html, options) }
24
+ end
25
+
18
26
  private
19
27
 
20
28
  def filter_for(basename)
@@ -39,4 +47,8 @@ class FilterTest < Test::Unit::TestCase
39
47
  def html
40
48
  File.binread "./test/fixtures/fixture.html"
41
49
  end
50
+
51
+ def exe
52
+ `which tidy || which tidy5`.chomp
53
+ end
42
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-tidy.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
@@ -10,20 +10,34 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2024-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ryo.rb
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: test-cmd.rb
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: 0.12.2
33
+ version: 0.12.3
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: 0.12.2
40
+ version: 0.12.3
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: yard
29
43
  requirement: !ruby/object:Gem::Requirement