Module: Bundler::Diff::CLI

Extended by:
CLI
Included in:
CLI
Defined in:
lib/bundler/diff/cli.rb

Instance Method Summary collapse

Instance Method Details

#run(args = ARGV) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bundler/diff/cli.rb', line 11

def run(args=ARGV)
  Bundler.ui = Bundler::UI::Shell.new

  args = option_parser.parse(args) unless args.empty?

  gem_name = args.first

  error('gem name required') unless gem_name

  installed_spec = installed_specs[gem_name]

  error('gem spec not found') unless installed_spec

  Dir.mktmpdir do |tmp_dir|
    gem_spec = fetch(gem_name, tmp_dir)

    unpack(gem_spec, tmp_dir)

    tool = Bundler::Diff::Tool.new
    tool.a_dir = Pathname(installed_spec.gem_dir)
    tool.a_output_dir = Pathname(installed_spec.full_name)
    tool.b_dir = Pathname(tmp_dir).join(gem_spec.full_name)
    tool.b_output_dir = Pathname(gem_spec.full_name)
    tool.diff_entries
  end
end