lib/chook/server.rb in chook-1.1.2 vs lib/chook/server.rb in chook-1.1.5b1

- old
+ new

@@ -69,10 +69,11 @@ super end # if use ssl end # self.run def self.prep_to_run + @start_time = Time.now log_level ||= Chook.config.log_level @log_level = Chook::Procs::STRING_TO_LOG_LEVEL.call log_level configure do set :logger, Log.startup(@log_level) @@ -91,9 +92,31 @@ end end # configure Chook::HandledEvent::Handlers.load_handlers end # prep to run + + def self.starttime + @start_time + end + + def self.uptime + @start_time ? "#{humanize_secs(Time.now - @start_time)} ago" : 'Not Running' + end + + # Very handy! + # lifted from + # http://stackoverflow.com/questions/4136248/how-to-generate-a-human-readable-time-range-using-ruby-on-rails + # + def self.humanize_secs(secs) + [[60, :second], [60, :minute], [24, :hour], [7, :day], [52.179, :week], [1_000_000, :year]].map do |count, name| + next unless secs.positive? + + secs, n = secs.divmod(count) + n = n.to_i + "#{n} #{n == 1 ? name : (name.to_s + 's')}" + end.compact.reverse.join(' ') + end end # class server end # module