Files
git-utilities/lib/feature/commander.rb
2015-06-07 20:49:23 -04:00

49 lines
1.0 KiB
Ruby

require_relative './start'
require_relative './end'
require_relative './trash'
require_relative './rebase'
require_relative './merge_to'
require_relative './tab'
require_relative './branch'
require_relative './commit'
require_relative './help'
module Feature
class Commander
attr_reader :subcommands, :subcommand
def initialize (argv)
@subcommands = {
branch: Feature::Branch.new(argv),
commit: Feature::Commit.new(argv),
help: Feature::Help.new(argv),
end: Feature::End.new(argv),
rebase: Feature::Rebase.new(argv),
merge: Feature::MergeTo.new(argv),
start: Feature::Start.new(argv),
tab: Feature::Tab.new(argv),
trash: Feature::Trash.new(argv)
}
key = (argv[0] ? argv[0].to_sym : :branch)
@subcommand = (subcommands[key] ? subcommands[key] : subcommands[:help])
end
def valid?
subcommand.valid?
end
def usage
subcommand.usage
end
def execute
subcommand.execute
end
end
end