Class: Mumukit::Templates::FileHook
Instance Attribute Summary collapse
Attributes inherited from Hook
#config
Class Method Summary
collapse
Instance Method Summary
collapse
#create_tempfile, #mask_tempfile_references, #tempfile_extension, #with_tempfile, #write_tempfile!
Methods inherited from Hook
#env, #initialize, #logger, #method_missing, #should_forward_to_config?, stateful_through, #t
#content_type
Constructor Details
This class inherits a constructor from Mumukit::Hook
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Mumukit::Hook
Instance Attribute Details
#request ⇒ Object
Returns the value of attribute request.
5
6
7
|
# File 'lib/mumukit/templates/file_hook.rb', line 5
def request
@request
end
|
Class Method Details
.isolated(value = true) ⇒ Object
60
61
62
63
64
65
66
|
# File 'lib/mumukit/templates/file_hook.rb', line 60
def self.isolated(value=true)
if value
include Mumukit::Templates::WithIsolatedEnvironment
else
include Mumukit::Templates::WithEmbeddedEnvironment
end
end
|
.line_number_offset(offset, options = {}) ⇒ Object
37
38
39
40
41
42
43
44
|
# File 'lib/mumukit/templates/file_hook.rb', line 37
def self.line_number_offset(offset, options={})
include Mumukit::Templates::WithLineNumberOffset
define_method(:line_number_offset) do
= options[:include_extra] && request. ? request..lines.length : 0
offset +
end
end
|
.mashup(*args, &map_block) ⇒ Object
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/mumukit/templates/file_hook.rb', line 68
def self.mashup(*args, &map_block)
include Mumukit::Templates::WithMashupFileContent
define_method(:map_mashup_fields, &map_block) if block_given?
args = args.present? ? args : [:extra, :content, :test]
if args
define_method(:mashup_fields) { args }
end
end
|
46
47
48
49
50
51
|
# File 'lib/mumukit/templates/file_hook.rb', line 46
def self.metatested(value=true)
if value
include Mumukit::Templates::WithMetatest
include Mumukit::Templates::WithMetatestResults
end
end
|
.structured(value = true, separator: nil) ⇒ Object
53
54
55
56
57
58
|
# File 'lib/mumukit/templates/file_hook.rb', line 53
def self.structured(value=true, separator: nil)
if value
@separator = separator
include Mumukit::Templates::WithStructuredResults
end
end
|
Instance Method Details
#cleanup_raw_result(result) ⇒ Object
20
21
22
|
# File 'lib/mumukit/templates/file_hook.rb', line 20
def cleanup_raw_result(result)
mask_tempfile_references(result.force_encoding('UTF-8'), masked_tempfile_path)
end
|
#compile(request) ⇒ Object
8
9
10
11
|
# File 'lib/mumukit/templates/file_hook.rb', line 8
def compile(request)
self.request = request
write_tempfile! compile_file_content(request)
end
|
#masked_tempfile_path ⇒ Object
33
34
35
|
# File 'lib/mumukit/templates/file_hook.rb', line 33
def masked_tempfile_path
@masked_tempfile_path ||= "#{t 'mumukit.masked_tempfile_basename'}#{tempfile_extension}"
end
|
#post_process_file(file, result, status) ⇒ Object
24
25
26
|
# File 'lib/mumukit/templates/file_hook.rb', line 24
def post_process_file(file, result, status)
[result, status]
end
|
#run!(file) ⇒ Object
13
14
15
16
17
18
|
# File 'lib/mumukit/templates/file_hook.rb', line 13
def run!(file)
result, status = run_file!(file)
post_process_file(file, cleanup_raw_result(result), status)
ensure
file.unlink
end
|