Class: Nanoc::CLI::Commands::Compile::TimingRecorder

Inherits:
Listener
  • Object
show all
Defined in:
lib/nanoc/cli/commands/compile.rb

Overview

Records the time spent per filter and per item representation

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reps:) ⇒ TimingRecorder

Returns a new instance of TimingRecorder

Parameters:

  • reps (Enumerable<Nanoc::Int::ItemRep>)


166
167
168
169
170
# File 'lib/nanoc/cli/commands/compile.rb', line 166

def initialize(reps:)
  @times = {}

  @reps = reps
end

Class Method Details

.enable_for?(command_runner) ⇒ Boolean

Returns:

  • (Boolean)

See Also:



161
162
163
# File 'lib/nanoc/cli/commands/compile.rb', line 161

def self.enable_for?(command_runner)
  command_runner.options.fetch(:verbose, false)
end

Instance Method Details

#startObject

See Also:



173
174
175
176
177
178
179
180
181
# File 'lib/nanoc/cli/commands/compile.rb', line 173

def start
  Nanoc::Int::NotificationCenter.on(:filtering_started) do |_rep, filter_name|
    @times[filter_name] ||= []
    @times[filter_name] << { start: Time.now }
  end
  Nanoc::Int::NotificationCenter.on(:filtering_ended) do |_rep, filter_name|
    @times[filter_name].last[:stop] = Time.now
  end
end

#stopObject

See Also:



184
185
186
187
# File 'lib/nanoc/cli/commands/compile.rb', line 184

def stop
  print_profiling_feedback
  super
end