veye 0.1.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +61 -55
  3. data/README.md +2 -1
  4. data/bin/veye +26 -15
  5. data/changelogs.md +13 -0
  6. data/lib/veye/api/package.rb +24 -22
  7. data/lib/veye/api/project.rb +1 -1
  8. data/lib/veye/base_executor.rb +56 -4
  9. data/lib/veye/helpers/format_helpers.rb +2 -2
  10. data/lib/veye/package/follow.rb +3 -3
  11. data/lib/veye/package/info.rb +2 -2
  12. data/lib/veye/package/references.rb +2 -2
  13. data/lib/veye/package/search.rb +3 -2
  14. data/lib/veye/pagination/pagination_pretty.rb +1 -1
  15. data/lib/veye/project/check.rb +62 -49
  16. data/lib/veye/project/license.rb +1 -1
  17. data/lib/veye/project.rb +26 -0
  18. data/lib/veye/settings.rb +50 -0
  19. data/lib/veye/version.rb +1 -1
  20. data/lib/veye/views/github/info_pretty.rb +1 -2
  21. data/lib/veye/views/github/search_pretty.rb +1 -1
  22. data/lib/veye/views/package/references_pretty.rb +2 -2
  23. data/lib/veye/views/project/dependency_csv.rb +32 -12
  24. data/lib/veye/views/project/dependency_json.rb +6 -2
  25. data/lib/veye/views/project/dependency_pretty.rb +15 -7
  26. data/lib/veye/views/project/dependency_table.rb +6 -4
  27. data/lib/veye/views/project/info_pretty.rb +1 -1
  28. data/lib/veye/views/project/info_table.rb +4 -3
  29. data/lib/veye.rb +9 -8
  30. data/results.html +0 -0
  31. data/test/api/github_test.rb +1 -1
  32. data/test/api/package_test.rb +6 -5
  33. data/test/api/project_test.rb +1 -1
  34. data/test/api/user_test.rb +1 -1
  35. data/test/files/Testfile +0 -0
  36. data/test/fixtures/vcr_cassettes/github_delete.yml +7 -9
  37. data/test/fixtures/vcr_cassettes/github_info.yml +10 -12
  38. data/test/fixtures/vcr_cassettes/github_list.yml +43 -44
  39. data/test/fixtures/vcr_cassettes/github_sync.yml +7 -9
  40. data/test/fixtures/vcr_cassettes/package_follow.yml +9 -11
  41. data/test/fixtures/vcr_cassettes/package_follow_status.yml +7 -9
  42. data/test/fixtures/vcr_cassettes/package_info.yml +17 -18
  43. data/test/fixtures/vcr_cassettes/package_reference.yml +9 -11
  44. data/test/fixtures/vcr_cassettes/package_search.yml +8 -10
  45. data/test/fixtures/vcr_cassettes/package_unfollow.yml +7 -9
  46. data/test/fixtures/vcr_cassettes/project_check_new.yml +161 -0
  47. data/test/fixtures/vcr_cassettes/project_check_update.yml +162 -0
  48. data/test/fixtures/vcr_cassettes/project_delete.yml +6 -8
  49. data/test/fixtures/vcr_cassettes/project_get.yml +10 -12
  50. data/test/fixtures/vcr_cassettes/project_license.yml +12 -13
  51. data/test/fixtures/vcr_cassettes/project_list.yml +11 -11
  52. data/test/fixtures/vcr_cassettes/project_update.yml +14 -16
  53. data/test/fixtures/vcr_cassettes/project_upload.yml +13 -15
  54. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +10 -12
  55. data/test/fixtures/vcr_cassettes/user_get_profile.yml +9 -11
  56. data/test/github_delete_test.rb +2 -2
  57. data/test/github_import_test.rb +1 -1
  58. data/test/github_info_test.rb +10 -6
  59. data/test/github_list_test.rb +20 -14
  60. data/test/github_sync_test.rb +1 -1
  61. data/test/package_follow_test.rb +4 -4
  62. data/test/package_info_test.rb +14 -11
  63. data/test/package_reference_test.rb +21 -16
  64. data/test/package_search_test.rb +11 -10
  65. data/test/project_check_test.rb +75 -41
  66. data/test/project_license_test.rb +14 -25
  67. data/test/user_me_test.rb +13 -13
  68. data/veye.gemspec +14 -14
  69. metadata +51 -46
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60501b415687bde51f60775cfcf8170728a53bc4
4
- data.tar.gz: 9bef96d3864260717b6af924d7f1318707a220e8
3
+ metadata.gz: 6c6d015ec997e45e2e4a94f7f7a7525165820f89
4
+ data.tar.gz: f50049bdfd288dc94b0917b5ebff5c2fd0f85b7b
5
5
  SHA512:
