Class: Session
- Inherits:
-
Object
- Object
- Session
- Defined in:
- lib/adesklets/session.rb
Instance Attribute Summary collapse
-
#pid ⇒ Object
readonly
Returns the value of attribute pid.
-
#stderr ⇒ Object
readonly
Returns the value of attribute stderr.
-
#stdin ⇒ Object
readonly
Returns the value of attribute stdin.
-
#stdout ⇒ Object
readonly
Returns the value of attribute stdout.
Instance Method Summary collapse
- #close ⇒ Object
- #command(cmd_s) ⇒ Object
- #dump ⇒ Object
- #gets(src = :stdout, timeout = nil) ⇒ Object
-
#initialize(command = '/bin/sh') ⇒ Session
constructor
A new instance of Session.
Constructor Details
#initialize(command = '/bin/sh') ⇒ Session
Returns a new instance of Session.
6 7 8 |
# File 'lib/adesklets/session.rb', line 6 def initialize(command='/bin/sh') @pid, @stdin, @stdout, @stderr = Open4::popen4 command end |
Instance Attribute Details
#pid ⇒ Object (readonly)
Returns the value of attribute pid.
4 5 6 |
# File 'lib/adesklets/session.rb', line 4 def pid @pid end |
#stderr ⇒ Object (readonly)
Returns the value of attribute stderr.
4 5 6 |
# File 'lib/adesklets/session.rb', line 4 def stderr @stderr end |
#stdin ⇒ Object (readonly)
Returns the value of attribute stdin.
4 5 6 |
# File 'lib/adesklets/session.rb', line 4 def stdin @stdin end |
#stdout ⇒ Object (readonly)
Returns the value of attribute stdout.
4 5 6 |
# File 'lib/adesklets/session.rb', line 4 def stdout @stdout end |
Instance Method Details
#close ⇒ Object
10 11 12 13 |
# File 'lib/adesklets/session.rb', line 10 def close @stdin.close; @stdout.close; @stderr.close Process.waitpid(@pid) end |
#command(cmd_s) ⇒ Object
15 16 17 18 |
# File 'lib/adesklets/session.rb', line 15 def command(cmd_s) puts cmd_s @stdin.puts(cmd_s) end |
#dump ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/adesklets/session.rb', line 38 def dump line = "" begin curr_line=gets(:stdout,0.4) line+= curr_line end while curr_line!='' line end |
#gets(src = :stdout, timeout = nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/adesklets/session.rb', line 20 def gets(src = :stdout, timeout=nil) line = "" read_array = case src when :stdout then [@stdout] when :stderr then [@stderr] else raise "SessionERROR: Unknown Source Symbol" end result_io = select( read_array, nil, nil, timeout ) if not result_io.nil? then line = result_io[0][0].gets end return line end |