mirror of
https://github.com/danbee/dotfiles-local
synced 2025-03-04 08:49:07 +00:00
35 lines
594 B
Ruby
35 lines
594 B
Ruby
require_relative "tools_file"
|
|
require_relative "tool_icons"
|
|
|
|
class Tools
|
|
include ToolIcons
|
|
|
|
attr_reader :tools
|
|
|
|
def initialize
|
|
@tools = ToolsFile.new.tools
|
|
end
|
|
|
|
def list_tools
|
|
tools.sort.each do |tool, version|
|
|
if available_tools.include? tool
|
|
puts "#{tool_icon(tool)}#{tool.ljust(max_length)} #{version}"
|
|
end
|
|
end
|
|
end
|
|
|
|
def max_length
|
|
@max_length ||= installed_tools.max do |a, b|
|
|
a.length <=> b.length
|
|
end.length
|
|
end
|
|
|
|
def installed_tools
|
|
tools.keys & available_tools
|
|
end
|
|
|
|
def available_tools
|
|
TOOL_ICONS.keys
|
|
end
|
|
end
|