6
- metadata.gz: f75ae699a67d76d8b1e64c43ce5c1d06c4c04d849ae9fa6665647aa06628dba609dba5a8b8ccaf2d5b77396c4f3e827ed968dfc19b3561f5514138cbbc6e3d53
7
- data.tar.gz: 55c62bf5d811fa67e867c781ddc0e6b914c80f733c3bd9d961b9d41adac8de35ef91d401727443e946ca35ec47d6eec7573c17143f4cbb0fbf56c6dc77c3d541
6
+ metadata.gz: 0d61e89da5274ffccfa4423baecae93f7fe0c9ed5db0d5348d082b3542e98cb87ddb6a3a97dbda076a0f38d0d210345fbff7620e981e532388bb76c49bd29f13
7
+ data.tar.gz: 962c3c1ed75f123ca1fc9d641d40973c9255e6931e768771950ad13f68513cfd559d6642b9d5fc4374f19ad82cce38b62776a6bf899a0201d7e30d451460fea7
data/Gemfile.lock CHANGED
@@ -1,109 +1,115 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- veye (0.1.1)
5
- awesome_print (>= 1.6)
6
- contracts (>= 0.11)
7
- gli (> 2.13)
8
- rainbow (>= 2.0)
9
- render-as-markdown
10
- rest-client (>= 1.8)
11
- terminal-table (>= 1.4)
4
+ veye (0.2)
5
+ awesome_print (~> 1.6)
6
+ contracts (~> 0.13)
7
+ gli (= 2.13.4)
8
+ rainbow (~> 2.0)
9
+ render-as-markdown (~> 0)
10
+ rest-client (~> 1.8)
11
+ terminal-table (~> 1.4)
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- addressable (2.3.8)
16
+ addressable (2.4.0)
17
17
  ansi (1.5.0)
18
- aruba (0.7.1)
19
- childprocess (>= 0.3.6)
20
- cucumber (>= 1.1.1)
21
- rspec-expectations (>= 2.7.0)
22
- ast (2.1.0)
23
- astrolabe (1.3.1)
24
- parser (~> 2.2)
18
+ aruba (0.14.0)
19
+ childprocess (~> 0.5.6)
20
+ contracts (~> 0.9)
21
+ cucumber (>= 1.3.19)
22
+ ffi (~> 1.9.10)
23
+ rspec-expectations (>= 2.99)
24
+ thor (~> 0.19)
25
+ ast (2.2.0)
25
26
  awesome_print (1.6.1)
26
27
  builder (3.2.2)
27
- childprocess (0.5.6)
28
+ childprocess (0.5.9)
28
29
  ffi (~> 1.0, >= 1.0.11)
29
- contracts (0.11.0)
30
- crack (0.4.2)
30
+ contracts (0.13.0)
31
+ crack (0.4.3)
31
32
  safe_yaml (~> 1.0.0)
32
- cucumber (2.0.0)
33
+ cucumber (2.3.2)
33
34
  builder (>= 2.1.2)
34
- cucumber-core (~> 1.1.3)
35
+ cucumber-core (~> 1.4.0)
36
+ cucumber-wire (~> 0.0.1)
35
37
  diff-lcs (>= 1.1.3)
36
- gherkin (~> 2.12)
38
+ gherkin (~> 3.2.0)
37
39
  multi_json (>= 1.7.5, < 2.0)
