Class: BabelDiff::YamlDiffer

Inherits:
Struct
  • Object
show all
Defined in:
lib/babel_diff/yaml_differ.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_versionObject

Returns the value of attribute current_version

Returns:

  • (Object)

    the current value of current_version



4
5
6
# File 'lib/babel_diff/yaml_differ.rb', line 4

def current_version
  @current_version
end

#previous_versionObject

Returns the value of attribute previous_version

Returns:

  • (Object)

    the current value of previous_version



4
5
6
# File 'lib/babel_diff/yaml_differ.rb', line 4

def previous_version
  @previous_version
end

Instance Method Details

#additionsObject



12
13
14
15
16
17
# File 'lib/babel_diff/yaml_differ.rb', line 12

def additions
  process_difference unless @processed
  @processed = true

  HashFlattener.new(additions_hash).unflatten.to_yaml
end

#process_differenceObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/babel_diff/yaml_differ.rb', line 19

def process_difference
  current = HashFlattener.new(current_version_hash).flatten
  previous = HashFlattener.new(previous_version_hash).flatten

  current.each do |k,v|
    if ! previous.has_key?(k)
      additions_hash[k] = v
    elsif previous[k] != v
      updates_hash[k] = v
    end
  end
end

#updatesObject



5
6
7
8
9
10
# File 'lib/babel_diff/yaml_differ.rb', line 5

def updates
  process_difference unless @processed
  @processed = true

  HashFlattener.new(updates_hash).unflatten.to_yaml
end