alfi 0.4.4 → 0.4.5
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/.travis.yml +0 -1
- data/README.md +15 -0
- data/lib/alfi/cli.rb +22 -1
- data/lib/alfi/providers/base.rb +2 -1
- data/lib/alfi/providers/bintray.rb +17 -13
- data/lib/alfi/providers/maven.rb +20 -18
- data/lib/alfi/providers/offline.rb +1 -1
- data/lib/alfi/search.rb +7 -3
- data/lib/alfi/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: 1d07d7fb4c9aeba401ae4ef9b068de84c2eb8732
|
4
|
+
data.tar.gz: 41b540df33caf99a587eb15978f807d99a789b50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 777dde62f366a2f3336c5e718668c7fa57d0437264a83b47a1a5ea938c2d6ebe561cf079ecde1f331844aff9c5732bc3ad42a30bc955320bb4cef10a957afb35
|
7
|
+
data.tar.gz: 4eadc87f42ba066aff43a0eafa1cd27b73d8a6e1831a5ef2854a72336337c3059298d44dce1eb27f1985075a2ec25ecf0ebd4c6c6c210d7a3284b727744d6aef
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -17,6 +17,21 @@ alfi picasso
|
|
17
17
|
<img src="https://raw.github.com/cesarferreira/alfi/master/extras/images/terminal01.gif" />
|
18
18
|
</p>
|
19
19
|
|
20
|
+
|
21
|
+
Search for `something` by repository
|
22
|
+
|
23
|
+
```bash
|
24
|
+
alfi picasso --repository maven
|
25
|
+
```
|
26
|
+
|
27
|
+
This will search picasso only on maven, you can also define multiple repositories like:
|
28
|
+
|
29
|
+
```bash
|
30
|
+
alfi picasso -r mavenCentral -r jCenter
|
31
|
+
```
|
32
|
+
|
33
|
+
This will search picasso on mavenCentral and jCenter
|
34
|
+
|
20
35
|
**Final step:** Copy the library you want to your `build.gradle` and sync it
|
21
36
|
|
22
37
|
## Installation
|
data/lib/alfi/cli.rb
CHANGED
@@ -10,6 +10,7 @@ class Alfi::Cli
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def call(arguments)
|
13
|
+
@search_type = []
|
13
14
|
create_options_parser
|
14
15
|
search_param = @all_defined_arguments.include?(arguments.first) ? nil : arguments.shift
|
15
16
|
@bintray_username = nil
|
@@ -20,7 +21,7 @@ class Alfi::Cli
|
|
20
21
|
|
21
22
|
exit_with("Missing query parameter\n".red + @opt_parser.help) unless search_param
|
22
23
|
|
23
|
-
Alfi::Search.new.call(search_param)
|
24
|
+
Alfi::Search.new.call(search_param, @search_type)
|
24
25
|
end
|
25
26
|
|
26
27
|
def create_options_parser
|
@@ -29,6 +30,8 @@ class Alfi::Cli
|
|
29
30
|
'--user',
|
30
31
|
'-k',
|
31
32
|
'--key',
|
33
|
+
'-r',
|
34
|
+
'--repository',
|
32
35
|
'-h',
|
33
36
|
'--help',
|
34
37
|
'-v',
|
@@ -53,6 +56,24 @@ class Alfi::Cli
|
|
53
56
|
puts Alfi::VERSION
|
54
57
|
exit
|
55
58
|
end
|
59
|
+
opts.on('-r REPOSITORY_NAME', '--repository REPOSITORY_NAME', 'If should search on maven, jCenter or mavenCentral ') do |repository_name|
|
60
|
+
if repository_name != "maven" && repository_name != "jcenter" && repository_name != "mavencentral"
|
61
|
+
puts "Please choose one of the following maven, jcenter or mavencentral"
|
62
|
+
exit
|
63
|
+
end
|
64
|
+
|
65
|
+
if repository_name.downcase == "maven"
|
66
|
+
@search_type << "m"
|
67
|
+
end
|
68
|
+
|
69
|
+
if repository_name.downcase == "mavencentral"
|
70
|
+
@search_type << "maven"
|
71
|
+
end
|
72
|
+
|
73
|
+
if repository_name.downcase == "jcenter"
|
74
|
+
@search_type << "jcenter"
|
75
|
+
end
|
76
|
+
end
|
56
77
|
|
57
78
|
opts.separator "\nNow you are using alfi credentials for Bintray".yellow
|
58
79
|
opts.separator "But you also could enter your authentication data if you want. "\
|
data/lib/alfi/providers/base.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
class Alfi::Providers::Base
|
2
|
-
def initialize(query)
|
2
|
+
def initialize(query, search_type)
|
3
3
|
@query = query
|
4
4
|
@uri = URI.parse(query_url(query))
|
5
5
|
@http = Net::HTTP.new(@uri.host, @uri.port)
|
6
6
|
@request = Net::HTTP::Get.new(@uri.request_uri)
|
7
|
+
@search_type = search_type
|
7
8
|
request_extensions if self.class.method_defined?(:request_extensions)
|
8
9
|
end
|
9
10
|
|
@@ -36,22 +36,26 @@ class Alfi::Providers::Bintray < Alfi::Providers::Base
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def call
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
39
|
+
if @search_type.empty? || @search_type.include?('jcenter') || @search_type.include?('maven')
|
40
|
+
begin
|
41
|
+
response = @http.request(@request)
|
42
|
+
rescue SocketError
|
43
|
+
puts "Internet Connection not available".red
|
44
|
+
exit 1
|
45
|
+
end
|
45
46
|
|
46
|
-
|
47
|
-
|
47
|
+
return if response.code != '200'
|
48
|
+
response_json = JSON.parse(response.body || '{}')
|
48
49
|
|
49
|
-
|
50
|
+
add_to_list " # #{'-'*20}Bintray#{'-'*20}" if response_json.size > 0
|
50
51
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
response_json.group_by { |package| package['repo'] }.each do |provider, repositories|
|
53
|
+
if @search_type.empty? || @search_type.include?(provider)
|
54
|
+
add_to_list " # #{PROVIDERS_TEXTS[provider]}"
|
55
|
+
repositories.each do |repo|
|
56
|
+
add_repo_to_list "#{repo['system_ids'][0]}:#{repo['latest_version']}" if repo['system_ids'].size > 0
|
57
|
+
end
|
58
|
+
end
|
55
59
|
end
|
56
60
|
end
|
57
61
|
end
|
data/lib/alfi/providers/maven.rb
CHANGED
@@ -4,29 +4,31 @@ class Alfi::Providers::Maven < Alfi::Providers::Base
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def call
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
if @search_type.empty? || @search_type.include?('m')
|
8
|
+
begin
|
9
|
+
response = @http.request(@request)
|
10
|
+
rescue SocketError
|
11
|
+
puts "Internet Connection not available".red
|
12
|
+
exit 1
|
13
|
+
end
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
if response.code == '200'
|
16
|
+
result = JSON.parse(response.body)
|
16
17
|
|
17
|
-
|
18
|
+
num_results = result['response']['numFound']
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
if num_results == 0
|
21
|
+
suggestions = (result['spellcheck']['suggestions'].last || {})['suggestion']
|
22
|
+
add_suggestions(suggestions) if suggestions
|
23
|
+
else
|
24
|
+
add_to_list " # #{'-'*20}Maven.org#{'-'*20}"
|
25
|
+
add_to_list ' # mavenCentral()'
|
26
|
+
end
|
27
|
+
result['response']['docs'].each { |doc| add_repo_to_list "#{doc['id']}:#{doc['latestVersion']}" }
|
22
28
|
else
|
23
|
-
|
24
|
-
|
29
|
+
puts "Error: #{response.code}\n#{response}".red
|
30
|
+
exit 1
|
25
31
|
end
|
26
|
-
result['response']['docs'].each { |doc| add_repo_to_list "#{doc['id']}:#{doc['latestVersion']}" }
|
27
|
-
else
|
28
|
-
puts "Error: #{response.code}\n#{response}".red
|
29
|
-
exit 1
|
30
32
|
end
|
31
33
|
end
|
32
34
|
end
|
data/lib/alfi/search.rb
CHANGED
@@ -9,14 +9,14 @@ class Alfi::Search
|
|
9
9
|
exit 1
|
10
10
|
end
|
11
11
|
|
12
|
-
def call(search_param)
|
12
|
+
def call(search_param, search_type)
|
13
13
|
return puts 'The search needs 3+ characters'.red if search_param.size < 3
|
14
14
|
puts "Searching...\n"
|
15
15
|
|
16
|
-
Alfi::Providers.all.each { |cc| cc.new(search_param).call }
|
16
|
+
Alfi::Providers.all.each { |cc| cc.new(search_param, search_type).call }
|
17
17
|
|
18
18
|
exit_with('No results'.red) if $result_list.empty? && $suggestions.empty?
|
19
|
-
num_results =
|
19
|
+
num_results = total_results_count
|
20
20
|
|
21
21
|
if num_results > 0
|
22
22
|
puts "\ndependencies {\n"
|
@@ -29,4 +29,8 @@ class Alfi::Search
|
|
29
29
|
return if $suggestions.empty?
|
30
30
|
puts "Did you mean: #{$suggestions.join(', ').yellow}"
|
31
31
|
end
|
32
|
+
|
33
|
+
def total_results_count
|
34
|
+
return $result_list.count { |r| r.strip[0] != '#' }
|
35
|
+
end
|
32
36
|
end
|
data/lib/alfi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alfi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cesar ferreira
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|