38
40
  multi_test (>= 0.1.2)
39
- cucumber-core (1.1.3)
40
- gherkin (~> 2.12.0)
41
+ cucumber-core (1.4.0)
42
+ gherkin (~> 3.2.0)
43
+ cucumber-wire (0.0.1)
41
44
  diff-lcs (1.2.5)
42
- domain_name (0.5.24)
45
+ domain_name (0.5.20160309)
43
46
  unf (>= 0.0.5, < 1.0.0)
44
47
  ffi (1.9.10)
45
- gherkin (2.12.2)
46
- multi_json (~> 1.3)
47
- gli (2.13.1)
48
+ gherkin (3.2.0)
49
+ gli (2.13.4)
50
+ hashdiff (0.3.0)
48
51
  http-cookie (1.0.2)
49
52
  domain_name (~> 0.5)
50
53
  json (1.8.3)
51
- mime-types (2.6.1)
52
- minitest (5.7.0)
53
- minitest-reporters (1.0.17)
54
+ mime-types (2.99.1)
55
+ minitest (5.8.4)
56
+ minitest-reporters (1.1.8)
54
57
  ansi
55
58
  builder
56
59
  minitest (>= 5.0)
57
60
  ruby-progressbar
58
- multi_json (1.11.1)
61
+ multi_json (1.11.2)
59
62
  multi_test (0.1.2)
60
- netrc (0.10.3)
61
- parser (2.2.2.6)
62
- ast (>= 1.1, < 3.0)
63
+ netrc (0.11.0)
64
+ parser (2.3.0.6)
65
+ ast (~> 2.2)
63
66
  powerpack (0.1.1)
64
- rainbow (2.0.0)
65
- rake (10.4.2)
66
- rdoc (4.2.0)
67
+ rainbow (2.1.0)
68
+ rake (11.1.0)
69
+ rdoc (4.2.2)
67
70
  json (~> 1.4)
68
71
  render-as-markdown (0.0.6)
69
72
  rest-client (1.8.0)
70
73
  http-cookie (>= 1.0.2, < 2.0)
71
74
  mime-types (>= 1.16, < 3.0)
72
75
  netrc (~> 0.7)
73
- rspec-expectations (3.3.0)
76
+ rspec-expectations (3.4.0)
74
77
  diff-lcs (>= 1.2.0, < 2.0)
75
- rspec-support (~> 3.3.0)
76
- rspec-support (3.3.0)
77
- rubocop (0.33.0)
78
- astrolabe (~> 1.3)
79
- parser (>= 2.2.2.5, < 3.0)
78
+ rspec-support (~> 3.4.0)
79
+ rspec-support (3.4.1)
80
+ rubocop (0.38.0)
81
+ parser (>= 2.3.0.6, < 3.0)
80
82
  powerpack (~> 0.1)
81
83
  rainbow (>= 1.99.1, < 3.0)
82
- ruby-progressbar (~> 1.4)
84
+ ruby-progressbar (~> 1.7)
85
+ unicode-display_width (~> 1.0, >= 1.0.1)
83
86
  ruby-progressbar (1.7.5)
84
87
  safe_yaml (1.0.4)
85
88
  terminal-table (1.5.2)
89
+ thor (0.19.1)
86
90
  unf (0.1.4)
87
91
  unf_ext
88
- unf_ext (0.0.7.1)
89
- vcr (2.9.3)
90
- webmock (1.21.0)
92
+ unf_ext (0.0.7.2)
93
+ unicode-display_width (1.0.2)
94
+ vcr (3.0.1)
95
+ webmock (1.24.2)
91
96
  addressable (>= 2.3.6)
92
97
  crack (>= 0.3.2)
98
+ hashdiff
93
99
 
94
100
  PLATFORMS
95
101
  ruby
96
102
 
97
103
  DEPENDENCIES
