Class: Flyboy::Goal

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
AASM, Dorsale::PolymorphicId, Dorsale::Search
Defined in:
app/models/flyboy/goal.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Goal

Returns a new instance of Goal.



29
30
31
32
# File 'app/models/flyboy/goal.rb', line 29

def initialize(*args)
  super
  self.progress = 0 if progress.nil?
end

Instance Method Details

#create_trackingObject



44
45
46
47
# File 'app/models/flyboy/goal.rb', line 44

def create_tracking
  dailycounter  = Goal.where("DATE(created_at) = ?", Date.today).count + 1
  self.tracking = "#{Time.now.strftime("%y%m%d")}-#{dailycounter}"
end

#no_undone_tasks?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/flyboy/goal.rb', line 34

def no_undone_tasks?
  tasks.where(done: false).count == 0
end

#revisionObject



38
39
40
# File 'app/models/flyboy/goal.rb', line 38

def revision
  "#{tracking} #{version}"
end

#update_progressObject



56
57
58
59
60
61
62
# File 'app/models/flyboy/goal.rb', line 56

def update_progress
  if tasks.count.zero?
    self.progress = 0
  else
    self.progress = tasks.sum(:progress) / tasks.count
  end
end

#update_progress!Object



64
65
66
67
# File 'app/models/flyboy/goal.rb', line 64

def update_progress!
  update_progress
  save
end

#update_versionObject



51
52
53
54
# File 'app/models/flyboy/goal.rb', line 51

def update_version
  self.version = 0 if self.version.nil?
  self.version = self.version + 1
end