Description:
added problem_name to TestRequest and moved name_of to protected git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@88 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r40:b5c26b86e7d2 - - 1 file changed: 11 inserted, 4 deleted

@@ -3,15 +3,17
3 3 #
4 4 # Note about TestRequest#problem: Usually, A TestRequest has to be
5 5 # associated with a problem, so that execution environment can be
6 6 # determined. However, to be more flexible, we have to ensure that
7 7 # it works as well with problem=nil. In this case, we shall provide
8 8 # a "default" execution environment for it. This can be done
9 - # seamlessly by using TestRequest#name_of when retrieving the name
10 - # of the problem: name_of would return problem.name when
11 - # problem!=nil and it would return "default" when problem=nil.
9 + # seamlessly by using TestRequest#problem_name or
10 + # TestRequest#name_of(problem) when retrieving the name of the
11 + # problem: #name_of would return problem.name when problem!=nil and
12 + # it would return "default" when problem=nil, #problem_name just
13 + # call #name_of.
12 14 #
13 15
14 16 require 'fileutils'
15 17
16 18 class TestRequest < Task
17 19
@@ -49,21 +51,26
49 51 test_request.input_file_name = save_input_file(params[:input_file], user, problem)
50 52 test_request.submitted_at = Time.new
51 53 test_request.status_inqueue
52 54 test_request
53 55 end
54 56
57 + def problem_name
58 + TestRequest.name_of(self.problem)
59 + end
60 +
61 + protected
62 +
55 63 def self.name_of(problem)
56 64 if problem!=nil
57 65 problem.name
58 66 else
59 67 "default"
60 68 end
61 69 end
62 70
63 - protected
64 71 def self.input_file_name(user,problem)
65 72 problem_name = TestRequest.name_of(problem)
66 73 begin
67 74 tmpname = TEST_REQUEST_INPUT_FILE_DIR + "/#{user.login}/#{problem_name}/#{rand(10000)}"
68 75 end while File.exists?(tmpname)
69 76 tmpname
You need to be logged in to leave comments. Login now