98
- aruba (>= 0.7)
99
- minitest (>= 5.7)
100
- minitest-reporters (>= 1.0)
101
- rake (>= 10.4)
104
+ aruba (~> 0.14)
105
+ minitest (~> 5.8)
106
+ minitest-reporters (~> 1.0)
107
+ rake (~> 11.1)
102
108
  rdoc (~> 4.2)
103
- rubocop (>= 0.33)
104
- vcr (>= 2.9)
109
+ rubocop (~> 0.38)
110
+ vcr (~> 3.0.1)
105
111
  veye!
106
- webmock (>= 1.21)
112
+ webmock (~> 1.11)
107
113
 
108
114
  BUNDLED WITH
109
115
  1.10.5
data/README.md CHANGED
@@ -193,7 +193,8 @@ All contributions are welcome - comments, new ideas, help with documentation & h
193
193
 
194
194
 
195
195
  ```
196
- $> rake test
196
+ $> rm test/fixtures/vcr_cassettes/* #if needed
197
+ $> VEYE_API_KEY=<YOUR_API_KEY> rake test
197
198
  $> rake test TEST=test/file_you_changed.rb
198
199
  ```
199
200
 
data/bin/veye CHANGED
@@ -16,7 +16,7 @@ program_long_desc Rainbow(Veye::BIGEYE).green
16
16
  wrap_help_text :verbatim
17
17
  version Veye::VERSION
18
18
 
19
- COMMANDS_WITHOUT_API_KEY = [:help, :ping, :search]
19
+ COMMANDS_WITHOUT_API_KEY = [:help, :ping]
20
20
 
21
21
  config_file '.veye.rc'
22
22
 
@@ -93,8 +93,9 @@ command :search do |c|
93
93
  c.action do |global_options, options, args|
94
94
  error_msg = "the search term is mandatory.".color(:red)
95
95
  help_now!(error_msg) if args.empty?
96
+ api_key = global_options[:api_key]
96
97
  search_term = args.shift
97
- Veye::Package::Search.search(search_term, options)
98
+ Veye::Package::Search.search(api_key, search_term, options)
98
99
  end
99
100
  end
100
101
 
@@ -107,8 +108,9 @@ command :info do |c|
107
108
  c.action do |global_options, options, args|
108
109
  error_msg = Rainbow("package_key is missing").red
109
110
  help_now!(error_msg) if args.empty?
111
+ api_key = global_options[:api_key]
110
112
  package_key = args.shift
111
- Veye::Package::Info.get_package(package_key, options)
113
+ Veye::Package::Info.get_package(api_key, package_key, options)
112
114
  end
113
115
  end
114
116
 
@@ -130,7 +132,9 @@ command :references do |c|
130
132
  error_msg = Rainbow("package_key is missing").red
131
133
  help_now!(error_msg) if args.empty?
132
134
  package_key = args.shift
133
- Veye::Package::References.get_references(package_key, options)
135
+
136
+ api_key = global_options[:api_key]
137
+ Veye::Package::References.get_references(api_key, package_key, options)
134
138
  end
135
139
  end
136
140
 
@@ -143,10 +147,17 @@ command :check do |c|
143
147
  c.flag [:format, 'format-name'], :default_value => 'pretty'
144
148
 
145
149
  c.action do |global_options, options, args|
146
- help_now!("Project file is missing.".color(:red)) if args.empty?
147
- file_name = args.shift
150
+ file_path = args.shift
151
+ file_path ||= Dir.pwd
152
+
148
153
  api_key = global_options[:api_key]
149
- Veye::Project::Check.upload(file_name, api_key, options)
154
+ files = Veye::Project.get_files(file_path)
155
+
156
+ if files.empty?
157
+ printf "Found no project files in: ".color(:red) + file_path + "\n"
158
+ else
159
+ Veye::Project::Check.check(file_path, files, api_key, options)
160
+ end
150
161
  end
151
162
  end
152
163
 
@@ -176,7 +187,7 @@ command :projects do |c|
176
187
  proj_key = args.shift
177
188
  api_key = global_options[:api_key]
178
189
 
179
- Veye::Project::Check.get_project(proj_key, api_key, options)
190
+ Veye::Project::Check.get_project(api_key, proj_key, options)
180
191
  end
