rubion 0.3.2 → 0.3.3
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/lib/rubion/reporter.rb +6 -2
- data/lib/rubion/scanner.rb +2 -2
- data/lib/rubion/version.rb +1 -1
- data/lib/rubion.rb +15 -3
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72ddffc4eae85bd07e59db90bb20e6890ec3bc3b2da6d725dc9ffea8d7f3e7a5
|
|
4
|
+
data.tar.gz: 4d3fc54759167ab0b568489b61dacacdb7898b0716fb8fde245de186ea1e4995
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b3c7dffd83662d797e033288bc326645a14bb77847f16bb1472ab219d75081b4ee97769854a9eac641548c6f601b864cff7bc524d6a64a5605f0bda166f7def1
|
|
7
|
+
data.tar.gz: 253bf224334af3d725c074a7c5f3867ab7cede744663bf46e36a16f74232691648c95210ffc64db673569cb96c1f036152880d7dcb7dac512774824c011874d7
|
data/lib/rubion/reporter.rb
CHANGED
|
@@ -4,9 +4,10 @@ require 'terminal-table'
|
|
|
4
4
|
|
|
5
5
|
module Rubion
|
|
6
6
|
class Reporter
|
|
7
|
-
def initialize(scan_result, sort_by:
|
|
7
|
+
def initialize(scan_result, sort_by: 'Behind By(Time)', sort_desc: true)
|
|
8
8
|
@result = scan_result
|
|
9
9
|
@sort_by = sort_by
|
|
10
|
+
@sort_desc = sort_desc
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def report
|
|
@@ -244,7 +245,7 @@ module Rubion
|
|
|
244
245
|
'name' # Default to name sorting
|
|
245
246
|
end
|
|
246
247
|
|
|
247
|
-
versions.sort_by do |item|
|
|
248
|
+
sorted = versions.sort_by do |item|
|
|
248
249
|
case normalized_column
|
|
249
250
|
when 'name'
|
|
250
251
|
item[name_key_sym].to_s.downcase
|
|
@@ -261,6 +262,9 @@ module Rubion
|
|
|
261
262
|
parse_version_count_for_sort(item[:version_count])
|
|
262
263
|
end
|
|
263
264
|
end
|
|
265
|
+
|
|
266
|
+
# Reverse if descending order requested
|
|
267
|
+
@sort_desc ? sorted.reverse : sorted
|
|
264
268
|
end
|
|
265
269
|
|
|
266
270
|
# Parse version string for sorting (handles semantic versions)
|
data/lib/rubion/scanner.rb
CHANGED
|
@@ -37,7 +37,7 @@ module Rubion
|
|
|
37
37
|
@result
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
-
def scan_incremental(options = { gems: true, packages: true, sort_by:
|
|
40
|
+
def scan_incremental(options = { gems: true, packages: true, sort_by: "Behind By(Time)", sort_desc: true })
|
|
41
41
|
puts "🔍 Scanning project at: #{@project_path}\n\n"
|
|
42
42
|
|
|
43
43
|
# Scan and display Ruby gems first (if enabled)
|
|
@@ -46,7 +46,7 @@ module Rubion
|
|
|
46
46
|
|
|
47
47
|
# Print gem results immediately
|
|
48
48
|
puts "\n"
|
|
49
|
-
reporter = Reporter.new(@result, sort_by: options[:sort_by])
|
|
49
|
+
reporter = Reporter.new(@result, sort_by: options[:sort_by], sort_desc: options[:sort_desc])
|
|
50
50
|
reporter.print_gem_vulnerabilities
|
|
51
51
|
reporter.print_gem_versions
|
|
52
52
|
end
|
data/lib/rubion/version.rb
CHANGED
data/lib/rubion.rb
CHANGED
|
@@ -28,7 +28,8 @@ module Rubion
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def self.parse_scan_options(args)
|
|
31
|
-
|
|
31
|
+
# Default to sorting by "Behind By(Time)" in descending order
|
|
32
|
+
options = { gems: true, packages: true, sort_by: "Behind By(Time)", sort_desc: true }
|
|
32
33
|
|
|
33
34
|
# Check for --gems-only or --packages-only flags
|
|
34
35
|
if args.include?('--gems-only') || args.include?('-g')
|
|
@@ -49,10 +50,13 @@ module Rubion
|
|
|
49
50
|
options[:sort_by] = args[sort_index + 1]
|
|
50
51
|
end
|
|
51
52
|
|
|
53
|
+
# Parse --asc or --ascending for ascending order (descending is default)
|
|
54
|
+
options[:sort_desc] = false if args.include?('--asc') || args.include?('--ascending')
|
|
55
|
+
|
|
52
56
|
options
|
|
53
57
|
end
|
|
54
58
|
|
|
55
|
-
def self.scan(options = { gems: true, packages: true, sort_by:
|
|
59
|
+
def self.scan(options = { gems: true, packages: true, sort_by: "Behind By(Time)", sort_desc: true })
|
|
56
60
|
project_path = Dir.pwd
|
|
57
61
|
|
|
58
62
|
scanner = Scanner.new(project_path: project_path)
|
|
@@ -64,7 +68,7 @@ module Rubion
|
|
|
64
68
|
# Actually, scan_incremental handles gem printing, but package printing
|
|
65
69
|
# happens here, so we need a reporter for packages
|
|
66
70
|
if options[:packages]
|
|
67
|
-
reporter = Reporter.new(result, sort_by: options[:sort_by])
|
|
71
|
+
reporter = Reporter.new(result, sort_by: options[:sort_by], sort_desc: options[:sort_desc])
|
|
68
72
|
reporter.print_package_vulnerabilities
|
|
69
73
|
reporter.print_package_versions
|
|
70
74
|
end
|
|
@@ -85,6 +89,8 @@ module Rubion
|
|
|
85
89
|
--packages, --npm, -p Scan only NPM packages (skip Ruby gems)
|
|
86
90
|
--all, -a Scan both gems and packages (default)
|
|
87
91
|
--sort-by COLUMN, -s COLUMN Sort results by column (Name, Current, Date, Latest, Behind By(Time), Behind By(Versions))
|
|
92
|
+
(default: "Behind By(Time)" in descending order)
|
|
93
|
+
--asc, --ascending Sort in ascending order (use with --sort-by)
|
|
88
94
|
|
|
89
95
|
DESCRIPTION:
|
|
90
96
|
Rubion scans your project for:
|
|
@@ -116,6 +122,12 @@ module Rubion
|
|
|
116
122
|
# Sort by versions behind
|
|
117
123
|
rubion scan -s "Behind By(Versions)"
|
|
118
124
|
|
|
125
|
+
# Sort by name in descending order (default)
|
|
126
|
+
rubion scan --sort-by Name
|
|
127
|
+
|
|
128
|
+
# Sort by name in ascending order
|
|
129
|
+
rubion scan --sort-by Name --asc
|
|
130
|
+
|
|
119
131
|
# Get help
|
|
120
132
|
rubion help
|
|
121
133
|
|