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