veye 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +16 -16
- data/README.md +66 -0
- data/bin/veye +140 -186
- data/lib/veye/base_executor.rb +24 -0
- data/lib/veye/github/delete.rb +35 -0
- data/lib/veye/github/import.rb +32 -0
- data/lib/veye/github/info.rb +30 -0
- data/lib/veye/github/list.rb +37 -0
- data/lib/veye/github/search.rb +34 -0
- data/lib/veye/github/sync.rb +33 -0
- data/lib/veye/github.rb +14 -0
- data/lib/veye/helpers/format_helpers.rb +4 -1
- data/lib/veye/helpers/repo_helpers.rb +5 -0
- data/lib/veye/package/follow.rb +37 -22
- data/lib/veye/package/info.rb +17 -27
- data/lib/veye/package/search.rb +29 -40
- data/lib/veye/project/check.rb +80 -74
- data/lib/veye/project/licence.rb +17 -31
- data/lib/veye/service.rb +16 -4
- data/lib/veye/user/me.rb +25 -45
- data/lib/veye/version.rb +1 -1
- data/lib/veye/views/base_csv.rb +26 -0
- data/lib/veye/views/base_json.rb +20 -0
- data/lib/veye/views/base_markdown.rb +17 -0
- data/lib/veye/views/base_pretty.rb +17 -0
- data/lib/veye/views/base_table.rb +34 -0
- data/lib/veye/views/github/info_csv.rb +30 -0
- data/lib/veye/views/github/info_json.rb +11 -0
- data/lib/veye/views/github/info_pretty.rb +35 -0
- data/lib/veye/views/github/info_table.rb +36 -0
- data/lib/veye/views/github/list_csv.rb +28 -0
- data/lib/veye/views/github/list_json.rb +16 -0
- data/lib/veye/views/github/list_pretty.rb +27 -0
- data/lib/veye/views/github/list_table.rb +28 -0
- data/lib/veye/views/github/search_csv.rb +36 -0
- data/lib/veye/views/github/search_json.rb +12 -0
- data/lib/veye/views/github/search_pretty.rb +31 -0
- data/lib/veye/views/github/search_table.rb +34 -0
- data/lib/veye/views/github.rb +19 -0
- data/lib/veye/{package → views/package}/info_csv.rb +7 -6
- data/lib/veye/views/package/info_json.rb +12 -0
- data/lib/veye/{package → views/package}/info_pretty.rb +8 -10
- data/lib/veye/views/package/info_table.rb +25 -0
- data/lib/veye/views/package/search_csv.rb +28 -0
- data/lib/veye/views/package/search_json.rb +11 -0
- data/lib/veye/views/package/search_pretty.rb +26 -0
- data/lib/veye/views/package/search_table.rb +25 -0
- data/lib/veye/views/package.rb +14 -0
- data/lib/veye/views/project/dependency_csv.rb +30 -0
- data/lib/veye/views/project/dependency_json.rb +11 -0
- data/lib/veye/views/project/dependency_markdown.rb +31 -0
- data/lib/veye/{project/project_dependency_pretty.rb → views/project/dependency_pretty.rb} +5 -7
- data/lib/veye/{project/project_dependency_table.rb → views/project/dependency_table.rb} +6 -15
- data/lib/veye/{project/project_csv.rb → views/project/info_csv.rb} +7 -7
- data/lib/veye/views/project/info_json.rb +12 -0
- data/lib/veye/{project/project_markdown.rb → views/project/info_markdown.rb} +8 -14
- data/lib/veye/{project/project_pretty.rb → views/project/info_pretty.rb} +3 -4
- data/lib/veye/views/project/info_table.rb +24 -0
- data/lib/veye/{project/project_licence_csv.rb → views/project/licence_csv.rb} +7 -5
- data/lib/veye/views/project/licence_json.rb +11 -0
- data/lib/veye/{project/project_licence_pretty.rb → views/project/licence_pretty.rb} +4 -6
- data/lib/veye/views/project/licence_table.rb +24 -0
- data/lib/veye/views/project.rb +22 -0
- data/lib/veye/views/user/favorite_csv.rb +32 -0
- data/lib/veye/views/user/favorite_json.rb +13 -0
- data/lib/veye/views/user/favorite_pretty.rb +23 -0
- data/lib/veye/views/user/favorite_table.rb +24 -0
- data/lib/veye/views/user/profile_csv.rb +23 -0
- data/lib/veye/views/user/profile_json.rb +12 -0
- data/lib/veye/{user → views/user}/profile_pretty.rb +6 -10
- data/lib/veye/views/user/profile_table.rb +30 -0
- data/lib/veye/views/user.rb +14 -0
- data/lib/veye.rb +3 -1
- metadata +90 -60
- data/lib/veye/package/info_json.rb +0 -14
- data/lib/veye/package/info_table.rb +0 -29
- data/lib/veye/package/search_csv.rb +0 -33
- data/lib/veye/package/search_json.rb +0 -19
- data/lib/veye/package/search_pretty.rb +0 -35
- data/lib/veye/package/search_table.rb +0 -40
- data/lib/veye/project/project_dependency_csv.rb +0 -30
- data/lib/veye/project/project_dependency_json.rb +0 -12
- data/lib/veye/project/project_dependency_markdown.rb +0 -47
- data/lib/veye/project/project_json.rb +0 -11
- data/lib/veye/project/project_licence_json.rb +0 -12
- data/lib/veye/project/project_licence_table.rb +0 -29
- data/lib/veye/project/project_table.rb +0 -30
- data/lib/veye/user/favorite_csv.rb +0 -28
- data/lib/veye/user/favorite_json.rb +0 -14
- data/lib/veye/user/favorite_pretty.rb +0 -25
- data/lib/veye/user/favorite_table.rb +0 -28
- data/lib/veye/user/profile_csv.rb +0 -21
- data/lib/veye/user/profile_json.rb +0 -14
- data/lib/veye/user/profile_table.rb +0 -34
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../views/github.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
3
|
+
|
4
|
+
module Veye
|
5
|
+
module Github
|
6
|
+
class Info < BaseExecutor
|
7
|
+
@@output_formats = {
|
8
|
+
'csv' => Github::InfoCSV.new,
|
9
|
+
'json' => Github::InfoJSON.new,
|
10
|
+
'pretty' => Github::InfoPretty.new,
|
11
|
+
'table' => Github::InfoTable.new
|
12
|
+
}
|
13
|
+
|
14
|
+
def self.get_repo(api_key, repo_name, options)
|
15
|
+
github_api = API::Resource.new(RESOURCE_PATH)
|
16
|
+
results = nil
|
17
|
+
qparams = {params: {api_key: api_key}}
|
18
|
+
safe_repo_name = self.encode_repo_key(repo_name)
|
19
|
+
|
20
|
+
github_api.resource["/#{safe_repo_name}"].get(qparams) do |response, request, result|
|
21
|
+
results = API::JSONResponse.new(request, result, response)
|
22
|
+
end
|
23
|
+
catch_request_error(results, "Can not find repository `#{repo_name}`")
|
24
|
+
show_results @@output_formats, results.data, options
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative '../views/github.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
3
|
+
|
4
|
+
module Veye
|
5
|
+
module Github
|
6
|
+
class List < BaseExecutor
|
7
|
+
|
8
|
+
@@output_formats = {
|
9
|
+
'csv' => Github::ListCSV.new,
|
10
|
+
'json' => Github::ListJSON.new,
|
11
|
+
'pretty' => Github::ListPretty.new,
|
12
|
+
'table' => Github::ListTable.new
|
13
|
+
}
|
14
|
+
|
15
|
+
def self.get_list(api_key, options)
|
16
|
+
github_api = API::Resource.new(RESOURCE_PATH)
|
17
|
+
results = nil
|
18
|
+
params = {api_key: api_key}
|
19
|
+
params[:page] = options[:page] || 1
|
20
|
+
params[:lang] = options[:lang].to_s.downcase if options[:lang]
|
21
|
+
unless options[:private].nil?
|
22
|
+
params[:private] = (options[:private] == 'true') || (options[:private] == 't')
|
23
|
+
end
|
24
|
+
params[:org_name] = options[:org] if options[:org]
|
25
|
+
params[:org_type] = options['org-type'] if options['org-type']
|
26
|
+
|
27
|
+
qparams = { :params => params }
|
28
|
+
github_api.resource.get(qparams) do |response, request, result|
|
29
|
+
results = API::JSONResponse.new(request, result, response)
|
30
|
+
end
|
31
|
+
catch_request_error(results, "No repositories.")
|
32
|
+
show_results @@output_formats, results.data, options, results.data['paging']
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../views/github.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
3
|
+
|
4
|
+
module Veye
|
5
|
+
module Github
|
6
|
+
class Search < BaseExecutor
|
7
|
+
@@output_formats = {
|
8
|
+
'csv' => Github::SearchCSV.new,
|
9
|
+
'json' => Github::SearchJSON.new,
|
10
|
+
'pretty' => Github::SearchPretty.new,
|
11
|
+
'table' => Github::SearchTable.new
|
12
|
+
}
|
13
|
+
|
14
|
+
def self.search(api_key, search_term, options)
|
15
|
+
github_api = API::Resource.new(RESOURCE_PATH)
|
16
|
+
results = nil
|
17
|
+
params = {api_key: api_key, q: search_term}
|
18
|
+
params[:langs] = options[:lang] unless options[:lang].nil?
|
19
|
+
params[:users] = options[:user] unless options[:user].nil?
|
20
|
+
params[:page] = options[:page] || "1"
|
21
|
+
qparams = {params: params}
|
22
|
+
|
23
|
+
github_api.resource["/search"].get(qparams) do |response, request, result|
|
24
|
+
results = API::JSONResponse.new(request, result, response)
|
25
|
+
end
|
26
|
+
|
27
|
+
catch_request_error(results, "No match")
|
28
|
+
show_results(@@output_formats, results.data, options, results.data['paging'])
|
29
|
+
results
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative '../base_executor.rb'
|
2
|
+
|
3
|
+
module Veye
|
4
|
+
module Github
|
5
|
+
class Sync < BaseExecutor
|
6
|
+
def self.import_all(api_key, options)
|
7
|
+
github_api = API::Resource.new(RESOURCE_PATH)
|
8
|
+
response_data = nil
|
9
|
+
params = {api_key: api_key}
|
10
|
+
params[:force] = options[:force] unless options[:force].nil?
|
11
|
+
|
12
|
+
qparams = {params: params}
|
13
|
+
github_api.resource['/sync'].get(qparams) do |response, request, result|
|
14
|
+
response_data = API::JSONResponse.new(request, result, response)
|
15
|
+
end
|
16
|
+
|
17
|
+
catch_request_error(response_data, "Can not import repositories from Github")
|
18
|
+
show_result(response_data)
|
19
|
+
return response_data
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.show_result(response)
|
23
|
+
unless response.data["changed"]
|
24
|
+
printf("%s - %s\n",
|
25
|
+
"No changes.".foreground(:red),
|
26
|
+
"Use `force` flag if you want to reload everything.")
|
27
|
+
else
|
28
|
+
printf "Imported. #{response.data['msg']}\n".foreground(:green)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/veye/github.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require_relative 'github/list.rb'
|
2
|
+
require_relative 'github/sync.rb'
|
3
|
+
require_relative 'github/search.rb'
|
4
|
+
require_relative 'github/info.rb'
|
5
|
+
require_relative 'github/import.rb'
|
6
|
+
require_relative 'github/delete.rb'
|
7
|
+
|
8
|
+
require_relative 'views/github.rb'
|
9
|
+
|
10
|
+
module Veye
|
11
|
+
module Github
|
12
|
+
RESOURCE_PATH = "/github"
|
13
|
+
end
|
14
|
+
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
module FormatHelpers
|
2
2
|
def supported_format?(output_formats, format)
|
3
|
+
if output_formats.nil?
|
4
|
+
exit_now! "Executor doesnt have any formattor defined."
|
5
|
+
end
|
3
6
|
unless output_formats.has_key?(format)
|
4
7
|
msg = "This command doesnt support output format: `#{format}`\n".foreground(:red)
|
5
8
|
msg += "Supported formats: #{output_formats.keys.join(', ')}\n"
|
6
|
-
exit_now! msg
|
9
|
+
exit_now! msg
|
7
10
|
end
|
8
11
|
true
|
9
12
|
end
|
data/lib/veye/package/follow.rb
CHANGED
@@ -1,49 +1,64 @@
|
|
1
|
+
require_relative '../base_executor.rb'
|
2
|
+
|
1
3
|
module Veye
|
2
4
|
module Package
|
3
|
-
class Follow
|
5
|
+
class Follow < BaseExecutor
|
6
|
+
def self.parse_prod_key(prod_key)
|
7
|
+
tokens = prod_key.to_s.split('/')
|
8
|
+
lang = Package.encode_language(tokens.first)
|
9
|
+
safe_prod_key = Package.encode_prod_key(tokens.drop(1).join("/"))
|
10
|
+
[lang, safe_prod_key]
|
11
|
+
end
|
4
12
|
|
5
13
|
def self.get_follow_status(prod_key, api_key)
|
6
14
|
product_api = API::Resource.new(RESOURCE_PATH)
|
7
|
-
|
15
|
+
results = nil
|
8
16
|
qparams = {:params => {:api_key => api_key}}
|
9
|
-
safe_prod_key =
|
17
|
+
lang, safe_prod_key = parse_prod_key(prod_key)
|
10
18
|
product_api.resource[
|
11
|
-
"/#{safe_prod_key}/follow.json"].get(qparams) do |response, request, result|
|
12
|
-
|
13
|
-
|
19
|
+
"#{lang}/#{safe_prod_key}/follow.json"].get(qparams) do |response, request, result|
|
20
|
+
|
21
|
+
results = API::JSONResponse.new(request, result, response)
|
14
22
|
end
|
15
23
|
|
16
|
-
|
24
|
+
catch_request_error(results, "Didnt get any response.")
|
25
|
+
show_result(results)
|
26
|
+
results
|
17
27
|
end
|
18
28
|
|
19
29
|
def self.follow(prod_key, api_key)
|
20
30
|
product_api = API::Resource.new(RESOURCE_PATH)
|
21
|
-
|
31
|
+
results = nil
|
22
32
|
qparams = {:api_key => api_key}
|
23
|
-
safe_prod_key =
|
24
|
-
|
33
|
+
lang, safe_prod_key = parse_prod_key(prod_key)
|
25
34
|
product_api.resource[
|
26
|
-
"/#{safe_prod_key}/follow.json"].post(qparams) do |response, request, result|
|
27
|
-
|
28
|
-
response_data = API::JSONResponse.new(request, result, response)
|
35
|
+
"/#{lang}/#{safe_prod_key}/follow.json"].post(qparams) do |response, request, result|
|
36
|
+
results = API::JSONResponse.new(request, result, response)
|
29
37
|
end
|
30
|
-
|
31
|
-
|
38
|
+
catch_request_error(results, "Cant follow.")
|
39
|
+
show_result(results)
|
40
|
+
results
|
32
41
|
end
|
33
42
|
|
34
43
|
def self.unfollow(prod_key, api_key)
|
35
44
|
product_api = API::Resource.new(RESOURCE_PATH)
|
36
|
-
|
45
|
+
results = nil
|
37
46
|
qparams = {:params => {:api_key => api_key}}
|
38
|
-
safe_prod_key =
|
39
|
-
|
47
|
+
lang, safe_prod_key = parse_prod_key(prod_key)
|
40
48
|
product_api.resource[
|
41
|
-
"/#{safe_prod_key}/follow.json"].delete(qparams) do |response, request, result|
|
42
|
-
|
43
|
-
response_data = API::JSONResponse.new(request, result, response)
|
49
|
+
"/#{lang}/#{safe_prod_key}/follow.json"].delete(qparams) do |response, request, result|
|
50
|
+
results = API::JSONResponse.new(request, result, response)
|
44
51
|
end
|
45
52
|
|
46
|
-
|
53
|
+
catch_request_error(results, "Cant unfollow.")
|
54
|
+
show_result(results)
|
55
|
+
results
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.show_result(response)
|
59
|
+
result = response.data
|
60
|
+
return if result.nil?
|
61
|
+
printf "Following `#{result['prod_key']}`: #{result['follows']}\n".foreground(:green)
|
47
62
|
end
|
48
63
|
end
|
49
64
|
end
|
data/lib/veye/package/info.rb
CHANGED
@@ -1,51 +1,41 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '
|
3
|
-
require_relative 'info_pretty.rb'
|
4
|
-
require_relative 'info_table.rb'
|
1
|
+
require_relative '../views/package.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
5
3
|
|
6
4
|
module Veye
|
7
|
-
module Package
|
8
|
-
class Info
|
9
|
-
extend FormatHelpers
|
10
|
-
|
5
|
+
module Package
|
6
|
+
class Info < BaseExecutor
|
11
7
|
@@output_formats = {
|
12
|
-
'csv' => InfoCSV.new,
|
13
|
-
'json' => InfoJSON.new,
|
14
|
-
'pretty' => InfoPretty.new,
|
15
|
-
'table' => InfoTable.new
|
8
|
+
'csv' => Package::InfoCSV.new,
|
9
|
+
'json' => Package::InfoJSON.new,
|
10
|
+
'pretty' => Package::InfoPretty.new,
|
11
|
+
'table' => Package::InfoTable.new
|
16
12
|
}
|
17
13
|
|
18
|
-
def self.
|
14
|
+
def self.get_package(package_key, options = {})
|
19
15
|
product_api = API::Resource.new(RESOURCE_PATH)
|
20
16
|
tokens = package_key.to_s.split('/')
|
21
17
|
lang = Package.encode_language(tokens.first)
|
22
18
|
safe_prod_key = Package.encode_prod_key(tokens.drop(1).join("/"))
|
23
|
-
|
19
|
+
results = nil
|
20
|
+
|
24
21
|
if lang.nil? or safe_prod_key.nil?
|
25
22
|
msg = %Q[
|
26
|
-
You missed language or product key.
|
23
|
+
You missed language or product key.
|
27
24
|
Example: clojure/ztellman/aleph, which as required structure <prog lang>/<product_code>
|
28
25
|
]
|
29
|
-
error_msg = sprrintf("%s. \n%s",
|
26
|
+
error_msg = sprrintf("%s. \n%s",
|
30
27
|
"Error: Malformed key.".foreground(:red),
|
31
28
|
msg)
|
32
29
|
exit_now!(error_msg)
|
33
30
|
end
|
34
31
|
|
35
|
-
request_response = nil
|
36
32
|
product_api.resource["/#{lang}/#{safe_prod_key}"].get do |response, request, result, &block|
|
37
|
-
|
33
|
+
results = API::JSONResponse.new(request, result, response)
|
38
34
|
end
|
39
|
-
return request_response
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.format(results, format = 'pretty')
|
43
|
-
self.supported_format?(@@output_formats, format)
|
44
35
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
formatter.after
|
36
|
+
catch_request_error(results, "Didnt find any package with product_key: `#{package_key}`")
|
37
|
+
show_results(@@output_formats, results.data, options, results.data['paging'])
|
38
|
+
return results
|
49
39
|
end
|
50
40
|
end
|
51
41
|
|
data/lib/veye/package/search.rb
CHANGED
@@ -1,48 +1,37 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative '
|
3
|
-
require_relative 'search_pretty.rb'
|
4
|
-
require_relative 'search_table.rb'
|
1
|
+
require_relative '../views/package.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
5
3
|
|
6
4
|
module Veye
|
7
5
|
module Package
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
search_response = API::JSONResponse.new(request, result, response)
|
32
|
-
end
|
33
|
-
|
34
|
-
return search_response
|
6
|
+
class Search < BaseExecutor
|
7
|
+
@@output_formats = {
|
8
|
+
'csv' => Package::SearchCSV.new,
|
9
|
+
'json' => Package::SearchJSON.new,
|
10
|
+
'pretty' => Package::SearchPretty.new,
|
11
|
+
'table' => Package::SearchTable.new
|
12
|
+
}
|
13
|
+
|
14
|
+
def self.search(search_term, options)
|
15
|
+
search_api = Veye::API::Resource.new "#{RESOURCE_PATH}/search"
|
16
|
+
language = options[:language]
|
17
|
+
group_id = options["group-id"]
|
18
|
+
page = options[:page] || "1"
|
19
|
+
results = nil
|
20
|
+
search_params = {:q => search_term.to_s}
|
21
|
+
|
22
|
+
search_params[:lang] = Package.encode_language(language) unless language.nil?
|
23
|
+
search_params[:g] = group_id unless group_id.nil?
|
24
|
+
search_params[:page] = page unless page.nil?
|
25
|
+
|
26
|
+
request_params = {:params => search_params}
|
27
|
+
search_api.resource["/#{search_term}"].get(request_params) do |response, request, result, &block|
|
28
|
+
results = API::JSONResponse.new(request, result, response)
|
35
29
|
end
|
36
30
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
formatter.before
|
42
|
-
formatter.format(search_results)
|
43
|
-
formatter.after paging
|
44
|
-
end
|
45
|
-
|
31
|
+
catch_request_error(results, "No results for `${search_term}`")
|
32
|
+
show_results(@@output_formats, results.data, options, results.data['paging'])
|
33
|
+
return results
|
34
|
+
end
|
46
35
|
end
|
47
36
|
|
48
37
|
end
|
data/lib/veye/project/check.rb
CHANGED
@@ -1,86 +1,80 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require_relative 'project_csv.rb'
|
4
|
-
require_relative 'project_json.rb'
|
5
|
-
require_relative 'project_pretty.rb'
|
6
|
-
require_relative 'project_table.rb'
|
7
|
-
require_relative 'project_markdown.rb'
|
8
|
-
|
9
|
-
require_relative 'project_dependency_csv.rb'
|
10
|
-
require_relative 'project_dependency_json.rb'
|
11
|
-
require_relative 'project_dependency_pretty.rb'
|
12
|
-
require_relative 'project_dependency_table.rb'
|
13
|
-
require_relative 'project_dependency_markdown.rb'
|
1
|
+
require_relative '../views/project.rb'
|
2
|
+
require_relative '../base_executor.rb'
|
14
3
|
|
15
4
|
module Veye
|
16
5
|
module Project
|
17
|
-
class Check
|
6
|
+
class Check < BaseExecutor
|
18
7
|
extend FormatHelpers
|
19
8
|
|
20
9
|
@@output_formats = {
|
21
|
-
"csv" =>
|
22
|
-
"json" =>
|
23
|
-
"pretty" =>
|
24
|
-
"table" =>
|
25
|
-
"md" =>
|
10
|
+
"csv" => Project::InfoCSV.new,
|
11
|
+
"json" => Project::InfoJSON.new,
|
12
|
+
"pretty" => Project::InfoPretty.new,
|
13
|
+
"table" => Project::InfoTable.new,
|
14
|
+
"md" => Project::InfoMarkdown.new
|
26
15
|
}
|
27
16
|
|
28
17
|
@@dependency_output_formats = {
|
29
|
-
"csv" =>
|
30
|
-
"json" =>
|
31
|
-
"pretty" =>
|
32
|
-
"table" =>
|
33
|
-
"md" =>
|
18
|
+
"csv" => Project::DependencyCSV.new,
|
19
|
+
"json" => Project::DependencyJSON.new,
|
20
|
+
"pretty" => Project::DependencyPretty.new,
|
21
|
+
"table" => Project::DependencyTable.new,
|
22
|
+
"md" => Project::DependencyMarkdown.new
|
34
23
|
}
|
35
|
-
|
36
24
|
|
37
|
-
def self.get_list(api_key)
|
25
|
+
def self.get_list(api_key, options)
|
38
26
|
project_api = API::Resource.new(RESOURCE_PATH)
|
39
27
|
qparams = {:params => {:api_key => api_key}}
|
40
|
-
|
41
|
-
|
28
|
+
results = nil
|
42
29
|
project_api.resource.get(qparams) do |response, request, result|
|
43
|
-
|
30
|
+
results = API::JSONResponse.new(request, result, response)
|
44
31
|
end
|
32
|
+
|
33
|
+
catch_request_error(results, "Can not read list of projects.")
|
34
|
+
show_results(@@output_formats, results.data, options)
|
35
|
+
results
|
45
36
|
end
|
46
37
|
|
47
|
-
def self.upload(filename, api_key)
|
48
|
-
|
38
|
+
def self.upload(filename, api_key, options)
|
39
|
+
results = {:success => false}
|
49
40
|
file_path = File.absolute_path(filename)
|
50
|
-
|
41
|
+
|
51
42
|
unless File.exists?(file_path)
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
43
|
+
error_msg = sprintf("%s: Cant read file `%s`",
|
44
|
+
"Error".foreground(:red),
|
45
|
+
"#{filename}".foreground(:yellow)
|
46
|
+
)
|
47
|
+
exit_now!(error_msg)
|
57
48
|
end
|
58
49
|
|
59
50
|
file_size = File.size(file_path)
|
60
51
|
unless file_size != 0 and file_size < MAX_FILE_SIZE
|
61
|
-
|
52
|
+
exit_now!("Size of file is not acceptable: 0kb < x <= #{MAX_FILE_SIZE/1000}kb")
|
62
53
|
end
|
63
|
-
|
54
|
+
|
64
55
|
project_api = API::Resource.new(RESOURCE_PATH)
|
65
56
|
file_obj = File.open(file_path, 'rb')
|
66
|
-
|
57
|
+
|
67
58
|
upload_data = {
|
68
59
|
:upload => file_obj,
|
69
60
|
:api_key => api_key
|
70
61
|
}
|
71
62
|
project_api.resource.post(upload_data) do |response, request, result, &block|
|
72
|
-
|
63
|
+
results = API::JSONResponse.new(request, result, response)
|
73
64
|
end
|
74
|
-
|
75
|
-
|
65
|
+
|
66
|
+
catch_request_error(results, "Upload failed.")
|
67
|
+
show_results(@@output_formats, results.data, options)
|
68
|
+
show_dependencies(results.data, options)
|
69
|
+
results
|
76
70
|
end
|
77
71
|
|
78
|
-
def self.update(project_key, filename, api_key)
|
79
|
-
|
72
|
+
def self.update(project_key, filename, api_key, options)
|
73
|
+
results = {:success => false}
|
80
74
|
file_path = File.absolute_path(filename)
|
81
|
-
|
75
|
+
|
82
76
|
unless File.exists?(file_path)
|
83
|
-
error_msg = sprintf("%s: Cant read file `%s`",
|
77
|
+
error_msg = sprintf("%s: Cant read file `%s`",
|
84
78
|
"Error".foreground(:red),
|
85
79
|
"#{filename}".foreground(:yellow)
|
86
80
|
)
|
@@ -91,66 +85,78 @@ module Veye
|
|
91
85
|
unless file_size != 0 and file_size < MAX_FILE_SIZE
|
92
86
|
exit_now!(" The size of file is not acceptable: 0kb < x <= #{MAX_FILE_SIZE/1000}kb")
|
93
87
|
end
|
94
|
-
|
88
|
+
|
95
89
|
project_api = API::Resource.new("#{RESOURCE_PATH}/#{project_key}")
|
96
|
-
file_obj = File.open(file_path, 'rb')
|
90
|
+
file_obj = File.open(file_path, 'rb')
|
97
91
|
upload_data = {
|
98
92
|
:project_file => file_obj,
|
99
93
|
:api_key => api_key
|
100
94
|
}
|
101
95
|
project_api.resource.post(upload_data) do |response, request, result, &block|
|
102
|
-
|
96
|
+
results = API::JSONResponse.new(request, result, response)
|
103
97
|
end
|
104
|
-
|
105
|
-
|
106
|
-
|
98
|
+
catch_request_error(results, "Re-upload failed.")
|
99
|
+
show_results(@@output_formats, results.data, options)
|
100
|
+
show_dependencies(results.data, options)
|
101
|
+
results
|
102
|
+
end
|
103
|
+
def self.get_project(project_key, api_key, options)
|
104
|
+
results = nil
|
107
105
|
project_api = API::Resource.new(RESOURCE_PATH)
|
108
|
-
|
109
|
-
if project_key.nil? or project_key.empty?
|
106
|
+
|
107
|
+
if project_key.nil? or project_key.empty?
|
110
108
|
error_msg = sprintf("%s: %s",
|
111
109
|
"Error".foreground(:red),
|
112
|
-
"Not valid project_key: `#{project_key}`")
|
110
|
+
"Not valid project_key: `#{project_key}`")
|
113
111
|
exit_now! error_msg
|
114
112
|
end
|
115
|
-
|
113
|
+
|
116
114
|
project_url = "/#{project_key}"
|
117
115
|
qparams = {:params => {:api_key => api_key}}
|
118
116
|
project_api.resource[project_url].get(qparams) do |response, request, result|
|
119
|
-
|
117
|
+
results = API::JSONResponse.new(request, result, response)
|
120
118
|
end
|
121
119
|
|
122
|
-
|
120
|
+
catch_request_error(results, "Cant read information about project: `#{project_key}`")
|
121
|
+
show_results(@@output_formats, results.data, options)
|
122
|
+
show_dependencies(results.data, options)
|
123
|
+
results
|
123
124
|
end
|
124
125
|
|
125
126
|
def self.delete_project(project_key, api_key)
|
126
127
|
project_api = Veye::API::Resource.new(RESOURCE_PATH)
|
127
128
|
qparams = {:params => {:api_key => api_key}}
|
128
|
-
|
129
|
+
results = nil
|
129
130
|
|
130
131
|
project_api.resource["/#{project_key}"].delete(qparams) do |response, request, result|
|
131
|
-
|
132
|
+
results = API::JSONResponse.new(request, result, response)
|
132
133
|
end
|
133
|
-
|
134
|
-
|
134
|
+
catch_request_error(results, "Cant delete project: `#{project_key}`")
|
135
|
+
show_message(results, "Deleted", "Cant delete.")
|
136
|
+
results
|
135
137
|
end
|
136
138
|
|
137
|
-
def self.
|
138
|
-
|
139
|
-
|
140
|
-
formatter = @@output_formats[format]
|
141
|
-
formatter.before
|
142
|
-
formatter.format results
|
143
|
-
formatter.after
|
144
|
-
end
|
145
|
-
|
146
|
-
def self.format_dependencies(results, format = 'pretty')
|
139
|
+
def self.show_dependencies(results, options)
|
140
|
+
format = options[:format]
|
141
|
+
return if format == 'json'
|
147
142
|
self.supported_format?(@@dependency_output_formats, format)
|
148
143
|
|
149
144
|
formatter = @@dependency_output_formats[format]
|
145
|
+
|
150
146
|
formatter.before
|
151
|
-
formatter.format results
|
147
|
+
formatter.format results['dependencies']
|
152
148
|
formatter.after
|
153
149
|
end
|
150
|
+
|
151
|
+
def self.show_message(results, success_msg, fail_msg)
|
152
|
+
unless results.success
|
153
|
+
printf("Error: %s\n%s\n",
|
154
|
+
fail_message.foreground(:red),
|
155
|
+
response.data['error'])
|
156
|
+
else
|
157
|
+
printf "#{success_msg}\n".foreground(:green)
|
158
|
+
end
|
159
|
+
end
|
154
160
|
end
|
155
161
|
end
|
156
162
|
end
|