2 changed files with 68 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||
class Cask::CLI::Info |
|||
def self.run(*cask_names) |
|||
cask_names.each do |cask_name| |
|||
begin |
|||
cask = Cask.load(cask_name) |
|||
puts info(cask) |
|||
rescue CaskUnavailableError => e |
|||
onoe e |
|||
end |
|||
end |
|||
end |
|||
|
|||
def self.help |
|||
"displays information about the cask of the given name" |
|||
end |
|||
|
|||
def self.info(cask) |
|||
installation = if cask.installed? |
|||
"#{cask.destination_path} (#{cask.destination_path.abv})" |
|||
else |
|||
"Not installed" |
|||
end |
|||
|
|||
<<-PURPOSE.undent |
|||
#{cask}: #{cask.version} |
|||
#{cask.homepage} |
|||
#{installation} |
|||
#{github_info(cask)} |
|||
PURPOSE |
|||
end |
|||
|
|||
def self.github_info(cask) |
|||
tap = cask.title |
|||
tap = cask.class.all_titles.grep(/#{tap}$/).first unless tap =~ /\// |
|||
tap, name = tap.split "/" |
|||
user, repo = tap.split "-" |
|||
"https://github.com/#{user}/#{repo}/commits/master/Casks/#{name}.rb" |
|||
end |
|||
end |
@ -0,0 +1,29 @@ |
|||
require 'test_helper' |
|||
|
|||
describe Cask::CLI::Info do |
|||
it 'displays some nice info about the specified cask' do |
|||
lambda { |
|||
Cask::CLI::Info.run('alfred') |
|||
}.must_output <<-CLIOUTPUT.undent |
|||
alfred: 1.3.2_265 |
|||
http://www.alfredapp.com/ |
|||
Not installed |
|||
https://github.com/phinze/cask/commits/master/Casks/alfred.rb |
|||
CLIOUTPUT |
|||
end |
|||
|
|||
it 'works for multiple casks' do |
|||
lambda { |
|||
Cask::CLI::Info.run('alfred', 'firefox') |
|||
}.must_output <<-CLIOUTPUT.undent |
|||
alfred: 1.3.2_265 |
|||
http://www.alfredapp.com/ |
|||
Not installed |
|||
https://github.com/phinze/cask/commits/master/Casks/alfred.rb |
|||
firefox: 17.0.1 |
|||
http://www.mozilla.org/en-US/firefox/ |
|||
Not installed |
|||
https://github.com/phinze/cask/commits/master/Casks/firefox.rb |
|||
CLIOUTPUT |
|||
end |
|||
end |
Loading…
Reference in new issue