Class: Kettle::Drift::Diff

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/drift/diff.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(state:, new_entries: [], fixed_entries: [], unchanged_entries: []) ⇒ Diff

Returns a new instance of Diff.



8
9
10
11
12
13
# File 'lib/kettle/drift/diff.rb', line 8

def initialize(state:, new_entries: [], fixed_entries: [], unchanged_entries: [])
  @state = state
  @new_entries = new_entries
  @fixed_entries = fixed_entries
  @unchanged_entries = unchanged_entries
end

Instance Attribute Details

#fixed_entriesObject (readonly)

Returns the value of attribute fixed_entries.



6
7
8
# File 'lib/kettle/drift/diff.rb', line 6

def fixed_entries
  @fixed_entries
end

#new_entriesObject (readonly)

Returns the value of attribute new_entries.



6
7
8
# File 'lib/kettle/drift/diff.rb', line 6

def new_entries
  @new_entries
end

#stateObject (readonly)

Returns the value of attribute state.



6
7
8
# File 'lib/kettle/drift/diff.rb', line 6

def state
  @state
end

#unchanged_entriesObject (readonly)

Returns the value of attribute unchanged_entries.



6
7
8
# File 'lib/kettle/drift/diff.rb', line 6

def unchanged_entries
  @unchanged_entries
end

Instance Method Details

#filesObject



24
25
26
# File 'lib/kettle/drift/diff.rb', line 24

def files
  new_entries.group_by { |entry| entry[:file] }
end

#statisticsObject



15
16
17
18
19
20
21
22
# File 'lib/kettle/drift/diff.rb', line 15

def statistics
  {
    left: unchanged_entries.size + new_entries.size,
    fixed: fixed_entries.size,
    new: new_entries.size,
    unchanged: unchanged_entries.size,
  }
end