Sha256: da55529eed1e38d6dd7cc690ac301649070de6ed3cdfaae73de37c9bebb188c0
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
require 'checker' module Checker class CLI class << self def execute if ARGV.size == 0 modules = get_modules_to_check else modules = ARGV.map(&:downcase) end if modules.empty? || modules.include?('all') modules = available_modules end check_module_availability(modules) do |result| puts "Modules not available: #{result.join(", ")}.\n" puts "Available: all, #{available_modules.join(", ")}\n" puts "Check your git config checker.check\n" exit 1 end module_instances = [] files = modified_files modules.each do |mod| klass = "Checker::Modules::#{mod.downcase.capitalize}".constantize module_instances << klass.new(files.dup) end files_checked = module_instances.map(&:files_to_check).flatten.uniq puts "[ CHECKER #{Checker::VERSION} - #{files_checked.size} files ]".light_blue results = module_instances.map(&:check) exit (results.all_true? ? 0 : 1) end private def available_modules Checker::Modules.constants.map(&:to_s).map(&:downcase) - ['base'] end def check_module_availability(modules) result = modules - available_modules unless result.empty? if block_given? yield(result) end end end def get_modules_to_check `git config checker.check`.chomp.split(",").map(&:strip) end def modified_files @modified_files ||= `git status --porcelain | egrep "^(A|M|R).*" | awk ' { if ($3 == "->") print $4; else print $2 } '`.split end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
checker-0.6.2 | lib/checker/cli.rb |
checker-0.6.1 | lib/checker/cli.rb |
checker-0.0.6 | lib/checker/cli.rb |