nanoc-tidy.rb 0.8.0 → 0.8.2

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: 133f30c53d54b2f5cea16c3877fa597d86b5db84bb240214459eee5e6a8c4f07
4
- data.tar.gz: 8d054b51e4f6fbd7351fac5eb78ddcae57bcf175ebfea062c588daf9d5358c56
3
+ metadata.gz: 8d6e154d29de034dfe0b684d5e95473021844c209b99fcd5660e7bf9a9f68fd6
4
+ data.tar.gz: e03bc5eaa2bc6ce7d3b24fd449bc72ad4dd0e31b0aec5af5f4419ae4c298fc1d
5
5
  SHA512:
6
- metadata.gz: 95b712fefeaf461ec57efe23fbcfada16a9be99498ee923affd4db983ffa522157f95b2659a4fd726d626296a515a6cb1631ca1ae890af7caa5e8ef82949716a
7
- data.tar.gz: d83de9881073f9a53818fec78482c7a98023acc1bc798137b78a766b96f343cec659b54e06425cda3cd78c611d32a2b606c9f15cca466859ca3b95257e9cb4ef
6
+ metadata.gz: 8a92d50b08bdd9bbd65ab664c55a867404a9755ddf3c2f0dd4f40c8fecf48c00e84bfd824e5281cda17083b2963b4b7ccfb8614d3b40c308815570b7b53b8e00
7
+ data.tar.gz: 840a2eca0b0cbbeec99fa022d13f0674fb0eca061310b070e58d3d99c916cb14b43d249f6234b8c78217834f9ceadcac3dd1907a57692f4d3dfea2f73c505265
data/README.md CHANGED
@@ -32,7 +32,8 @@ end
32
32
  __Option: argv__
33
33
 
34
34
  The following example sets the "argv" filter option. <br>
35
- The filter option is combined with [Nanoc::Tidy.default_argv](https://0x1eef.github.io/x/nanoc-tidy.rb/Nanoc/Tidy/Filter#default_argv-class_method):
35
+ The filter option is combined with
36
+ [Nanoc::Tidy.default_argv](https://0x1eef.github.io/x/nanoc-tidy.rb/Nanoc/Tidy/Filter#default_argv-class_method):
36
37
 
37
38
  ```ruby
38
39
  # Rules
@@ -45,6 +46,23 @@ compile "/index.html.erb" do
45
46
  end
46
47
  ```
47
48
 
49
+ __Option: exe__
50
+
51
+ The "exe" option can be used to change the default executable
52
+ from "tidy5" to something else, the most common alternative
53
+ might be "tidy":
54
+
55
+ ```ruby
56
+ # Rules
57
+ require "nanoc-tidy"
58
+ compile "/index.html.erb" do
59
+ layout("/default.*")
60
+ filter(:erb)
61
+ filter(:tidy, exe: "tidy")
62
+ write("/index.html")
63
+ end
64
+ ```
65
+
48
66
  ## Install
49
67
 
50
68
  **Rubygems.org**
@@ -4,7 +4,6 @@ module Nanoc::Tidy
4
4
  class Filter < Nanoc::Filter
5
5
  require "fileutils"
6
6
  require_relative "spawn"
7
-
8
7
  include Spawn
9
8
  include FileUtils
10
9
 
@@ -35,15 +34,16 @@ module Nanoc::Tidy
35
34
  # @return [String]
36
35
  # Returns HTML content (modified)
37
36
  def run(content, options = {})
37
+ options = Ryo(options)
38
38
  file = temporary_file(
39
39
  File.basename(item.identifier.to_s),
40
40
  content
41
41
  )
42
- spawn tidy,
43
- [*default_argv, *(options[:argv] || []), "-modify", file.path]
42
+ spawn options.exe || "tidy5",
43
+ [*default_argv, *(options.argv || []), "-modify", file.path]
44
44
  File.read(file.path)
45
45
  ensure
46
- file&.unlink
46
+ file ? file.tap(&:unlink).close : nil
47
47
  end
48
48
 
49
49
  private
@@ -53,24 +53,14 @@ module Nanoc::Tidy
53
53
  end
54
54
 
55
55
  def temporary_file(basename, content)
56
- tempname = [
57
- ".nanoc.tidy.#{basename}.#{object_id}",
58
- SecureRandom.alphanumeric(3)
59
- ]
60
- Tempfile.new(tempname).tap do
61
- _1.write(content)
62
- _1.flush
63
- end
64
- end
65
-
66
- def tidy
67
- if system("which tidy > /dev/null 2>&1")
68
- "tidy"
69
- elsif system("which tidy5 > /dev/null 2>&1")
70
- "tidy5"
71
- else
72
- raise Nanoc::Tidy::Error, "tidy executable not found on $PATH"
73
- end
56
+ tmpdir = File.join(Dir.getwd, "tmp", "tidy")
57
+ name = item.identifier.to_s
58
+ file = Tempfile.new(
59
+ [ File.basename(name), File.extname(name) ],
60
+ mkdir_p(tmpdir).last
61
+ )
62
+ file.write(content)
63
+ file.tap(&:flush)
74
64
  end
75
65
  end
76
66
  end
@@ -14,7 +14,8 @@ module Nanoc::Tidy
14
14
  # @param [Array<String>] argv
15
15
  # An array of command line arguments
16
16
  #
17
- # @return [void]
17
+ # @return [Integer]
18
+ # Returns the exit code of the spawned process
18
19
  def spawn(exe, argv)
19
20
  r = cmd(exe, *argv)
20
21
  ##
@@ -29,8 +30,8 @@ module Nanoc::Tidy
29
30
  "#{File.basename(exe)} exited unsuccessfully\n" \
30
31
  "(item: #{item.identifier})\n" \
31
32
  "(exit code: #{r.exit_status})\n" \
32
- "(stdout:\n#{r.stdout})\n" \
33
- "(stderr:\n#{r.stderr})\n",
33
+ "(stdout: #{r.stdout&.chomp})\n" \
34
+ "(stderr: #{r.stderr&.chomp})\n",
34
35
  []
35
36
  end
36
37
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Nanoc
4
4
  module Tidy
5
- VERSION = "0.8.0"
5
+ VERSION = "0.8.2"
6
6
  end
7
7
  end
data/lib/nanoc/tidy.rb CHANGED
@@ -6,7 +6,7 @@ module Nanoc::Tidy
6
6
  # Generic error
7
7
  Error = Class.new(RuntimeError)
8
8
 
9
- require "securerandom"
9
+ require "ryo"
10
10
  require_relative "tidy/version"
11
11
  require_relative "tidy/filter"
12
12
 
@@ -10,9 +10,10 @@ Gem::Specification.new do |gem|
10
10
  gem.licenses = ["0BSD"]
11
11
  gem.files = `git ls-files`.split($/).reject { _1.start_with?(".") }
12
12
  gem.require_paths = ["lib"]
13
- gem.summary = "nanoc + tidy-html5"
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"
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-tidy.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-14 00:00:00.000000000 Z
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
@@ -136,7 +150,7 @@ dependencies:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0.6'
139
- description: nanoc + tidy-html5
153
+ description: nanoc-tidy.rb = nanoc + tidy-html5
140
154
  email:
141
155
  - 0x1eef@protonmail.com
142
156
  executables: []
@@ -180,5 +194,5 @@ requirements: []
180
194
  rubygems_version: 3.5.9
181
195
  signing_key:
182
196
  specification_version: 4
183
- summary: nanoc + tidy-html5
197
+ summary: nanoc-tidy.rb = nanoc + tidy-html5
184
198
  test_files: []