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