Module: Lita::External::CLI

Extended by:
CLI
Included in:
CLI
Defined in:
lib/lita/external/cli.rb

Instance Method Summary collapse

Instance Method Details

#load_lita_config(options) ⇒ Object



31
32
33
# File 'lib/lita/external/cli.rb', line 31

def load_lita_config(options)
  require options[:config_file]
end

#parse_options(argv) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/lita/external/cli.rb', line 8

def parse_options(argv)
  config = {config_file: 'lita_config.rb'}
  parser = OptionParser.new do |opts|
    opts.banner = "Standalone daemon to run a lita adapter"
    opts.separator ""
    opts.separator "Usage: messenger [options]"
    opts.separator ""
    opts.separator "Main options:"

    opts.on("-c", "--config FILE", "Lita config file to load") do |file|
      config[:config_file] = File.expand_path(file)
    end

    opts.on("-a", "--adapter ADAPTER", "Lita adapter to use") do |adapter|
      config[:adapter] = adapter.to_sym
    end
  end

  parser.parse(argv)

  config
end

#run(argv) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/lita/external/cli.rb', line 51

def run(argv)
  options = parse_options(argv)
  load_lita_config(options)
  set_adapter(options)
  robot = Lita::External::Robot.new
  p robot.send(:adapter)
  robot.run
  0
end

#set_adapter(options) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/lita/external/cli.rb', line 35

def set_adapter(options)
  if options[:adapter]
    Lita.config.robot.adapter = options[:adapter]
  end

  if Lita.config.robot.adapter == :external || Lita.config.robot.adapter == 'external'
    STDERR.puts "You must specify the adapter to use"
    exit 1
  end

  begin
    require "lita-#{Lita.config.robot.adapter}"
  rescue LoadError
  end
end