nanoc-live 1.0.0b5 → 1.0.0b6

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: d82aefea83eadf92f24e9efa6415df3f254bb92531476c927feeeba51fde9f5e
4
- data.tar.gz: c9b02ff923a7aaf90e89a523cfd1789755f49feb84300981828fab7273cbf24d
3
+ metadata.gz: dc4fb7c9249c44322e8f50d6ef2cded2d659a8be4856f229c1824f86f76505ba
4
+ data.tar.gz: 0b15b54e3543b0b22f7b3b27ab2d9374d41fde0525f8b0ca22fe0ae0e61c70f7
5
5
  SHA512:
6
- metadata.gz: 33a969f03f9693ee9f1bb907d9d7c864ff994ebd5f07c7bfb4b1cc55d3cca6c60a144bf86d239c41057d9df5f6fc1319b11922d921e6ee053c511c90510e27ab
7
- data.tar.gz: 2200627f081074bf6112352dae1d160cb60b1d38d20d21910f80a759ac30ebbf3cb1d3451b698ac70067c4110a13c140159b64558e965ae9403c1d50726f97e3
6
+ metadata.gz: 91412105e6511340a5baf4cefbf44b72f5e213733a62d33b9d6f394c0829a23e2bec96bd4725582984d3f713b66b237b259e018b65ae1927b439b749d0b318f4
7
+ data.tar.gz: 26ff48778052bcdc691c33b5556047e91cda9832ada694aedacfdd06295bdf3e8d2b93393367cb42e4b6e912314c93c22f955531214a961d4910d6b9489cd017
data/NEWS.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release notes for nanoc-live
2
2
 
3
+ ## 1.0.0b6 (2020-03-07)
4
+
5
+ Fixes:
6
+
7
+ * Restored compatibility with Nanoc 4.11.14.
8
+
3
9
  ## 1.0.0b5 (2019-11-16)
4
10
 
5
11
  Fixes:
data/lib/nanoc/live.rb CHANGED
@@ -12,9 +12,12 @@ end
12
12
 
13
13
  require_relative 'live/version'
14
14
  require_relative 'live/live_recompiler'
15
+ require_relative 'live/command_runners/live'
16
+
17
+ root = File.dirname(__FILE__)
18
+ live_command_path = File.join(root, 'live', 'commands', 'live.rb')
19
+ command = Cri::Command.load_file(live_command_path, infer_name: true)
15
20
 
16
21
  Nanoc::CLI.after_setup do
17
- root = File.dirname(__FILE__)
18
- live_command_path = File.join(root, 'live', 'commands', 'live.rb')
19
- Nanoc::CLI.add_command(Cri::Command.load_file(live_command_path, infer_name: true))
22
+ Nanoc::CLI.add_command(command)
20
23
  end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nanoc
4
+ module Live
5
+ module CommandRunners
6
+ class Live < ::Nanoc::CLI::CommandRunner
7
+ def run
8
+ if defined?(Guard::Nanoc)
9
+ $stderr.puts '-' * 40
10
+ $stderr.puts 'NOTE:'
11
+ $stderr.puts 'You are using the `nanoc live` command provided by `nanoc-live`, but the `guard-nanoc` gem is also installed, which also provides a `nanoc live` command.'
12
+ if defined?(Bundler)
13
+ $stderr.puts 'Recommendation: Remove `guard-nanoc` from your Gemfile.'
14
+ else
15
+ $stderr.puts 'Recommendation: Uninstall `guard-nanoc`.'
16
+ end
17
+ $stderr.puts '-' * 40
18
+ end
19
+
20
+ self.class.enter_site_dir
21
+
22
+ Thread.new do
23
+ Thread.current.abort_on_exception = true
24
+ if Thread.current.respond_to?(:report_on_exception)
25
+ Thread.current.report_on_exception = false
26
+ end
27
+
28
+ view_options = options.merge('live-reload': true)
29
+ Nanoc::CLI::Commands::View.new(view_options, [], self).run
30
+ end
31
+
32
+ Nanoc::Live::LiveRecompiler.new(command_runner: self).run
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -13,24 +13,4 @@ required :o, :host, 'specify the host to listen on (default: 127.0.0.1)', def
13
13
  required :p, :port, 'specify the port to listen on (default: 3000)', transform: Nanoc::CLI::Transform::Port, default: 3000
