class CodeWeb::CLI
Attributes
arguments[RW]
@attribute arguments [r]
@return [Array<String>] command line arguments
base_url[RW]
@attribute base_url
[rw]
@return url for files (i.e.: https://github.com/ManageIQ/manageiq/blob/master) defaults to local filesystem
class_map[RW]
@attribute class_map
@return [Map<Regexp,html_class>] files/directories with specal emphasis
code_parser[RW]
file_and_url[RW]
@attribute file_and_url
[rw]
@return true if both url and file are displayed
filenames[RW]
@attribute filenames [rw]
@return [Array<String>] regular expression filenames
output[RW]
report_generator[RW]
@attribute report_generator
[rw]
@return class that runs the report (i.e.: TextReport, HtmlReport)
Public Class Methods
new(arguments)
click to toggle source
# File lib/code_web/cli.rb, line 46 def initialize(arguments) @arguments = arguments @code_parser = CodeWeb::CodeParser.new @class_map = {} end
parse(args)
click to toggle source
# File lib/code_web/cli.rb, line 5 def self.parse(args) new(args).run end
Public Instance Methods
arg_regex()
click to toggle source
# File lib/code_web/cli.rb, line 12 def arg_regex ; code_parser.arg_regex ; end
arg_regex=(val)
click to toggle source
# File lib/code_web/cli.rb, line 14 def arg_regex=(val) ; code_parser.arg_regex = val ; end
debug=(val)
click to toggle source
# File lib/code_web/cli.rb, line 17 def debug=(val) ; code_parser.debug = val ; end
debug?()
click to toggle source
# File lib/code_web/cli.rb, line 18 def debug? ; code_parser.debug? ; end
display_results()
click to toggle source
# File lib/code_web/cli.rb, line 106 def display_results STDOUT.puts "parsed #{files_parsed} files" report_generator.new(method_calls, class_map, arg_regex, output, :base_url => base_url).report end
exit_on_error=(val)
click to toggle source
# File lib/code_web/cli.rb, line 15 def exit_on_error=(val) ; code_parser.exit_on_error = val ; end
files_parsed()
click to toggle source
# File lib/code_web/cli.rb, line 11 def files_parsed ; code_parser.file_count ; end
method_calls()
click to toggle source
# File lib/code_web/cli.rb, line 10 def method_calls ; code_parser.method_calls ; end
method_regex=(val)
click to toggle source
# File lib/code_web/cli.rb, line 13 def method_regex=(val) ; code_parser.method_regex = val ; end
parse_arguments()
click to toggle source
# File lib/code_web/cli.rb, line 58 def parse_arguments #defaults self.report_generator = ::CodeWeb::HtmlReport self.output = STDOUT #parsing the command line OptionParser.new do |opt| opt.banner = "Usage: code_web regex [file_name ...]" # opt.on('-n', '--requests=count', Integer, "Number of requests (default: #{requests})") { |v| options[:requests] = v } opt.on('-t', '--text', 'Use text reports') { |v| self.report_generator = ::CodeWeb::TextReport } opt.on('-u', '--url URL', 'Base url (e.g.: https://github.com/miq/miq/blob/master)') { |v| self.base_url = v } opt.on('-b', '--both', 'Show file and url references') { |v| self.file_and_url = v } opt.on('-a', '--arg ARG_REGEX', 'Only files with hash argument') { |v| self.arg_regex = Regexp.new(v) } opt.on('-o', '--output FILENAME', 'Output filename') { |v| self.output = (v == '-') ? STDOUT : File.new(v,'w') } opt.on('-e', '--error-out', 'exit on unknown tags') { |v| self.exit_on_error = true} opt.on('-V', '--verbose', 'verbose parsing') { |v| self.verbose = true} opt.on('-D', '--debug', 'debug parsing') { |v| self.debug = true} opt.on('-p', '--pattern FILENAME_REGEX=COLOR','color to emphasize a file') { |v| v = v.split('=') ; self.class_map[Regexp.new(v.first)] = v.last } opt.on('--byebug') { require "byebug" } opt.on('--pry') { require "pry" } opt.on_tail("-h", "--help", "Show this message") { puts opt ; exit } opt.on_tail("-v", "--version", "Show version_information") { puts "Code Web version #{CodeWeb::VERSION}" ; exit } opt.parse!(arguments) if arguments.length == 0 puts opt exit end end self.method_regex = Regexp.new(arguments[0]) self.filenames = arguments[1..-1] || "." end
parse_files()
click to toggle source
# File lib/code_web/cli.rb, line 91 def parse_files filenames.each do |arg| arg = "#{arg}/**/*.rb" if Dir.exists?(arg) if File.exist?(arg) puts arg if debug? code_parser.parse arg else Dir[arg].each do |file_name| puts arg if debug? code_parser.parse(file_name) end end end end
run()
click to toggle source
# File lib/code_web/cli.rb, line 52 def run parse_arguments parse_files display_results end
verbose=(val)
click to toggle source
# File lib/code_web/cli.rb, line 16 def verbose=(val) ; code_parser.verbose = val ; end