YaleSTC/shifts

View on GitHub
app/models/punch_clock_set.rb

Summary

Maintainability
A
0 mins
Test Coverage
class PunchClockSet < ActiveRecord::Base
  has_many :punch_clocks, dependent: :destroy
  belongs_to :department

  validates_presence_of :description
  validate :length_of_description

  def users
    self.punch_clocks.map{|pc| pc.users}.flatten
  end

  def running_time
    no_of_sec = Time.now - self.created_at
    [ no_of_sec / 3600, no_of_sec / 60 % 60, no_of_sec % 60 ].map{ |t| t.to_i.to_s.rjust(2, '0') }.join(':')
  end

private

  def length_of_description
    min = self.department.department_config.description_min
    if self.description.length < min
      errors.add(:base, "Description must be at least #{min} characters long.") 
    end
  end   

end