Class: Evilution::Session::Diff
- Inherits:
-
Object
- Object
- Evilution::Session::Diff
- Defined in:
- lib/evilution/session/diff.rb
Defined Under Namespace
Classes: Result, SummaryDiff
Instance Method Summary collapse
Instance Method Details
#call(base_data, head_data) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/evilution/session/diff.rb', line 38 def call(base_data, head_data) base_survivors = base_data["survived"] || [] head_survivors = head_data["survived"] || [] base_keys = base_survivors.to_set { |m| mutation_key(m) } head_keys = head_survivors.to_set { |m| mutation_key(m) } Result.new( summary: build_summary_diff(base_data, head_data), fixed: base_survivors.reject { |m| head_keys.include?(mutation_key(m)) }, new_survivors: head_survivors.reject { |m| base_keys.include?(mutation_key(m)) }, persistent: head_survivors.select { |m| base_keys.include?(mutation_key(m)) } ) end |