Class: WatchmonkeyCli::LoopbackConnection

Inherits:
Object
  • Object
show all
Defined in:
lib/watchmonkey_cli/loopback_connection.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, opts = {}, &initializer) ⇒ LoopbackConnection

Returns a new instance of LoopbackConnection.



5
6
7
8
9
10
11
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 5

def initialize(id, opts = {}, &initializer)
  @id = id
  @established = false
  @opts = {}.merge(opts)
  # @mutex = Monitor.new
  initializer.try(:call, @opts)
end

Instance Attribute Details

#establishedObject (readonly)

Returns the value of attribute established.



3
4
5
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 3

def established
  @established
end

#optsObject (readonly)

Returns the value of attribute opts.



3
4
5
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 3

def opts
  @opts
end

Instance Method Details

#close!Object



40
41
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 40

def close!
end

#established?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 21

def established?
  @established
end

#exec(cmd, chomp = true) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 30

def exec cmd, chomp = true
  _stdin, _stdouterr, _thread = Open3.popen2e(cmd)
  _thread.join
  res = _stdouterr.read
  chomp ? res.chomp : res
ensure
  _stdin.close rescue false
  _stdouterr.close rescue false
end

#nameObject



17
18
19
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 17

def name
  "lo:#{@id}"
end

#sync(&block) ⇒ Object



25
26
27
28
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 25

def sync &block
  # @mutex.synchronize(&block)
  block.try(:call)
end

#to_sObject



13
14
15
# File 'lib/watchmonkey_cli/loopback_connection.rb', line 13

def to_s
  "#<WatchmonkeyCli::LoopbackConnection:#{@id}>"
end