Class: Mnenv::HomebrewCommand

Inherits:
Thor
  • Object
show all
Defined in:
lib/mnenv/commands/homebrew_command.rb

Instance Method Summary collapse

Instance Method Details

#listObject



14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mnenv/commands/homebrew_command.rb', line 14

def list
  repo = HomebrewRepository.new
  versions = repo.all

  case options[:format]
  when 'json'
    output = JsonFormatter.format_versions(versions)
    output['platform'] = 'homebrew'
    puts JSON.pretty_generate(output)
  else
    list_versions_text(versions, 'Homebrew')
  end
end

#refreshObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mnenv/commands/homebrew_command.rb', line 29

def refresh
  fetcher = Homebrew::Fetcher.new
  existing = fetcher.repository.all.map(&:version)
  remote_versions = fetcher.fetch_all
  new_versions = remote_versions.reject { |v| existing.include?(v.version) }

  if new_versions.empty?
    puts 'No new Homebrew versions found'
  else
    fetcher.repository.save_all(new_versions)
    puts "Added #{new_versions.size} new Homebrew versions"
  end
end

#revampObject



44
45
46
47
48
# File 'lib/mnenv/commands/homebrew_command.rb', line 44

def revamp
  fetcher = Homebrew::Fetcher.new
  versions = fetcher.fetch_and_save
  puts "Revamped #{versions.size} Homebrew versions"
end

#update(version) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/mnenv/commands/homebrew_command.rb', line 51

def update(version)
  fetcher = Homebrew::Fetcher.new
  versions = fetcher.fetch_all
  target = versions.find { |v| v.version == version }

  if target
    fetcher.repository.save(target)
    puts "Updated Homebrew version #{version}"
  else
    puts "Homebrew version #{version} not found"
    exit 1
  end
end