class Gitrob::CLI
Constants
- DB_MIGRATIONS_PATH
- HELP_COMMANDS
Attributes
configuration[R]
Public Class Methods
configuration()
click to toggle source
# File lib/gitrob/cli.rb, line 210 def self.configuration @config end
configuration=(config)
click to toggle source
# File lib/gitrob/cli.rb, line 206 def self.configuration=(config) @config = config end
debug(message)
click to toggle source
# File lib/gitrob/cli.rb, line 186 def self.debug(message) output "[#]".light_cyan + " #{message}\n" if debugging_enabled? end
debugging_enabled?()
click to toggle source
# File lib/gitrob/cli.rb, line 202 def self.debugging_enabled? # rubocop:disable Style/TrivialAccessors @debugging_enabled end
disable_debugging()
click to toggle source
# File lib/gitrob/cli.rb, line 198 def self.disable_debugging @debugging_enabled = false end
enable_debugging()
click to toggle source
# File lib/gitrob/cli.rb, line 194 def self.enable_debugging @debugging_enabled = true end
error(message)
click to toggle source
# File lib/gitrob/cli.rb, line 177 def self.error(message) output "[!]".light_red + " #{message}\n" end
fatal(message)
click to toggle source
# File lib/gitrob/cli.rb, line 181 def self.fatal(message) output "[!]".light_white.on_red + " #{message}\n" exit(1) end
info(message)
click to toggle source
# File lib/gitrob/cli.rb, line 150 def self.info(message) output "[*]".light_blue + " #{message}\n" end
new(*args)
click to toggle source
Calls superclass method
# File lib/gitrob/cli.rb, line 45 def initialize(*args) super Hashie.logger = Logger.new(nil) # Disable warnings from Hashie self.class.enable_debugging if options[:debug] String.disable_colorization(!options[:color]) return if help_command? banner configure unless configured? load_configuration prepare_database end
output(string)
click to toggle source
# File lib/gitrob/cli.rb, line 190 def self.output(string) print string end
output_failed_task(exception, fatal_error)
click to toggle source
# File lib/gitrob/cli.rb, line 163 def self.output_failed_task(exception, fatal_error) message = "#{exception.class}: #{exception.message}" debug exception.backtrace.join("\n") if fatal_error fatal message else error message end end
task(message, fatal_error=false) { |block| ... }
click to toggle source
# File lib/gitrob/cli.rb, line 154 def self.task(message, fatal_error=false, &block) output "[*]".light_blue + " #{message}" yield block output " done\n".light_green rescue => e output " failed\n".light_red output_failed_task(e, fatal_error) end
warn(message)
click to toggle source
# File lib/gitrob/cli.rb, line 173 def self.warn(message) output "[!]".light_yellow + " #{message}\n" end
Public Instance Methods
accept_tos()
click to toggle source
# File lib/gitrob/cli.rb, line 105 def accept_tos Gitrob::CLI::Commands::AcceptTermsOfUse.start(options) end
analyze(targets)
click to toggle source
# File lib/gitrob/cli.rb, line 83 def analyze(targets) accept_tos Gitrob::CLI::Commands::Analyze.start(targets, options) end
configure()
click to toggle source
# File lib/gitrob/cli.rb, line 95 def configure Gitrob::CLI::Commands::Configure.start(options) end
configured?()
click to toggle source
# File lib/gitrob/cli.rb, line 115 def configured? Gitrob::CLI::Commands::Configure.configured? end
help_command?()
click to toggle source
# File lib/gitrob/cli.rb, line 110 def help_command? !ENV["GITROB_ENV"] == "TEST" && (ARGV.empty? || HELP_COMMANDS.include?(ARGV.first.downcase)) end
load_configuration()
click to toggle source
# File lib/gitrob/cli.rb, line 119 def load_configuration self.class.task("Loading configuration...", true) do @configuration = Gitrob::CLI::Commands::Configure.load_configuration! self.class.configuration = @configuration end end
load_models()
click to toggle source
# File lib/gitrob/cli.rb, line 139 def load_models require "gitrob/models/assessment" require "gitrob/models/github_access_token" require "gitrob/models/owner" require "gitrob/models/repository" require "gitrob/models/blob" require "gitrob/models/flag" require "gitrob/models/comparison" end
prepare_database()
click to toggle source
# File lib/gitrob/cli.rb, line 126 def prepare_database self.class.task("Preparing database...", true) do Sequel.extension :migration, :core_extensions db = Sequel.connect(configuration["sql_connection_uri"]) Sequel::Migrator.run(db, DB_MIGRATIONS_PATH) Sequel::Model.raise_on_save_failure = true Sequel::Model.db = db Sequel::Model.plugin :validation_helpers Sequel::Model.plugin :timestamps load_models end end
server()
click to toggle source
# File lib/gitrob/cli.rb, line 89 def server accept_tos Gitrob::CLI::Commands::Server.start(options) end