Class: DiffGem::Comparer

Inherits:
Object
  • Object
show all
Defined in:
lib/diff_gem/comparer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gem_name:, old_version:, new_version:, cache_dir: nil) ⇒ Comparer

Returns a new instance of Comparer.



8
9
10
11
12
13
# File 'lib/diff_gem/comparer.rb', line 8

def initialize(gem_name:, old_version:, new_version:, cache_dir: nil)
  @gem_name = gem_name
  @old_version = old_version
  @new_version = new_version
  @cache_dir = cache_dir || default_cache_dir
end

Instance Attribute Details

#cache_dirObject (readonly)

Returns the value of attribute cache_dir.



6
7
8
# File 'lib/diff_gem/comparer.rb', line 6

def cache_dir
  @cache_dir
end

#gem_nameObject (readonly)

Returns the value of attribute gem_name.



6
7
8
# File 'lib/diff_gem/comparer.rb', line 6

def gem_name
  @gem_name
end

#new_versionObject (readonly)

Returns the value of attribute new_version.



6
7
8
# File 'lib/diff_gem/comparer.rb', line 6

def new_version
  @new_version
end

#old_versionObject (readonly)

Returns the value of attribute old_version.



6
7
8
# File 'lib/diff_gem/comparer.rb', line 6

def old_version
  @old_version
end

Instance Method Details

#compareObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/diff_gem/comparer.rb', line 15

def compare
  puts "Comparing #{gem_name}: #{old_version} -> #{new_version}\n\n"

  extractor = GemExtractor.new(cache_dir)

  # Extract both versions
  old_path = extractor.extract_gem(gem_name, old_version)
  new_path = extractor.extract_gem(gem_name, new_version)

  puts "\nGenerating diff...\n\n"

  # Generate and display diff
  generate_diff(old_path, new_path)
end