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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a34f7102afe1491a751b94e0d11e22fe854f20bb1c1f5a322473447282bd665a
4
- data.tar.gz: a7dc977d51a43a5657445ee42afc730be67dd2fe6006e35b5153f47ae13fa30d
3
+ metadata.gz: 72ddffc4eae85bd07e59db90bb20e6890ec3bc3b2da6d725dc9ffea8d7f3e7a5
4
+ data.tar.gz: 4d3fc54759167ab0b568489b61dacacdb7898b0716fb8fde245de186ea1e4995
5
5
  SHA512:
6
- metadata.gz: 13e0b27d669216a58580c02dc8f2e5d26a35a0102e9ac7537bb6d6aa6caea7d42e115b4c12ad6cecc4cdd61add4829a0e549b01578c23d150ce90da4ae859001
7
- data.tar.gz: f09035851f40e23cdac6f3c594f3f99f4579438ea6421c9007295e1cde0707d689b95675e7435c8da17878defe51bec2ad8427b1ec09fc476727cb026ace9859
6
+ metadata.gz: b3c7dffd83662d797e033288bc326645a14bb77847f16bb1472ab219d75081b4ee97769854a9eac641548c6f601b864cff7bc524d6a64a5605f0bda166f7def1
7
+ data.tar.gz: 253bf224334af3d725c074a7c5f3867ab7cede744663bf46e36a16f74232691648c95210ffc64db673569cb96c1f036152880d7dcb7dac512774824c011874d7
@@ -4,9 +4,10 @@ require 'terminal-table'
4
4
 
5
5
  module Rubion
6
6
  class Reporter
7
- def initialize(scan_result, sort_by: nil)
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)
@@ -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: nil })
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rubion
4
- VERSION = "0.3.2"
4
+ VERSION = "0.3.3"
5
5
  end
6
6
 
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
- options = { gems: true, packages: true, sort_by: nil }
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: nil })
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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bipashant