14
14
  no_params
15
15
 
16
- module Nanoc::Live::Commands
17
- class Live < ::Nanoc::CLI::CommandRunner
18
- def run
19
- self.class.enter_site_dir
20
-
21
- Thread.new do
22
- Thread.current.abort_on_exception = true
23
- if Thread.current.respond_to?(:report_on_exception)
24
- Thread.current.report_on_exception = false
25
- end
26
-
27
- view_options = options.merge('live-reload': true)
28
- Nanoc::CLI::Commands::View.new(view_options, [], self).run
29
- end
30
-
31
- Nanoc::Live::LiveRecompiler.new(command_runner: self).run
32
- end
33
- end
34
- end
35
-
36
- runner Nanoc::Live::Commands::Live
16
+ runner Nanoc::Live::CommandRunners::Live
@@ -1,135 +1,137 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Nanoc::Live
4
- class LiveRecompiler
5
- def initialize(command_runner:)
6
- @command_runner = command_runner
7
- end
8
-
9
- def run
10
- run_parent do |site|
11
- handle_changes(site, @command_runner)
3
+ module Nanoc
4
+ module Live
5
+ class LiveRecompiler
6
+ def initialize(command_runner:)
7
+ @command_runner = command_runner
12
8
  end
13
- end
14
9
 
15
- private
16
-
17
- def gen_changes_for_child(site)
18
- changes = [
19
- site.data_source.item_changes,
20
- site.data_source.layout_changes,
21
- gen_config_and_rules_changes,
22
- ]
23
-
24
- SlowEnumeratorTools.batch(SlowEnumeratorTools.merge(changes))
25
- end
10
+ def run
11
+ run_parent do |site|
12
+ handle_changes(site, @command_runner)
13
+ end
14
+ end
26
15
 
27
- def run_child(pipe_write, pipe_read)
28
- pipe_write.close
16
+ private
29
17
 
30
- site = Nanoc::Core::SiteLoader.new.new_from_cwd
31
- changes_enum = gen_changes_for_child(site)
32
- yield(site)
18
+ def gen_changes_for_child(site)
19
+ changes = [
20
+ site.data_source.item_changes,
21
+ site.data_source.layout_changes,
22
+ gen_config_and_rules_changes,
23
+ ]
33
24
 
34
- quit = Object.new
35
- parent_enum = Enumerator.new do |y|
36
- pipe_read.read
37
- y << quit
25
+ SlowEnumeratorTools.batch(SlowEnumeratorTools.merge(changes))
38
26
  end
39
27
 
40
- puts 'Listening for site changes…'
41
- SlowEnumeratorTools.merge([parent_enum, changes_enum]).each do |e|
42
- break if quit.equal?(e)
43
-
44
- $stderr.print 'Reloading site… '
45
- $stderr.flush
46
- site_loader = Nanoc::Core::SiteLoader.new
47
- site = Nanoc::Core::Site.new(
48
- config: Nanoc::Core::ConfigLoader.new.new_from_cwd,
49
- data_source: site_loader.gen_data_source_for_config(site.config),
50
- code_snippets: site.code_snippets,
51
- )
52
- $stderr.puts 'done'
28
+ def run_child(pipe_write, pipe_read)
29
+ pipe_write.close
53
30
 
31
+ site = Nanoc::Core::SiteLoader.new.new_from_cwd
32
+ changes_enum = gen_changes_for_child(site)
54
33
  yield(site)
55
- end
56
-
57
- exit 0
58
- rescue Interrupt
59
- exit 0
60
- end
61
34
 
