class Capistrano::Measure::Timer
Constants
- Event
Attributes
events[R]
Public Class Methods
new()
click to toggle source
# File lib/capistrano/measure/timer.rb, line 20 def initialize @indent = 0 @open_events = [] @events = [] end
Public Instance Methods
report_events() { |event| ... }
click to toggle source
# File lib/capistrano/measure/timer.rb, line 44 def report_events raise ::Capistrano::Measure::Error, "Performance evaluation is not yet completed, as there are events still open: #{@open_events.map(&:name).join(', ')}" unless @open_events.empty? return to_enum(__callee__) unless block_given? (events + [Event.new]).each_cons(2) do |event, next_event| yield event unless event.start? && event.eq?(next_event) end end
start(event_name)
click to toggle source
# File lib/capistrano/measure/timer.rb, line 26 def start(event_name) event = Event.new(event_name, :start, Time.now, @indent) @open_events << event @events << event @indent += 1 event end
stop(event_name)
click to toggle source
# File lib/capistrano/measure/timer.rb, line 35 def stop(event_name) event = close_event(event_name) @open_events.pop @events << event @indent = event.indent event end
Private Instance Methods
close_event(event_name)
click to toggle source
# File lib/capistrano/measure/timer.rb, line 55 def close_event(event_name) event = Event.new(event_name, :stop, Time.now, @indent-1) open_event = @open_events.last raise ::Capistrano::Measure::Error, "Cannot estimate time for event `#{event_name}`" unless event.eq?(open_event) event.elapsed_time = (event.time - open_event.time).to_i event end