adding-help: commit created loader
This commit is contained in:
@@ -1,11 +1,28 @@
|
||||
require_relative './loader'
|
||||
|
||||
module Feature
|
||||
|
||||
class Commander
|
||||
|
||||
COMMANDS = [
|
||||
:branch,
|
||||
:commit,
|
||||
:help,
|
||||
:end,
|
||||
:rebase,
|
||||
:merge,
|
||||
:start,
|
||||
:tab,
|
||||
:trash
|
||||
].sort
|
||||
|
||||
DEFAULT = :help
|
||||
|
||||
attr_reader :subcommand
|
||||
|
||||
def initialize (argv)
|
||||
key = (argv[0] ? argv[0].to_sym : :branch)
|
||||
@subcommand = Commander.create(key,argv)
|
||||
@subcommand = Feature::Loader.new(COMMANDS,DEFAULT).create(key,argv)
|
||||
end
|
||||
|
||||
def valid?
|
||||
@@ -20,30 +37,6 @@ module Feature
|
||||
subcommand.execute
|
||||
end
|
||||
|
||||
def self.commands
|
||||
[
|
||||
:branch,
|
||||
:commit,
|
||||
:help,
|
||||
:end,
|
||||
:rebase,
|
||||
:merge,
|
||||
:start,
|
||||
:tab,
|
||||
:trash
|
||||
].sort
|
||||
end
|
||||
|
||||
def self.create key, argv
|
||||
key = "help" unless Commander.commands.include? key
|
||||
require_relative "./#{key}"
|
||||
klass = Module.const_get "Feature::#{key.capitalize}"
|
||||
klass.new(argv)
|
||||
end
|
||||
|
||||
def self.create_all argv
|
||||
commands.map { |x| create(x,argv) }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
require_relative './base'
|
||||
require_relative './commander'
|
||||
require_relative './loader'
|
||||
|
||||
module Feature
|
||||
|
||||
class Help < Feature::Base
|
||||
|
||||
COMMANDS = Feature::Commander::COMMANDS
|
||||
DEFAULT = Feature::Commander::DEFAULT
|
||||
|
||||
def valid?
|
||||
true
|
||||
end
|
||||
@@ -13,7 +19,8 @@ module Feature
|
||||
|
||||
def execute
|
||||
puts
|
||||
Feature::Commander.create_all(argv).each do |cmd|
|
||||
loader = Feature::Loader.new(COMMANDS,DEFAULT)
|
||||
loader.create_all(argv).each do |cmd|
|
||||
puts cmd.help
|
||||
end
|
||||
puts
|
||||
|
||||
28
lib/feature/loader.rb
Normal file
28
lib/feature/loader.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
module Feature
|
||||
|
||||
class Loader
|
||||
attr_reader :commands, :default
|
||||
|
||||
def initialize commands, default
|
||||
@commands = commands
|
||||
@default = default
|
||||
end
|
||||
|
||||
def create key, argv
|
||||
key = default unless commands.include? key
|
||||
require_relative "./#{key}"
|
||||
klass = Module.const_get "Feature::#{key.to_s.capitalize}"
|
||||
klass.new(argv)
|
||||
end
|
||||
|
||||
def create_all argv
|
||||
commands.map { |x| create(x,argv) }
|
||||
end
|
||||
|
||||
def search pattern
|
||||
regexp = Regexp.new(pattern)
|
||||
commands.select { |x| regexp.match(x.to_s) }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,8 +1,14 @@
|
||||
require_relative './base'
|
||||
require_relative './commander'
|
||||
require_relative './loader'
|
||||
|
||||
module Feature
|
||||
|
||||
class Tab < Feature::Base
|
||||
|
||||
COMMANDS = Feature::Commander::COMMANDS
|
||||
DEFAULT = Feature::Commander::DEFAULT
|
||||
|
||||
def valid?
|
||||
[1,2].include? argv.size
|
||||
end
|
||||
@@ -18,9 +24,8 @@ module Feature
|
||||
pattern = "^#{argv[1]}"
|
||||
end
|
||||
|
||||
regexp = Regexp.new(pattern)
|
||||
|
||||
puts Feature::Commander.commands.select { |x| regexp.match(x.to_s) }.join("\n")
|
||||
loader = Feature::Loader.new(COMMANDS,DEFAULT)
|
||||
puts loader.search(pattern).join("\n")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user