Class: Giff::Diff
- Inherits:
-
Object
- Object
- Giff::Diff
- Defined in:
- lib/giff/diff.rb
Instance Method Summary collapse
- #describe ⇒ Object
- #files_changed? ⇒ Boolean
-
#initialize(file_a, file_b) ⇒ Diff
constructor
A new instance of Diff.
- #metadata_changed? ⇒ Boolean
Constructor Details
#initialize(file_a, file_b) ⇒ Diff
Returns a new instance of Diff.
5 6 7 8 |
# File 'lib/giff/diff.rb', line 5 def initialize(file_a, file_b) @gem_a = to_file(file_a) @gem_b = to_file(file_b) end |
Instance Method Details
#describe ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/giff/diff.rb', line 10 def describe if files_changed? data_a = @gem_a.data.contents data_b = @gem_b.data.contents keys = (data_a.keys + data_b.keys).sort.uniq keys.each do |key| if !data_a.key?(key) STDERR.puts "#{key} was removed" elsif !data_b.key?(key) STDERR.puts "#{key} was added" elsif data_a[key] != data_b[key] STDERR.puts "#{key} was modified" end end elsif STDERR.puts "files equal but metadata changed" else STDERR.puts "files and metadata equal" end end |
#files_changed? ⇒ Boolean
31 32 33 |
# File 'lib/giff/diff.rb', line 31 def files_changed? @gem_a.data.contents != @gem_b.data.contents end |
#metadata_changed? ⇒ Boolean
35 36 37 |
# File 'lib/giff/diff.rb', line 35 def @gem_a..contents != @gem_b..contents end |