Sha256: 739e32076295ad933d1c99961c88b37e7d7f7e3d164edec5f438e9309e4a65ee
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require 'pdk' require 'pdk/cli/exec' module PDK module Validate class BaseValidator def self.cmd_path File.join(PDK::Util.module_root, 'bin', cmd) end def self.parse_targets(options) # If no targets are specified, then we will run validations from the # base module directory. targets = if options[:targets].nil? || options[:targets].empty? [PDK::Util.module_root] else options[:targets] end targets.map { |target| if respond_to?(:pattern) if File.directory?(target) files_glob = Array[pattern].flatten.map { |p| Dir.glob(File.join(target, p)) } files_glob.flatten.empty? ? target : files_glob else target end else target end }.flatten end def self.parse_options(_options, targets) targets end def self.spinner_text _('Invoking %{cmd}') % { cmd: cmd } end def self.invoke(report, options = {}) PDK::Util::Bundler.ensure_binstubs!(cmd) targets = parse_targets(options) cmd_argv = parse_options(options, targets).unshift(cmd_path) cmd_argv.unshift('ruby') if Gem.win_platform? PDK.logger.debug(_('Running %{cmd}') % { cmd: cmd_argv.join(' ') }) command = PDK::CLI::Exec::Command.new(*cmd_argv).tap do |c| c.context = :module c.add_spinner(spinner_text) end result = command.execute! begin json_data = JSON.parse(result[:stdout]) rescue JSON::ParserError json_data = [] end parse_output(report, json_data) result[:exit_code] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pdk-0.2.0 | lib/pdk/validators/base_validator.rb |