49 lines
1.0 KiB
Ruby
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
|