module Appfront::Command
Public Class Methods
run(args, opts)
click to toggle source
# File lib/appfront/command.rb, line 8 def self.run(args, opts) cmd = args.shift unless cmd Appfront::Command::Help.root_help exit 0 end klass, act = cmd.split ':', 2 klass = klass.downcase if klass == 'help' m = args.shift || 'root_help' m = m.split(':')[0] Appfront::Command::Help.send m exit 0 end unless (klass == 'login' or cmd == 'auth:login' or klass == 'signup') Appfront::Command::Auth.authenticate! end Appfront::Command::Base.api = Appfront::API.new if Appfront::Command::Alias.respond_to? klass Appfront::Command::Alias.send klass.downcase, args, opts exit 0 end act ||= 'ls' begin klass = "Appfront::Command::#{klass.capitalize}".constantize rescue unless Appfront::Command::Base.respond_to? cmd puts 'Invalid command: ' + cmd exit 1 end return Appfront::Command::Base.send cmd end unless klass.respond_to? act puts 'Invalid action ' + act exit 1 end method_args = klass.method(act).arity case method_args when 0 klass.send act when 1 klass.send act, opts when 2 klass.send act, args, opts end end