class Uncool::CLI
CLI
Interface handle all lemon sub-commands.
Constants
- COMMANDS
Public Class Methods
new(argv=ARGV)
click to toggle source
# File lib/uncool/cli.rb, line 16 def initialize(argv=ARGV) @options = {} end
run(argv=ARGV)
click to toggle source
# File lib/uncool/cli.rb, line 11 def self.run(argv=ARGV) new.run(argv) end
Public Instance Methods
coverage(scripts)
click to toggle source
# File lib/uncool/cli.rb, line 40 def coverage(scripts) require 'uncool/app' app = App.new(options) app.log scripts.each do |file| require(file) end end
coverage_parse(argv)
click to toggle source
# File lib/uncool/cli.rb, line 53 def coverage_parse(argv) option_namespaces option_private option_output option_format #option_uncovered option_loadpath option_requires option_parser.parse!(argv) end
generate(scripts)
click to toggle source
# File lib/uncool/cli.rb, line 68 def generate(scripts) require 'uncool/app' app = App.new(options) output = app.generate(scripts) $stdout.puts(output) end
generate_parse(argv)
click to toggle source
# File lib/uncool/cli.rb, line 79 def generate_parse(argv) option_generate option_namespaces option_framework option_private option_loadpath option_requires option_parser.parse!(argv) end
option_format()
click to toggle source
# File lib/uncool/cli.rb, line 124 def option_format option_parser.on('--format', '-f NAME', 'output format') do |name| options[:format] = name end end
option_framework()
click to toggle source
# File lib/uncool/cli.rb, line 99 def option_framework option_parser.on('-f', '--framework NAME', 'framework syntax to output') do |name| options[:framework] = name.to_sym end end
option_generate()
click to toggle source
# File lib/uncool/cli.rb, line 146 def option_generate option_parser.on('-g' , '--generate', 'code generation mode') do end end
option_loadpath()
click to toggle source
# File lib/uncool/cli.rb, line 130 def option_loadpath option_parser.on("-I PATH" , 'add directory to $LOAD_PATH') do |path| paths = path.split(/[:;]/) options[:loadpath] ||= [] options[:loadpath].concat(paths) end end
option_namespaces()
click to toggle source
P A R S E R O P T I O N S
# File lib/uncool/cli.rb, line 92 def option_namespaces option_parser.on('-n', '--namespace NAME', 'add a namespace to output') do |name| options[:namespaces] ||= [] options[:namespaces] << name end end
option_output()
click to toggle source
# File lib/uncool/cli.rb, line 118 def option_output option_parser.on('-o', '--output DIRECTORY', 'log directory') do |dir| options[:output] = dir end end
option_parser()
click to toggle source
# File lib/uncool/cli.rb, line 151 def option_parser @option_parser ||= ( OptionParser.new do |opt| opt.on_tail("--debug" , 'turn on debugging mode') do $DEBUG = true end opt.on_tail('-h', '--help', 'display this help messae') do puts opt exit 0 end end ) end
option_private()
click to toggle source
TODO: How feasible is it to parse tests of various frameworks to check "writ" coverage?
def option_uncovered
option_parser.on('-u', '--uncovered', 'include only uncovered tests') do options[:uncovered] = true end
end
# File lib/uncool/cli.rb, line 112 def option_private option_parser.on('-p', '--private', 'include private and protected methods') do options[:private] = true end end
option_requires()
click to toggle source
# File lib/uncool/cli.rb, line 138 def option_requires option_parser.on("-r FILE" , 'require file(s) (before doing anything else)') do |files| files = files.split(/[:;]/) options[:requires] ||= [] options[:requires].concat(files) end end
options()
click to toggle source
# File lib/uncool/cli.rb, line 21 def options @options end
run(argv)
click to toggle source
# File lib/uncool/cli.rb, line 26 def run(argv) if argv.include?('-g') or argv.include?('--generate') cmd = 'generate' else cmd = 'coverage' end cmd = COMMANDS.find{ |c| /^#{cmd}/ =~ c } __send__("#{cmd}_parse", argv) __send__("#{cmd}", argv) end