181
192
  end
182
193
 
@@ -187,7 +198,7 @@ command :projects do |c|
187
198
  help_now!("The filepath is missing.".color(:red)) if args.empty?
188
199
  filename = args.shift
189
200
  api_key = global_options[:api_key]
190
- Veye::Project::Check.upload(filename, api_key, options)
201
+ Veye::Project::Check.upload(api_key, filename, options)
191
202
  end
192
203
  end
193
204
 
@@ -200,7 +211,7 @@ command :projects do |c|
200
211
 
201
212
  project_key, filename = args
202
213
  api_key = global_options[:api_key]
203
- Veye::Project::Check.update(project_key, filename, api_key, options)
214
+ Veye::Project::Check.update(api_key, project_key, filename, options)
204
215
  end
205
216
  end
206
217
 
@@ -211,7 +222,7 @@ command :projects do |c|
211
222
  help_now!("Project's key is unspecified".color(:red)) if args.empty?
212
223
  proj_key = args.shift
213
224
  api_key = global_options[:api_key]
214
- Veye::Project::License.get_licenses(proj_key, api_key, options)
225
+ Veye::Project::License.get_licenses(api_key, proj_key, options)
215
226
  end
216
227
  end
217
228
 
@@ -222,7 +233,7 @@ command :projects do |c|
222
233
  help_now!("Project is missing".color(:red)) if args.empty?
223
234
  proj_key = args.shift
224
235
  api_key = global_options[:api_key]
225
- Veye::Project::Check.delete_project(proj_key, api_key)
236
+ Veye::Project::Check.delete_project(api_key, proj_key)
226
237
  end
227
238
  end
228
239
  end
@@ -239,7 +250,7 @@ command :products do |c|
239
250
  help_now!("Product's key is missing".color(:red)) if args.empty?
240
251
  prod_key = args.shift
241
252
  api_key = global_options[:api_key]
242
- Veye::Package::Follow.get_follow_status(prod_key, api_key)
253
+ Veye::Package::Follow.get_follow_status(api_key, prod_key)
243
254
  end
244
255
  end
245
256
 
@@ -250,7 +261,7 @@ command :products do |c|
250
261
  help_now!("Product's key is missing".color(:red)) if args.empty?
251
262
  prod_key = args.shift
252
263
  api_key = global_options[:api_key]
253
- Veye::Package::Follow.follow(prod_key, api_key)
264
+ Veye::Package::Follow.follow(api_key, prod_key)
254
265
  end
255
266
  end
256
267
 
@@ -261,7 +272,7 @@ command :products do |c|
261
272
  help_now!("Product's key is missing".color(:red)) if args.empty?
262
273
  prod_key = args.shift
263
274
  api_key = global_options[:api_key]
264
- Veye::Package::Follow.unfollow(prod_key, api_key)
275
+ Veye::Package::Follow.unfollow(api_key, prod_key)
265
276
  end
266
277
  end
267
278
  end
data/changelogs.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelogs
2
2
 
3
+ ## 0.2
4
+
5
+ * fixed dependency sorting - it show outdated dependencies first;
6
+ * fixed projects which used old API project_key;
7
+ * fixed parameter inconsistencies for `check`, `licenses` commands;
8
+ * updated dependencies;
9
+ * add api_keys for packages api;
10
+ * breaking changes in `check` command - it tracks all supported project files in the folder
11
+ * add `veye.json` file to keep and manage a project specific configurations
12
+ * fixed licenses field in project output
13
+ * add Settings class to manage `veye.json` file
14
+
15
+
3
16
  ## 0.1
4
17
 
5
18
  * first stable release - no new functionalities
@@ -17,79 +17,81 @@ module Veye
17
17
  end
18
18
 
19
19
  # returns package information
20
- def self.get_package(prod_key, language)
20
+ def self.get_package(api_key, prod_key, language)
21
21
  lang = encode_language(language)
22
22
  safe_prod_key = encode_prod_key(prod_key)
