Module: Xlogin

Defined in:
lib/xlogin.rb,
lib/xlogin/cli.rb,
lib/xlogin/ssh.rb,
lib/xlogin/spec.rb,
lib/xlogin/telnet.rb,
lib/xlogin/factory.rb,
lib/xlogin/session.rb,
lib/xlogin/version.rb,
lib/xlogin/template.rb,
lib/xlogin/delegator.rb,
lib/xlogin/rake_task.rb,
lib/xlogin/session_pool.rb

Defined Under Namespace

Modules: SessionModule Classes: CLI, Error, Expectation, ExpectationError, Factory, RakeTask, SessionPool, Settings, Ssh, Telnet, Template

Constant Summary collapse

VERSION =
"0.13.3"

Class Method Summary collapse

Class Method Details

.configure(&block) ⇒ Object



53
54
55
# File 'lib/xlogin.rb', line 53

def configure(&block)
  instance_eval(&block)
end

.find(*patterns) ⇒ Object



28
29
30
# File 'lib/xlogin.rb', line 28

def find(*patterns)
  list(*patterns).first
end

.generate_templates(dir) ⇒ Object



62
63
64
65
66
# File 'lib/xlogin.rb', line 62

def generate_templates(dir)
  FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
  builtin_templates = Dir.glob(File.join(File.dirname(__FILE__), 'xlogin', 'templates', '*.rb'))
  builtin_templates.each { |file| FileUtils.cp(file, DEFAULT_TEMPLATE_DIR) }
end

.get(args, **opts, &block) ⇒ Object Also known as: create



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/xlogin.rb', line 32

def get(args, **opts, &block)
  session = case args
            when Hash   then factory.build(**args.merge(**opts))
            when String then factory.build_from_hostname(args, **opts)
            else
              raise SessionError.new("Invalid argument: '#{args}'")
            end

  return session unless block
  begin block.call(session) ensure session.close end
end

.get_pool(args, **opts, &block) ⇒ Object Also known as: create_pool



45
46
47
48
49
50
# File 'lib/xlogin.rb', line 45

def get_pool(args, **opts, &block)
  pool = factory.build_pool(args, **opts)

  return pool unless block
  block.call(pool)
end

.list(*patterns) ⇒ Object



24
25
26
# File 'lib/xlogin.rb', line 24

def list(*patterns)
  factory.list_inventory(*patterns)
end

.settingsObject



57
58
59
60
# File 'lib/xlogin.rb', line 57

def settings
  @settings ||= {}
  Settings.new(@settings)
end