Module: Hashira::CLI::FailOn

Defined in:
lib/hashira/cli/fail_on.rb

Constant Summary collapse

SMELLS =
%w[
  control_parameter data_clump duplicate_method_call feature_envy instance_variable_assumption
  manual_dispatch module_initialize nil_check repeated_conditional too_many_instance_variables
  utility_function
].freeze
MEASURES =
(Hashira::Pipeline::ANALYZERS - %i[coupling smells]).map(&:to_s).freeze
KINDS =
{
  "cycles" => "cycle", "sdp" => "sdp_violation", "dupe" => "duplication",
  **Hashira::Pipeline::STRUCTURAL.to_h { [it, it] },
  **MEASURES.to_h { [it, it] },
  "smells" => SMELLS, **SMELLS.to_h { [it, it] }
}.freeze

Class Method Summary collapse

Class Method Details

.kind(name) ⇒ Object



28
29
30
31
32
# File 'lib/hashira/cli/fail_on.rb', line 28

def kind(name)
  KINDS.fetch(name) do
    raise(Hashira::Error, "unknown --fail-on kind #{name.inspect} (use: #{KINDS.keys.join(", ")})")
  end
end

.parse(list) ⇒ Object



23
24
25
26
# File 'lib/hashira/cli/fail_on.rb', line 23

def parse(list)
  return [] unless list
  list.split(",").flat_map { Array(kind(it.strip)) }.uniq
end