class Nanoc::CLI::CompileListeners::Aggregate
Public Class Methods
default_listener_classes()
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 21 def self.default_listener_classes [ Nanoc::CLI::CompileListeners::DiffGenerator, Nanoc::CLI::CompileListeners::DebugPrinter, Nanoc::CLI::CompileListeners::TimingRecorder, Nanoc::CLI::CompileListeners::FileActionPrinter, ] end
new(command_runner:, site:, compiler:)
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 5 def initialize(command_runner:, site:, compiler:) @site = site @compiler = compiler @command_runner = command_runner @listener_classes = self.class.default_listener_classes end
Public Instance Methods
start()
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 13 def start setup_listeners end
stop()
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 17 def stop teardown_listeners end
Protected Instance Methods
setup_listeners()
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 32 def setup_listeners res = @compiler.run_until_reps_built reps = res.fetch(:reps) @listeners = @listener_classes .select { |klass| klass.enable_for?(@command_runner, @site) } .map { |klass| klass.new(reps: reps) } @listeners.each(&:start_safely) end
teardown_listeners()
click to toggle source
# File lib/nanoc/cli/compile_listeners/aggregate.rb, line 44 def teardown_listeners return unless @listeners @listeners.reverse_each(&:stop_safely) end