Class: Mumuki::Domain::Submission::Base
- Inherits:
-
Object
- Object
- Mumuki::Domain::Submission::Base
show all
- Includes:
- ActiveModel::Model
- Defined in:
- lib/mumuki/domain/submission/base.rb
Constant Summary
collapse
- ATTRIBUTES =
[:solution, :status, :result, :expectation_results, :feedback, :test_results,
:submission_id, :queries, :query_results, :manual_evaluation_comment]
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.from_attributes(*args) ⇒ Object
13
14
15
|
# File 'lib/mumuki/domain/submission/base.rb', line 13
def self.from_attributes(*args)
new ATTRIBUTES.zip(args).to_h
end
|
.mapping_attributes ⇒ Object
17
18
19
|
# File 'lib/mumuki/domain/submission/base.rb', line 17
def self.mapping_attributes
ATTRIBUTES
end
|
Instance Method Details
#evaluate!(assignment) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/mumuki/domain/submission/base.rb', line 29
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 ⇒ Object
36
37
38
|
# File 'lib/mumuki/domain/submission/base.rb', line 36
def id
@id ||= SecureRandom.hex(8)
end
|
#run!(assignment, evaluation) ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/mumuki/domain/submission/base.rb', line 21
def run!(assignment, evaluation)
save_submission! assignment
results = evaluation.evaluate! assignment, self
save_results! results, assignment
notify_results! results, assignment
results
end
|