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