/
rubygems-search.rb
34 lines (26 loc) · 1004 Bytes
/
rubygems-search.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$: << File.expand_path('./vendor/gems/gems-0.8.1/lib')
$: << File.expand_path('./lib')
require 'gems'
require 'alfred_feedback'
require 'alfred_feedback_item'
query = ARGV[0]
feedback = AlfredFeedback.new
begin
gem_results = Gems.search(query)
if gem_results.any?
gem_results.each do |gem_data|
name = gem_data['name']
info = gem_data['info']
version = gem_data['version']
arg = ""
subtitle = "#{version} - #{info}"
feedback << AlfredFeedBackItem.new(name, :subtitle => subtitle, :arg => "https://rubygems.org/gems/#{name}")
end
else
feedback << AlfredFeedBackItem.new("No gems found for '#{query}'.", :subtitle => "Are you sure you're looking for the right thing?", :valid => false)
end
rescue SocketError => e
rubygems_status_url = 'http://status.rubygems.org'
feedback << AlfredFeedBackItem.new("Error: RubyGems seems unavailable.", :subtitle => "SocketError occurred: #{e}", :arg => rubygems_status_url)
end
puts feedback