Class: Mnenv::ChocolateyCommand

Inherits:
Thor
  • Object
show all
Defined in:
lib/mnenv/commands/chocolatey_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/chocolatey_command.rb', line 14

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

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

#refreshObject



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

def refresh
  fetcher = Chocolatey::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 Chocolatey versions found'
  else
    fetcher.repository.save_all(new_versions)
    puts "Added #{new_versions.size} new Chocolatey versions"
  end
end

#revampObject



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

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

#update(version) ⇒ Object



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

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

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