gems-cli 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/gems +62 -20
- data/gems-cli.gemspec +2 -2
- data/lib/gems-cli.rb +0 -1
- data/lib/gems-cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3867f8adb6fcf32c7dbea17cfdec4b593d065bca
|
4
|
+
data.tar.gz: 14f52ea29a59f9880644902d25e03f26675fbb82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d472d5e50c42663190f2ed0b9225a0ec24388a395bd41838129115af2448ef8560bb1dce2b9be10e521ddc4a732eb76b221ecbed42650a4f75739d3cabe2bda
|
7
|
+
data.tar.gz: 78b9870621cc6c1b3f5cc9a8eae6a960d64bcc784fc7a61a2015c13d6c9bdc4c97db90b64a8c9e44ecdaacf14d2a8806bbc597dd890e8d32e5b3b56773965978
|
data/bin/gems
CHANGED
@@ -12,54 +12,96 @@ version GemsCli::VERSION
|
|
12
12
|
arguments :strict
|
13
13
|
subcommand_option_handling :normal
|
14
14
|
|
15
|
+
def display_gem data, index, prefix=''
|
16
|
+
puts "#{prefix}#{index}: gem '#{data['name']}', '~> #{data['version']}'"
|
17
|
+
end
|
18
|
+
|
15
19
|
desc 'Search Rubygems.org for a gem'
|
16
20
|
arg_name 'Name of a gem'
|
17
21
|
command [:search, :s] do |c|
|
18
22
|
c.desc 'Number of results returned per page'
|
19
|
-
c.default_value
|
23
|
+
c.default_value 7
|
20
24
|
c.flag :n
|
21
25
|
|
22
|
-
c.action do |global_options,options,args|
|
23
|
-
|
26
|
+
c.action do |global_options, options, args|
|
27
|
+
query = args[0]
|
28
|
+
|
29
|
+
if query.nil? || query.empty?
|
24
30
|
raise ArgumentError, 'Please supply a search term.'
|
25
31
|
end
|
26
32
|
|
27
|
-
puts "Running your search for #{
|
33
|
+
puts "Running your search for #{query}...".color(:green)
|
28
34
|
|
29
|
-
search_results = Gems.search
|
35
|
+
search_results = Gems.search(query)
|
30
36
|
limit = options[:n].to_i
|
31
37
|
paged_results = Paginator.new(ary: search_results, per_page: limit)
|
32
38
|
|
33
39
|
paged_results.first_page.each_with_index do |e, i|
|
34
|
-
|
40
|
+
display_gem e, i
|
35
41
|
end
|
36
42
|
|
37
43
|
@answer = ''
|
44
|
+
versions = {}
|
45
|
+
letters = ('a'..'c').to_a
|
38
46
|
until @answer == 'q'
|
39
47
|
puts "Page: #{paged_results.page}/#{paged_results.pages}\n".color(:green)
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
48
|
+
can_get_more_versions = versions.size < 1
|
49
|
+
choices = "Select from 0..#{paged_results.per_page - 1}, (n)ext, (p)revious, "
|
50
|
+
choices += "(m)ore versions, " if can_get_more_versions
|
51
|
+
choices += "or (q)uit #=> "
|
52
|
+
@answer = ask(choices.color(:green), String) do |q|
|
53
|
+
q.case = :downcase
|
54
|
+
if can_get_more_versions
|
55
|
+
q.validate = /\A\d+\w?|q|n|m|p\Z/
|
56
|
+
else
|
57
|
+
q.validate = /\A\d+\w?|q|n|p\Z/
|
58
|
+
end
|
59
|
+
end
|
45
60
|
|
46
61
|
case @answer
|
47
|
-
when /\d
|
62
|
+
when /\d+\w?/
|
48
63
|
gem_list = paged_results.current_page
|
49
|
-
|
50
|
-
|
51
|
-
|
64
|
+
chosen_index, chosen_version = @answer.scan(/\d+|\D+/)
|
65
|
+
chosen_index = chosen_index.to_i
|
66
|
+
if chosen_gem=gem_list[chosen_index]
|
67
|
+
gem_name = chosen_gem['name']
|
68
|
+
gem_version = chosen_gem['version']
|
69
|
+
if chosen_version
|
70
|
+
gem_version_index = letters.index(chosen_version)
|
71
|
+
unless gem_version_index
|
72
|
+
puts 'Invalid gem and version choice'
|
73
|
+
next
|
74
|
+
end
|
75
|
+
selected_version = versions[gem_name][gem_version_index]
|
76
|
+
gem_version = selected_version['number']
|
77
|
+
end
|
78
|
+
Clipboard.copy "gem '#{gem_name}', '~> #{gem_version}'"
|
79
|
+
puts "Copied #{gem_name} #{gem_version} to your clipboard!".color(:green)
|
52
80
|
break
|
53
81
|
else
|
54
|
-
puts "Your choice,
|
82
|
+
puts "Your choice, #@answer, is not in the list 0..#{gem_list.size - 1}"
|
83
|
+
end
|
84
|
+
when 'm'
|
85
|
+
paged_results.current_page.each_with_index do |e, i|
|
86
|
+
display_gem e, i
|
87
|
+
gem_name = e['name']
|
88
|
+
versions[gem_name] = Gems.versions(gem_name).sort {|a, b|
|
89
|
+
b['built_at'] <=> a['built_at']
|
90
|
+
}.reject {|v| v['number'] == e['version'] }
|
91
|
+
versions[gem_name][0...letters.length].each_with_index do |v, j|
|
92
|
+
version_data = {'name' => gem_name, 'version' => v['number']}
|
93
|
+
display_gem version_data, "#{i}#{letters[j]}", ' '
|
94
|
+
end
|
55
95
|
end
|
56
96
|
when 'n'
|
97
|
+
versions = {}
|
57
98
|
paged_results.next_page.each_with_index do |e, i|
|
58
|
-
|
99
|
+
display_gem e, i
|
59
100
|
end
|
60
101
|
when 'p'
|
102
|
+
versions = {}
|
61
103
|
paged_results.previous_page.each_with_index do |e, i|
|
62
|
-
|
104
|
+
display_gem e, i
|
63
105
|
end
|
64
106
|
when 'q'
|
65
107
|
puts 'Later.'
|
@@ -70,7 +112,7 @@ command [:search, :s] do |c|
|
|
70
112
|
end
|
71
113
|
end
|
72
114
|
|
73
|
-
pre do |global,command,options,args|
|
115
|
+
pre do |global, command, options, args|
|
74
116
|
# Pre logic here
|
75
117
|
# Return true to proceed; false to abort and not call the
|
76
118
|
# chosen command
|
@@ -79,7 +121,7 @@ pre do |global,command,options,args|
|
|
79
121
|
true
|
80
122
|
end
|
81
123
|
|
82
|
-
post do |global,command,options,args|
|
124
|
+
post do |global, command, options, args|
|
83
125
|
# Post logic here
|
84
126
|
# Use skips_post before a command to skip this
|
85
127
|
# block on that command only
|
data/gems-cli.gemspec
CHANGED
@@ -29,8 +29,8 @@ spec = Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency 'simplecov', '~> 0.9.1'
|
30
30
|
s.add_development_dependency 'rubocop', '~> 0.28.0'
|
31
31
|
|
32
|
-
s.add_runtime_dependency 'gli','2.12.2'
|
33
|
-
s.add_runtime_dependency 'gems','0.8.3'
|
32
|
+
s.add_runtime_dependency 'gli', '2.12.2'
|
33
|
+
s.add_runtime_dependency 'gems', '0.8.3'
|
34
34
|
s.add_runtime_dependency 'highline', '1.6.21'
|
35
35
|
s.add_runtime_dependency 'clipboard', '1.0.5'
|
36
36
|
s.add_runtime_dependency 'rainbow', '2.0.0'
|
data/lib/gems-cli.rb
CHANGED
data/lib/gems-cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gems-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chase Southard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|