23
+ qparams = {}
24
+ qparams[:api_key] = api_key if api_key.to_s.size > 0
23
25
  product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}"
24
- product_api.resource.get do |response, request, result|
26
+ product_api.resource.get({params: qparams}) do |response, request, result|
25
27
  JSONResponse.new(request, result, response)
26
28
  end
27
29
  end
28
30
 
29
- def self.search(search_term, language = nil, group_id = nil, page = '1')
31
+ def self.search(api_key, search_term, language = nil, group_id = nil, page = '1')
30
32
  search_api = Resource.new "#{RESOURCE_PATH}/search/#{search_term}"
31
33
 
32
- search_params = { q: search_term.to_s }
33
- search_params[:lang] = encode_language(language) unless language.nil?
34
- search_params[:g] = group_id unless group_id.nil?
34
+ qparams = { q: search_term.to_s }
35
+ qparams[:lang] = encode_language(language) unless language.nil?
36
+ qparams[:g] = group_id unless group_id.nil?
35
37
  if page.nil?
36
- search_params[:page] = '1'
38
+ qparams[:page] = '1'
37
39
  else
38
- search_params[:page] = page.to_s
40
+ qparams[:page] = page.to_s
39
41
  end
40
42
 
41
- request_params = { params: search_params }
42
- search_api.resource.get(request_params) do |response, request, result|
43
+ qparams[:api_key] = api_key if api_key.to_s.size > 0
44
+ search_api.resource.get({params: qparams}) do |response, request, result|
43
45
  JSONResponse.new(request, result, response)
44
46
  end
45
47
  end
46
48
 
47
49
  def self.get_follow_status(api_key, prod_key, language)
48
50
  product_api = Resource.new(RESOURCE_PATH)
49
- qparams = { params: { api_key: api_key } }
51
+ qparams = {api_key: api_key}
50
52
  lang = encode_language(language)
51
53
  safe_prod_key = encode_prod_key(prod_key)
52
-
53
54
  path = "#{lang}/#{safe_prod_key}/follow.json"
54
- product_api.resource[path].get(qparams) do |response, request, result|
55
+ product_api.resource[path].get({params: qparams}) do |response, request, result|
55
56
  Veye::API::JSONResponse.new(request, result, response)
56
57
  end
57
58
  end
58
59
 
59
60
  def self.follow(api_key, prod_key, language)
60
61
  api = Resource.new(RESOURCE_PATH)
61
- qparams = { api_key: api_key }
62
62
  lang = encode_language(language)
63
63
  safe_prod_key = encode_prod_key(prod_key)
64
64
 
65
- path = "/#{lang}/#{safe_prod_key}/follow.json"
66
- api.resource[path].post(qparams) do |response, request, result|
65
+ path = "/#{lang}/#{safe_prod_key}/follow.json?api_key=#{api_key}"
66
+ api.resource[path].post({}) do |response, request, result|
67
67
  JSONResponse.new(request, result, response)
68
68
  end
69
69
  end
70
70
 
71
71
  def self.unfollow(api_key, prod_key, language)
72
72
  api = Resource.new(RESOURCE_PATH)
73
- qparams = { params: { api_key: api_key } }
73
+ qparams = {api_key: api_key}
74
74
  lang = encode_language(language)
75
75
  safe_prod_key = encode_prod_key(prod_key)
76
76
 
77
77
  path = "/#{lang}/#{safe_prod_key}/follow.json"
78
- api.resource[path].delete(qparams) do |response, request, result|
78
+ api.resource[path].delete({params: qparams}) do |response, request, result|
79
79
  JSONResponse.new(request, result, response)
80
80
  end
81
81
  end
82
82
 
83
- def self.get_references(prod_key, language, page = nil)
83
+ def self.get_references(api_key, prod_key, language, page = nil)
84
84
  api = Resource.new(RESOURCE_PATH)
85
85
  lang = encode_language(language).capitalize # endpoint bug
86
86
  safe_prod_key = encode_prod_key(prod_key)
