lib/timetrap.rb in timetrap-1.5.3 vs lib/timetrap.rb in timetrap-1.6.0

- old
+ new

@@ -5,79 +5,19 @@ require 'sequel/extensions/inflector' require 'Getopt/Declare' require File.join(File.dirname(__FILE__), 'timetrap', 'config') require File.join(File.dirname(__FILE__), 'timetrap', 'helpers') require File.join(File.dirname(__FILE__), 'timetrap', 'cli') +require File.join(File.dirname(__FILE__), 'timetrap', 'timer') DB_NAME = defined?(TEST_MODE) ? nil : Timetrap::Config['database_file'] # connect to database. This will create one if it doesn't exist DB = Sequel.sqlite DB_NAME require File.join(File.dirname(__FILE__), 'timetrap', 'models') Dir["#{File.dirname(__FILE__)}/timetrap/formatters/*.rb"].each do |path| require path end module Timetrap - extend self - - def current_sheet= sheet - m = Meta.find_or_create(:key => 'current_sheet') - m.value = sheet - m.save - end - - def current_sheet - unless Meta.find(:key => 'current_sheet') - Meta.create(:key => 'current_sheet', :value => 'default') - end - Meta.find(:key => 'current_sheet').value - end - - def entries sheet = nil - Entry.filter(:sheet => sheet).order_by(:start) - end - - def running? - !!active_entry - end - - def active_entry - Entry.find(:sheet => Timetrap.current_sheet, :end => nil) - end - - def stop time = nil - while a = active_entry - time ||= Time.now - a.end = time - a.save - end - end - - def start note, time = nil - raise AlreadyRunning if running? - time ||= Time.now - Entry.create(:sheet => Timetrap.current_sheet, :note => note, :start => time).save - rescue => e - CLI.say e.message - end - - def switch sheet - self.current_sheet = sheet - end - - def kill_sheet sheet - Entry.filter(:sheet => sheet).destroy - end - - def format format_klass, entries - format_klass.new(entries).output - end - - class AlreadyRunning < StandardError - def message - "Timetrap is already running" - end - end - CLI.args = Getopt::Declare.new(<<-EOF) #{CLI::USAGE} EOF end