Sha256: 1b0b7041f8acc6d52e8f233b0e1693c50339fa61a2227e83ee1e1ef057e0edc7

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

class Mite::TimeEntry < Mite::Base
  
  def service
    @service ||= Mite::Service.find(service_id) unless service_id.blank?
  end
  
  def service=(service)
    self.service_id = service ? service.id : nil
    @service = service
  end
  
  def project
    @project ||= Mite::Project.find(project_id) unless project_id.blank?
  end
  
  def project=(project)
    self.project_id = project ? project.id : nil
    @project = project
  end
  
  def customer
    @customer ||= begin
      p = project
      p.customer unless p.blank?
    end
  end
  
  def tracking?
    !!attributes["tracker"]
  end
  
  def start_tracker
    attributes["tracker"] = Mite::Tracker.start(id) || nil
  end
  
  def stop_tracker
    Mite::Tracker.stop if tracking?
  end
  
  def load(attr)
    super(attr)
    if attributes["tracking"]
      attributes["tracker"] = Mite::Tracker.new.load(attributes.delete("tracking").attributes)
    end
    self
  end
  
  class << self
    def find_every(options={})
      return super(options) if !options[:params] || !options[:params][:group_by]
      Mite::TimeEntryGroup.all(options)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mite-rb-0.2.3 lib/mite/time_entry.rb
mite-rb-0.2.2 lib/mite/time_entry.rb
mite-rb-0.2.1 lib/mite/time_entry.rb
mite-rb-0.2.0 lib/mite/time_entry.rb
mite-rb-0.1.0 lib/mite/time_entry.rb