87
-
87
+
88
88
  api_path = "/#{lang}/#{safe_prod_key}/references"
89
89
  page_nr = page.to_s unless page.nil?
90
90
  page_nr ||= 1
91
- qparams = { params: { page: page_nr } }
92
- api.resource[api_path].get(qparams) do |response, request, result|
91
+
92
+ qparams = {page: page_nr}
93
+ qparams[:api_key] = api_key if api_key.to_s.size > 0
94
+ api.resource[api_path].get({params: qparams}) do |response, request, result|
93
95
  JSONResponse.new(request, result, response)
94
96
  end
95
97
  end
@@ -8,7 +8,7 @@ module Veye
8
8
  def self.check_file(filename)
9
9
  file_path = File.absolute_path(filename)
10
10
 
11
- unless File.exists?(file_path)
11
+ unless File.exist?(file_path)
12
12
  printf("%s: Cant read file `%s`",
13
13
  "Error".color(:red),
14
14
  "#{filename}".color(:yellow))
@@ -1,11 +1,12 @@
1
+ require_relative 'helpers/format_helpers'
2
+
1
3
  # Base class that will bring many helpers into command classes.
2
4
  class BaseExecutor
3
5
  extend FormatHelpers
4
6
 
5
7
  def self.show_results(output_formats, results, options = {}, paging = nil)
6
- format = options[:format] || 'pretty'
7
- self.supported_format?(output_formats, format)
8
- formatter = output_formats[format]
8
+ formatter = get_formatter(output_formats, options)
9
+ return if formatter.nil?
9
10
 
10
11
  formatter.before
11
12
  formatter.format(results)
@@ -14,7 +15,7 @@ class BaseExecutor
14
15
 
15
16
  def self.valid_response?(response, msg)
16
17
  if response.nil? || response.success != true
17
- p "#{msg.to_s.color(:red)}: #{response.data}\n"
18
+ printf "#{msg.to_s.color(:red)}: #{response.data}\n"
18
19
  return false
19
20
  end
20
21
 
@@ -25,4 +26,55 @@ class BaseExecutor
25
26
  def self.catch_request_error(response, msg)
26
27
  valid_response?(response, msg)
27
28
  end
29
+
30
+ def self.filter_dependencies(results, options)
31
+
32
+ if options[:all]
33
+ results['dependencies'].to_a.sort_by {|x| x['outdated'] ? -1 : 0}
34
+ else
35
+ results['dependencies'].to_a.keep_if {|x| x['outdated']}
36
+ end
37
+ end
38
+
39
+ def self.show_dependencies(output_formats, results, options)
40
+ formatter = get_formatter(output_formats, options)
41
+ return if formatter.nil?
42
+
43
+ deps = filter_dependencies(results, options)
44
+
45
+ formatter.before
46
+ formatter.format deps
47
+ formatter.after
48
+ end
49
+
50
+ def self.show_bulk_dependencies(output_formats, results, options)
51
+ formatter = get_formatter(output_formats, options)
52
+ return if formatter.nil?
53
+
54
+ formatter.before
55
+ results.each do |filename, deps|
56
+ formatter.format filter_dependencies(deps, options), filename
57
+ end
58
+
59
+ formatter.after
60
+ end
61
+
62
+ def self.show_message(results, success_msg, fail_msg)
63
+ if results.success
64
+ printf "#{success_msg}\n".color(:green)
65
+ else
66
+ printf("Error: %s\n%s\n",
67
+ fail_msg.color(:red),
68
+ response.data['error'])
69
+ end
70
+ end
71
+
72
+ def self.get_formatter(output_formats, options)
73
+ format = options[:format]
74
+ format ||= 'pretty'
75
+ #return if format == 'json' #dependecy json format is handled by results formatter
76
+ output_formats[format] if supported_format?(output_formats, format)
77
+ end
78
+
79
+
28
80
  end
@@ -9,7 +9,7 @@ module FormatHelpers
9
9
 
10
10
  def formats_attached?(output_formats)
11
11
  if output_formats.nil?
