Class: Mud::CLI

Inherits:
Thor
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/mud/cli.rb

Instance Method Summary collapse

Constructor Details

#initializeCLI

Returns a new instance of CLI.



6
7
8
9
10
# File 'lib/mud/cli.rb', line 6

def initialize(*)
  super
  @context = Mud::Context.new
  say("(in #{@context.dir})")
end

Instance Method Details

#inline(path) ⇒ Object



24
25
26
27
# File 'lib/mud/cli.rb', line 24

def inline(path)
  result = @context.inline_document(path, :compile => options[:compile])
  say(result.to_s)
end

#listObject



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/mud/cli.rb', line 52

def list
  modules = @context.available_modules.values
  if modules.empty?
    say("no modules found")
  else
    modules.each do |m|
      msg = m.name + (options[:path] ? " => #{m.path}" : '')
      say(msg)
    end
  end
end

#modules(modules) ⇒ Object

method_option :output, :default => nil, :desc => “output file”



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

def modules(modules)
  modules = modules.split(',').map { |mod_name| @context.module!(mod_name) }
  result = @context.inline(modules, :compile => options[:compile])

  if out = options[:output]
    File.open(out, 'w') { |f| f.write(result.to_s) }
  else
    say(result.to_s)
  end
end

#resolve(path) ⇒ Object



16
17
18
19
20
# File 'lib/mud/cli.rb', line 16

def resolve(path)
  modules = @context.resolve_document(path)
  result = Mud::JsResult.new(modules, :compile => options[:compile])
  say(result.to_s)
end

#serverObject

method_options :fork, :default => false, :desc => “run the server as a daemon (only supported on unix platforms)”



45
46
47
48
# File 'lib/mud/cli.rb', line 45

def server
  Mud::Server.context = @context
  Mud::Server.run!
end