62
- def run_parent
63
- # create initial child
64
- pipe_read, pipe_write = IO.pipe
65
- fork { run_child(pipe_write, pipe_read) { |s| yield(s) } }
66
- pipe_read.close
67
-
68
- changes = gen_lib_changes
69
- puts 'Listening for lib/ changes…'
70
- changes.each do |_e|
71
- # stop child
72
- pipe_write.write('q')
73
- pipe_write.close
74
- Process.wait
35
+ quit = Object.new
36
+ parent_enum = Enumerator.new do |y|
37
+ pipe_read.read
38
+ y << quit
39
+ end
40
+
41
+ puts 'Listening for site changes…'
42
+ SlowEnumeratorTools.merge([parent_enum, changes_enum]).each do |e|
43
+ break if quit.equal?(e)
44
+
45
+ $stderr.print 'Reloading site… '
46
+ $stderr.flush
47
+ site_loader = Nanoc::Core::SiteLoader.new
48
+ site = Nanoc::Core::Site.new(
49
+ config: Nanoc::Core::ConfigLoader.new.new_from_cwd,
50
+ data_source: site_loader.gen_data_source_for_config(site.config),
51
+ code_snippets: site.code_snippets,
52
+ )
53
+ $stderr.puts 'done'
54
+
55
+ yield(site)
56
+ end
57
+
58
+ exit 0
59
+ rescue Interrupt
60
+ exit 0
61
+ end
75
62
 
76
- # create new child
63
+ def run_parent
64
+ # create initial child
77
65
  pipe_read, pipe_write = IO.pipe
78
66
  fork { run_child(pipe_write, pipe_read) { |s| yield(s) } }
79
67
  pipe_read.close
80
- end
81
- rescue Interrupt
82
- end
83
68
 
84
- def handle_changes(site, command_runner)
85
- Nanoc::CLI::ErrorHandler.handle_while(exit_on_error: false) do
86
- unsafe_handle_changes(site, command_runner)
69
+ changes = gen_lib_changes
70
+ puts 'Listening for lib/ changes…'
71
+ changes.each do |_e|
72
+ # stop child
73
+ pipe_write.write('q')
74
+ pipe_write.close
75
+ Process.wait
76
+
77
+ # create new child
78
+ pipe_read, pipe_write = IO.pipe
79
+ fork { run_child(pipe_write, pipe_read) { |s| yield(s) } }
80
+ pipe_read.close
81
+ end
82
+ rescue Interrupt
87
83
  end
88
- end
89
84
 
90
- def unsafe_handle_changes(site, command_runner)
91
- time_before = Time.now
92
-
93
- puts 'Compiling site…'
94
- compiler = Nanoc::Core::Compiler.new_for(site)
95
- listener = Nanoc::CLI::CompileListeners::Aggregate.new(
96
- command_runner: command_runner,
97
- site: site,
98
- compiler: compiler,
99
- )
100
- listener.run_while do
101
- compiler.run_until_end
85
+ def handle_changes(site, command_runner)
86
+ Nanoc::CLI::ErrorHandler.handle_while(exit_on_error: false) do
87
+ unsafe_handle_changes(site, command_runner)
88
+ end
102
89
  end
103
90
 
104
- time_after = Time.now
105
- puts "Site compiled in #{format('%.2f', time_after - time_before)}s."
106
- puts
107
- end
91
+ def unsafe_handle_changes(site, command_runner)
92
+ time_before = Time.now
108
93
 
109
- def gen_lib_changes
110
- Nanoc::ChangesStream.new do |cl|
111
- opts = {
112
- latency: 0.0,
113
- wait_for_delay: 0.0,
114
- }
94
+ puts 'Compiling site…'
95
+ compiler = Nanoc::Core::Compiler.new_for(site)
96
+ listener = Nanoc::CLI::CompileListeners::Aggregate.new(
97
+ command_runner: command_runner,
98
+ site: site,
99
+ compiler: compiler,
100
+ )
101
+ listener.run_while do
102
+ compiler.run_until_end
103
+ end
115
104
 
