Class: RailsExecution::Task
- Defined in:
- app/models/rails_execution/task.rb
Constant Summary collapse
- PROCESSING_STATUSES =
%w(created reviewing approved processing rejected)
- ACTIVE_REPEAT_MODE =
%w(hourly daily weekly monthly annually weekdays)
Instance Attribute Summary collapse
-
#reviewer_ids ⇒ Object
Returns the value of attribute reviewer_ids.
Instance Method Summary collapse
- #add_files(attachments, current_owner) ⇒ Object
- #assign_labels(ids) ⇒ Object
- #assign_reviewers(ids) ⇒ Object
- #in_processing? ⇒ Boolean
- #next_time_at ⇒ Object
- #repeat_mode_select_options ⇒ Object
- #repeatable? ⇒ Boolean
- #scheduled? ⇒ Boolean
Instance Attribute Details
#reviewer_ids ⇒ Object
Returns the value of attribute reviewer_ids.
11 12 13 |
# File 'app/models/rails_execution/task.rb', line 11 def reviewer_ids @reviewer_ids end |
Instance Method Details
#add_files(attachments, current_owner) ⇒ Object
82 83 84 |
# File 'app/models/rails_execution/task.rb', line 82 def add_files(, current_owner) ::RailsExecution.configuration.file_uploader.new(self, , owner: current_owner).call end |
#assign_labels(ids) ⇒ Object
74 75 76 |
# File 'app/models/rails_execution/task.rb', line 74 def assign_labels(ids) self.labels = RailsExecution::Label.where(id: ids.uniq) end |
#assign_reviewers(ids) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'app/models/rails_execution/task.rb', line 62 def assign_reviewers(ids) ids.each do |id| next if id.blank? task_review = self.task_reviews.find_or_initialize_by({ owner_id: id, owner_type: ::RailsExecution.configuration.owner_model.to_s, }) task_review.status ||= :reviewing end end |
#in_processing? ⇒ Boolean
50 51 52 |
# File 'app/models/rails_execution/task.rb', line 50 def in_processing? PROCESSING_STATUSES.include?(self.status) end |
#next_time_at ⇒ Object
99 100 101 |
# File 'app/models/rails_execution/task.rb', line 99 def next_time_at ::RailsExecution::Services::CreateScheduledJob.new(self).calculate_next_time_at.strftime("%Y-%m-%d %H:%M") end |
#repeat_mode_select_options ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'app/models/rails_execution/task.rb', line 86 def return RailsExecution::Task.repeat_modes if scheduled_at.nil? = RailsExecution::Task.repeat_modes.dup ['hourly'] = self.scheduled_at.strftime('Hourly at minute %-M') ['daily'] = self.scheduled_at.strftime('Daily at %H:%M') ['weekly'] = self.scheduled_at.strftime('Weekly on %A at %H:%M') ['monthly'] = self.scheduled_at.strftime('Monthly on %-d at %H:%M') ['annually'] = self.scheduled_at.strftime('Annually on %B %-d at %H:%M') ['weekdays'] = self.scheduled_at.strftime('Every weekday (Monday to Friday) at %H:%M') return end |
#repeatable? ⇒ Boolean
58 59 60 |
# File 'app/models/rails_execution/task.rb', line 58 def repeatable? ACTIVE_REPEAT_MODE.include?(self.repeat_mode) end |
#scheduled? ⇒ Boolean
54 55 56 |
# File 'app/models/rails_execution/task.rb', line 54 def scheduled? self.scheduled_at? && self.repeat_none? end |