class Session::IDL

IDL => interactive data language - see www.rsinc.com/

Constants

DEFAULT_PROG
MAX_TRIES

Public Class Methods

new(*args) click to toggle source
Calls superclass method Session::AbstractSession.new
# File lib/session.rb, line 558
def initialize(*args)
  tries = 0 
  ret = nil
  begin
    ret = super
  rescue LicenseManagerError => e
    tries += 1 
    if tries < MAX_TRIES
      sleep 1
      retry
    else
      raise LicenseManagerError, "<#{ MAX_TRIES }> attempts <#{ e.message }>"
    end
  end
  ret
end

Public Instance Methods

clear() click to toggle source
# File lib/session.rb, line 574
def clear
  stdin.puts "retall"
  stdin.puts "printf, -2, '__clear__'"
  stdin.puts "printf, -1, '__clear__'"
  stdin.flush
  while((line = stderr.gets) and line !~ %r/__clear__/o)
    raise LicenseManagerError, line if line =~ %r/license\s*manager/io
  end
  while((line = stdout.gets) and line !~ %r/__clear__/o)
    raise LicenseManagerError, line if line =~ %r/license\s*manager/io
  end
  self
end
path() click to toggle source
# File lib/session.rb, line 598
def path 
  stdout, stderr = execute "print, !path"
  stdout.strip.split %r/:/o
end
path=(arg) click to toggle source
# File lib/session.rb, line 602
def path= arg 
  case arg
    when Array
      arg = arg.join ':'
    else
      arg = arg.to_s.strip
  end
  stdout, stderr = execute "!path='#{ arg }'"

  self.path
end
send_command(cmd) click to toggle source
# File lib/session.rb, line 587
def send_command cmd
  stdin.printf "printf, -2, '%s'\n", cmd.begin_err
  stdin.printf "printf, -1, '%s'\n", cmd.begin_out

  stdin.printf "%s\n", cmd.cmd
  stdin.printf "retall\n"

  stdin.printf "printf, -2, '%s'\n", cmd.end_err
  stdin.printf "printf, -1, '%s'\n", cmd.end_out
  stdin.flush
end