Class: JRubySQL::Output::Term

Inherits:
Object
  • Object
show all
Includes:
Messages
Defined in:
lib/jrubysql/output/term.rb

Direct Known Subclasses

CTerm

Constant Summary collapse

HELP =
Erubis::Eruby.new(File.read File.join(File.dirname(__FILE__), '../doc/help.txt.erb')).result(binding)

Instance Method Summary collapse

Methods included from Messages

#m

Constructor Details

#initializeTerm

Returns a new instance of Term.



12
13
14
15
16
17
18
19
# File 'lib/jrubysql/output/term.rb', line 12

def initialize
  # Make use of JLine included in JRuby
  java_import 'jline.Terminal'
  @terminal = Terminal.getTerminal
  trap 'INT' do
    Thread.main.raise Interrupt
  end
end

Instance Method Details

#cursor(empty) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/jrubysql/output/term.rb', line 25

def cursor empty
  if empty
    'jrubysql> '
  else
    '       -> '
  end
end

#error(message) ⇒ Object



55
56
57
# File 'lib/jrubysql/output/term.rb', line 55

def error message
  puts "[E] #{message}"
end

#info(message) ⇒ Object



43
44
45
# File 'lib/jrubysql/output/term.rb', line 43

def info message
  puts "[I] #{message}"
end


33
34
35
# File 'lib/jrubysql/output/term.rb', line 33

def print_cursor empty
  print cursor(empty)
end


37
38
39
40
41
# File 'lib/jrubysql/output/term.rb', line 37

def print_help
  puts
  puts HELP
  puts
end


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/jrubysql/output/term.rb', line 59

def print_result ret
  # Footer
  elapsed = "(#{'%.2f' % ret[:elapsed]} sec)"

  if ret[:set?]
    begin
      cnt = print_table ret[:result]
      result m(:rows_returned, cnt, cnt > 1 ? 's' : '', elapsed)
    rescue Interrupt
      warn m(:interrupted)
    end
  elsif ret[:result]
    cnt = [0, ret[:result]].max
    result m(:rows_affected, cnt, cnt > 1 ? 's' : '', elapsed)
  else
    result elapsed
  end
  puts
end

#result(message) ⇒ Object



47
48
49
# File 'lib/jrubysql/output/term.rb', line 47

def result message
  puts "[R] #{message}"
end

#warn(message) ⇒ Object



51
52
53
# File 'lib/jrubysql/output/term.rb', line 51

def warn message
  puts "[W] #{message}"
end

#welcome!Object



21
22
23
# File 'lib/jrubysql/output/term.rb', line 21

def welcome!
  puts JRubySQL.name
end