12
- p 'Executor doesnt have any formattor defined.'.color(:red)
12
+ printf 'Executor doesnt have any formattor defined.\n'.color(:red)
13
13
  end
14
14
  !output_formats.nil?
15
15
  end
@@ -18,7 +18,7 @@ module FormatHelpers
18
18
  unless output_formats.key?(format)
19
19
  msg = "Unsupported output format: `#{format}`\n".color(:red)
20
20
  msg += "Supported formats: #{output_formats.keys.join(', ')}\n"
21
- p msg
21
+ printf msg
22
22
  return false
23
23
  end
24
24
  true
@@ -14,7 +14,7 @@ module Veye
14
14
  )
15
15
  end
16
16
 
17
- def self.get_follow_status(package_key, api_key)
17
+ def self.get_follow_status(api_key, package_key)
18
18
  prod_key, lang = Package.parse_key(package_key)
19
19
  results = Veye::API::Package.get_follow_status(api_key, prod_key, lang)
20
20
  if valid_response?(results, 'Didnt get any response.')
@@ -22,7 +22,7 @@ module Veye
22
22
  end
23
23
  end
24
24
 
25
- def self.follow(package_key, api_key)
25
+ def self.follow(api_key, package_key)
26
26
  prod_key, lang = Package.parse_key(package_key)
27
27
  results = Veye::API::Package.follow(api_key, prod_key, lang)
28
28
  if valid_response?(results, 'Cant follow.')
@@ -30,7 +30,7 @@ module Veye
30
30
  end
31
31
  end
32
32
 
33
- def self.unfollow(package_key, api_key)
33
+ def self.unfollow(api_key, package_key)
34
34
  prod_key, lang = Package.parse_key(package_key)
35
35
  results = Veye::API::Package.unfollow(api_key, prod_key, lang)
36
36
  if valid_response?(results, 'Cant unfollow.')
@@ -12,9 +12,9 @@ module Veye
12
12
  'table' => Package::InfoTable.new
13
13
  }
14
14
 
15
- def self.get_package(package_key, options = {})
15
+ def self.get_package(api_key, package_key, options = {})
16
16
  prod_key, lang = Package.parse_key(package_key)
17
- results = Veye::API::Package.get_package(prod_key, lang)
17
+ results = Veye::API::Package.get_package(api_key, prod_key, lang)
18
18
  err_msg = "Didnt find any package with product_key: `#{package_key}`"
19
19
  if valid_response?(results, err_msg)
20
20
  paging = results.data['paging']
@@ -12,10 +12,10 @@ module Veye
12
12
  'table' => Package::ReferencesTable.new
13
13
  }
14
14
 
15
- def self.get_references(package_key, options = {})
15
+ def self.get_references(api_key, package_key, options = {})
16
16
  prod_key, lang = Package.parse_key(package_key)
17
17
  results = Veye::API::Package.get_references(
18
- prod_key, lang, options[:page]
18
+ api_key, prod_key, lang, options[:page]
19
19
  )
20
20
  if valid_response?(results, "No references for: `#{package_key}`")
21
21
  paging = results.data['paging']
@@ -13,9 +13,10 @@ module Veye
13
13
  'table' => Package::SearchTable.new
14
14
  }
15
15
 
16
- def self.search(search_term, options)
16
+ def self.search(api_key, search_term, options)
17
17
  results = Veye::API::Package.search(
18
- search_term, options[:language], options['group-id'], options[:page]
18
+ api_key, search_term, options[:language],
19
+ options['group-id'], options[:page]
19
20
  )
20
21
  if valid_response?(results, "No results for `#{search_term}`")
21
22
  show_results(@output_formats,
@@ -9,7 +9,7 @@ module Veye
9
9
 
10
10
  def format(paging)
11
11
  printf("\t%15s - %s\n",
12
- "Current page".color(:green).bright,
12
+ "Current page".color(:green),
13
13
  "#{paging['current_page']}".bright)
14
14
  puts "\t-------------------------"
15
15
  printf("\t%-15s: %s\n", "Per page", paging['per_page'])