Class: FactoryTrace::FindUnused

Inherits:
Object
  • Object
show all
Defined in:
lib/factory_trace/find_unused.rb

Class Method Summary collapse

Class Method Details

.call(initial_data) ⇒ Array<Hash>

Parameters:

  • initial_data (Array<Hash>)

Returns:

  • (Array<Hash>)


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/factory_trace/find_unused.rb', line 5

def self.call(initial_data)
  all, used = initial_data

  output = []

  all.each do |factory_name, trait_names|
    unless used.key?(factory_name)
      output << {code: :unused, factory_name: factory_name}
      next
    end

    trait_names.each do |trait_name|
      unless used[factory_name].include?(trait_name)
        output << {code: :unused, trait_name: trait_name}.tap { |h| h[:factory_name] = factory_name unless factory_name == '_traits' }
      end
    end
  end

  output.unshift(code: :unused, value: output.size)
  output.unshift(code: :used, value: count_total(used))

  output
end