class Mumuki::Domain::Submission::Base
Constants
- ATTRIBUTES
Attributes
client_result[RW]
Public Class Methods
from_attributes(*args)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 14 def self.from_attributes(*args) new ATTRIBUTES.zip(args).to_h end
mapping_attributes()
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 18 def self.mapping_attributes ATTRIBUTES end
Public Instance Methods
dry_run!(assignment, _evaluation)
click to toggle source
By default evaluation strategy is ignored. Subclasses may override this behaviour
# File lib/mumuki/domain/submission/base.rb, line 32 def dry_run!(assignment, _evaluation) evaluate! assignment end
evaluate!(assignment)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 41 def evaluate!(assignment) try_evaluate! assignment rescue => e Rails.logger.error "Evaluation failed: #{e} \n#{e.backtrace.join("\n")}" {status: :errored, result: e.message} end
id()
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 48 def id @id ||= SecureRandom.hex(8) end
run!(assignment, evaluation)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 22 def run!(assignment, evaluation) save_submission! assignment results = dry_run! assignment, evaluation save_results! results, assignment notify_results! results, assignment results end
with_client_result(result)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 36 def with_client_result(result) self.client_result = result if result.present? self end
Private Instance Methods
notify_results!(results, assignment)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 64 def notify_results!(results, assignment) assignment.notify! end
save_results!(results, assignment)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 58 def save_results!(results, assignment) assignment.assign_attributes results assignment.increment_attempts! assignment.save! results end
save_submission!(assignment)
click to toggle source
# File lib/mumuki/domain/submission/base.rb, line 54 def save_submission!(assignment) assignment.save! end