Class: Utils::ConfigFile::SshTunnel

Inherits:
BlockConfig show all
Defined in:
lib/utils/config_file.rb

Defined Under Namespace

Classes: CopyPaste

Instance Method Summary collapse

Methods inherited from BlockConfig

config, inherited, #to_ruby

Constructor Details

#initializeSshTunnel

Returns a new instance of SshTunnel.



182
183
184
185
# File 'lib/utils/config_file.rb', line 182

def initialize
  super
  self.terminal_multiplexer = terminal_multiplexer
end

Instance Method Details

#copy_paste(enable = false, &block) ⇒ Object



234
235
236
237
238
239
240
241
242
243
244
# File 'lib/utils/config_file.rb', line 234

def copy_paste(enable = false, &block)
  if @copy_paste
    @copy_paste
  else
    if block
      @copy_paste = CopyPaste.new(&block)
    elsif enable
      @copy_paste = CopyPaste.new {}
    end
  end
end

#multiplexer_attach(session) ⇒ Object



211
212
213
214
215
216
217
218
# File 'lib/utils/config_file.rb', line 211

def multiplexer_attach(session)
  case @multiplexer
  when 'screen'
    'screen -DUR "%s"' % session
  when 'tmux'
    'tmux -u attach -d -t "%s"' % session
  end
end

#multiplexer_listObject



193
194
195
196
197
198
199
200
# File 'lib/utils/config_file.rb', line 193

def multiplexer_list
  case @multiplexer
  when 'screen'
    'screen -ls'
  when 'tmux'
    'tmux ls'
  end
end

#multiplexer_new(session) ⇒ Object



202
203
204
205
206
207
208
209
# File 'lib/utils/config_file.rb', line 202

def multiplexer_new(session)
  case @multiplexer
  when 'screen'
    'false'
  when 'tmux'
    'tmux -u new -s "%s"' % session
  end
end

#terminal_multiplexer=(terminal_multiplexer) ⇒ Object



187
188
189
190
191
# File 'lib/utils/config_file.rb', line 187

def terminal_multiplexer=(terminal_multiplexer)
  @multiplexer = terminal_multiplexer.to_s
  @multiplexer =~ /\A(screen|tmux)\z/ or
    fail "invalid terminal_multiplexer #{terminal_multiplexer.inspect} was configured"
end