Class: JavascriptQueryHook
- Inherits:
-
Mumukit::Templates::FileHook
- Object
- Mumukit::Templates::FileHook
- JavascriptQueryHook
- Defined in:
- lib/query_hook.rb
Constant Summary collapse
- VAR_REGEXP =
/^ *(?:var|let) +([a-zA-Z_$][a-zA-Z_$0-9]*)/
- VAR_ASSIGN_REGEXP =
/^ *(?:var|let) +([a-zA-Z_$][a-zA-Z_$0-9]*) *=/
- CONST_ASSIGN_REGEXP =
/^ *const +([a-zA-Z_$][a-zA-Z_$0-9]*) *=/
Instance Method Summary collapse
- #command_line(filename) ⇒ Object
- #compile_cookie(cookie) ⇒ Object
- #compile_file_content(r) ⇒ Object
- #compile_file_header(r) ⇒ Object
- #compile_query(query, output_prefix = "=> ", output_var = "__mumuki_query_result__") ⇒ Object
- #tempfile_extension ⇒ Object
Instance Method Details
#command_line(filename) ⇒ Object
49 50 51 |
# File 'lib/query_hook.rb', line 49 def command_line(filename) "node #{filename}" end |
#compile_cookie(cookie) ⇒ Object
43 44 45 46 47 |
# File 'lib/query_hook.rb', line 43 def () return if .blank? compile_statements().join "\n" end |
#compile_file_content(r) ⇒ Object
13 14 15 |
# File 'lib/query_hook.rb', line 13 def compile_file_content(r) "#{compile_file_header(r)}\n#{compile_query(r.query)}" end |
#compile_file_header(r) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/query_hook.rb', line 17 def compile_file_header(r) <<javascript 'use strict'; function mumukiConsolePrettyPrint(e) { if (e instanceof Function) return '<function>'; const json = JSON.stringify(e); return json && json.replace(/"(\\w+)"\s*:/g, '$1:'); } #{r.extra} #{r.content} #{(r.)} javascript end |
#compile_query(query, output_prefix = "=> ", output_var = "__mumuki_query_result__") ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/query_hook.rb', line 35 def compile_query(query, output_prefix = "=> ", output_var = "__mumuki_query_result__") if ['var', 'let', 'const'].any? { |type| query.start_with? "#{type} " } "#{query}\nconsole.log('#{output_prefix}undefined')" else "var #{output_var} = #{query};\nconsole.log('#{output_prefix}' + mumukiConsolePrettyPrint(#{output_var}))" end end |
#tempfile_extension ⇒ Object
9 10 11 |
# File 'lib/query_hook.rb', line 9 def tempfile_extension '.js' end |