Class: HaskellQueryHook

Inherits:
HaskellFileHook show all
Defined in:
lib/query_hook.rb

Instance Method Summary collapse

Methods inherited from HaskellFileHook

#cleanup_raw_result, #tempfile_extension

Instance Method Details

#command_line(filename) ⇒ Object



12
13
14
# File 'lib/query_hook.rb', line 12

def command_line(filename)
  ['bash', '-c', "ghci #{filename} <<< $0", request.query]
end

#compile_file_content(req) ⇒ Object



2
3
4
5
6
7
8
9
10
# File 'lib/query_hook.rb', line 2

def compile_file_content(req)
  <<EOF
{-# OPTIONS_GHC -fdefer-type-errors #-}
import Text.Show.Functions
import Data.List
#{req.content}
#{req.extra}
EOF
end

#passed_query_regexObject



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

def passed_query_regex
  /(?:\*Main|Prelude)> (.*)/
end

#post_process_file(_file, result, status) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/query_hook.rb', line 16

def post_process_file(_file, result, status)
  result = result.split("\n")[3..-2].join("\n")

  if passed_query_regex =~ result
    [$1, status]
  else
    [result, :failed]
  end
end