116
- listener = Listen.to('lib', opts) { |*| cl.lib }
117
- listener.start
118
- sleep
105
+ time_after = Time.now
106
+ puts "Site compiled in #{format('%.2f', time_after - time_before)}s."
107
+ puts
108
+ end
109
+
110
+ def gen_lib_changes
111
+ Nanoc::Core::ChangesStream.new do |cl|
112
+ opts = {
113
+ latency: 0.1,
114
+ wait_for_delay: 0.0,
115
+ }
116
+
117
+ listener = Listen.to('lib', opts) { |*| cl.lib }
118
+ listener.start
119
+ sleep
120
+ end
119
121
  end
120
- end
121
122
 
122
- def gen_config_and_rules_changes
123
- Nanoc::ChangesStream.new do |cl|
124
- opts = {
125
- only: /(\/|\A)(nanoc\.yaml|config\.yaml|rules|Rules|rules\.rb|Rules\.rb)\z/,
126
- latency: 0.0,
127
- wait_for_delay: 0.0,
128
- }
129
-
130
- listener = Listen.to('.', opts) { |*| cl.unknown }
131
- listener.start
132
- sleep
123
+ def gen_config_and_rules_changes
124
+ Nanoc::Core::ChangesStream.new do |cl|
125
+ opts = {
126
+ only: /(\/|\A)(nanoc\.yaml|config\.yaml|rules|Rules|rules\.rb|Rules\.rb)\z/,
127
+ latency: 0.1,
128
+ wait_for_delay: 0.0,
129
+ }
130
+
131
+ listener = Listen.to('.', opts) { |*| cl.unknown }
132
+ listener.start
133
+ sleep
134
+ end
133
135
  end
134
136
  end
135
137
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Nanoc
4
4
  module Live
5
- VERSION = '1.0.0b5'
5
+ VERSION = '1.0.0b6'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc-live
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0b5
4
+ version: 1.0.0b6
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-16 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: adsf-live
@@ -25,35 +25,41 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
- name: cri
28
+ name: listen
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.13'
33
+ version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.13'
40
+ version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: listen
42
+ name: nanoc-cli
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: '4.11'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 4.11.14
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
- version: '3.0'
57
+ version: '4.11'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 4.11.14
55
61
  - !ruby/object:Gem::Dependency
56
- name: nanoc
62
+ name: nanoc-core
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
@@ -61,7 +67,7 @@ dependencies:
61
67
  version: '4.11'
62
68
  - - ">="
63
69
  - !ruby/object:Gem::Version
64
- version: 4.11.5
70
+ version: 4.11.14
65
71
  type: :runtime
66
72
  prerelease: false
67
73
  version_requirements: !ruby/object:Gem::Requirement
@@ -71,7 +77,7 @@ dependencies:
71
77
  version: '4.11'
72
78
  - - ">="
73
79
  - !ruby/object:Gem::Version
74
- version: 4.11.5
80
+ version: 4.11.14
75
81
  description: Provides support for auto-recompiling Nanoc sites.
76
82
  email: denis+rubygems@denis.ws
77
83
  executables: []
@@ -81,6 +87,7 @@ files:
81
87
  - NEWS.md
82
88
  - README.md
83
89
  - lib/nanoc/live.rb
90
+ - lib/nanoc/live/command_runners/live.rb
84
91
  - lib/nanoc/live/commands/live.rb
85
92
  - lib/nanoc/live/live_recompiler.rb
86
93
  - lib/nanoc/live/version.rb
@@ -103,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
110
  - !ruby/object:Gem::Version
104
111
  version: 1.3.1
105
112
  requirements: []
106
- rubygems_version: 3.0.6
113
+ rubygems_version: 3.1.2
107
114
  signing_key:
108
115
  specification_version: 4
109
116
  summary: Live recompilation support for Nanoc