Class: Python3TryHook

Inherits:
Mumukit::Templates::TryHook
  • Object
show all
Defined in:
lib/python3/try_hook.rb

Instance Method Summary collapse

Constructor Details

#initialize(config = nil) ⇒ Python3TryHook

Returns a new instance of Python3TryHook.



4
5
6
7
# File 'lib/python3/try_hook.rb', line 4

def initialize(config = nil)
  super config
  @query_hook = Python3QueryHook.new
end

Instance Method Details

#checker_optionsObject



51
52
53
# File 'lib/python3/try_hook.rb', line 51

def checker_options
  { strip_mode: :right_only }
end

#compile_file_content(r) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/python3/try_hook.rb', line 9

def compile_file_content(r)
  <<python
#{@query_hook.compile_file_header(r)}
print("#{query_separator}");
#{@query_hook.compile_query(r.query, '')}
print("#{goal_separator}");
#{@query_hook.compile_query(r.goal.indifferent_get(:query) || 'None', '')}
python
end

#goal_separatorObject



30
31
32
# File 'lib/python3/try_hook.rb', line 30

def goal_separator
  '!!!MUMUKI-GOAL-START!!!'
end

#post_process_file(file, result, status) ⇒ Object



22
23
24
# File 'lib/python3/try_hook.rb', line 22

def post_process_file(file, result, status)
  super file, *@query_hook.post_process_file(file, result, status)
end

#query_separatorObject



26
27
28
# File 'lib/python3/try_hook.rb', line 26

def query_separator
  '!!!MUMUKI-QUERY-START!!!'
end

#to_query_result(result, status) ⇒ Object



47
48
49
# File 'lib/python3/try_hook.rb', line 47

def to_query_result(result, status)
  { result: result, status: status }
end

#to_structured_results(_file, result, status) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/python3/try_hook.rb', line 34

def to_structured_results(_file, result, status)
  result_match = result[/#{query_separator}
\K.*?(?=(#{goal_separator})|\z)/m]&.rstrip
  goal_match = result[/#{goal_separator}
\K.*\z/m]&.rstrip

  {
      query: to_query_result(result_match, status),
      goal: goal_match,
      status: status
  }
end