class Mumukit::Templates::FileHook
Attributes
request[RW]
Public Class Methods
isolated(value=true)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 59 def self.isolated(value=true) if value include Mumukit::Templates::WithIsolatedEnvironment else include Mumukit::Templates::WithEmbeddedEnvironment end end
line_number_offset(offset, options={})
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 36 def self.line_number_offset(offset, options={}) include Mumukit::Templates::WithLineNumberOffset define_method(:line_number_offset) do extra_offset = options[:include_extra] && request.extra ? request.extra.lines.length : 0 offset + extra_offset end end
mashup(*args, &map_block)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 67 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
metatested(value=true)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 45 def self.metatested(value=true) if value include Mumukit::Templates::WithMetatest include Mumukit::Templates::WithMetatestResults end end
structured(value=true, separator: nil)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 52 def self.structured(value=true, separator: nil) if value @separator = separator include Mumukit::Templates::WithStructuredResults end end
with_error_patterns()
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 78 def self.with_error_patterns include Mumukit::Templates::WithErrorPatterns end
Public Instance Methods
cleanup_raw_result(result)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 19 def cleanup_raw_result(result) mask_tempfile_references(result.force_encoding('UTF-8'), masked_tempfile_path) end
compile(request)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 7 def compile(request) self.request = request write_tempfile! compile_file_content(request) end
masked_tempfile_path()
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 32 def masked_tempfile_path @masked_tempfile_path ||= "#{t 'mumukit.masked_tempfile_basename'}#{tempfile_extension}" end
post_process_file(file, result, status)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 23 def post_process_file(file, result, status) [result, status] end
run!(file)
click to toggle source
# File lib/mumukit/templates/file_hook.rb, line 12 def run!(file) result, status = run_file!(file) post_process_file(file, cleanup_raw_result(result), status) ensure file.unlink end