lex-detect 0.2.0 → 0.2.2
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/CHANGELOG.md +15 -0
- data/lex-detect.gemspec +8 -0
- data/lib/legion/extensions/detect/formatters/json.rb +23 -0
- data/lib/legion/extensions/detect/formatters.rb +23 -0
- data/lib/legion/extensions/detect/version.rb +1 -1
- data/lib/legion/extensions/detect.rb +2 -7
- metadata +102 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47d2ff4f9253f0b05cd280acec690b8a0cfe6ac59ced4a6cfa19294ce4464e7f
|
|
4
|
+
data.tar.gz: d93c471ba383616a918c7ff391be0c7e5e9af2e9006cd272c488c46067aab3b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 96ee2183ef83b3756ce09c46d3819e8430a6b30154c20a96f5da0d55718e9e620eb33cc1331f4a421bc08909ddf3a699f90c1b958ba140c1e7e5c053e358e6c0
|
|
7
|
+
data.tar.gz: 850a7671e69bf76490b20925f7ea4a8404961010e8c74b0b5ac532f430b26a8b4bd302c28ea01afd538836195cb225db3dbff341eda8142a6429dc1122ca9a3f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.2.2] - 2026-03-22
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Added runtime dependencies to gemspec: legion-cache >= 1.3.11, legion-crypt >= 1.4.9, legion-data >= 1.4.17, legion-json >= 1.2.1, legion-logging >= 1.3.2, legion-settings >= 1.3.14, legion-transport >= 1.3.9
|
|
7
|
+
- Updated spec_helper to require real sub-gem helpers and stub Legion::Extensions::Helpers::Lex, Actors::Once, and Actors::Every for isolated test loading
|
|
8
|
+
- Fixed CancelTask spec to properly simulate Legion::Data unavailability by temporarily removing the constant
|
|
9
|
+
|
|
10
|
+
## [0.2.1] - 2026-03-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `Formatters::Json` passthrough formatter returning detections unchanged (or as pretty-printed JSON via `.to_json`)
|
|
14
|
+
- `Formatters` module entry point with `Formatters.format(detections, format:)` dispatcher for `:sarif`, `:markdown`, and `:json`
|
|
15
|
+
- `format_results` now delegates to `Formatters.format` instead of dispatching inline
|
|
16
|
+
- 5 new specs for `Formatters::Json` covering passthrough identity, field preservation, JSON serialization, and empty input
|
|
17
|
+
|
|
3
18
|
## [0.2.0] - 2026-03-22
|
|
4
19
|
|
|
5
20
|
### Added
|
data/lex-detect.gemspec
CHANGED
|
@@ -25,4 +25,12 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
26
26
|
end
|
|
27
27
|
spec.require_paths = ['lib']
|
|
28
|
+
|
|
29
|
+
spec.add_dependency 'legion-cache', '>= 1.3.11'
|
|
30
|
+
spec.add_dependency 'legion-crypt', '>= 1.4.9'
|
|
31
|
+
spec.add_dependency 'legion-data', '>= 1.4.17'
|
|
32
|
+
spec.add_dependency 'legion-json', '>= 1.2.1'
|
|
33
|
+
spec.add_dependency 'legion-logging', '>= 1.3.2'
|
|
34
|
+
spec.add_dependency 'legion-settings', '>= 1.3.14'
|
|
35
|
+
spec.add_dependency 'legion-transport', '>= 1.3.9'
|
|
28
36
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Detect
|
|
8
|
+
module Formatters
|
|
9
|
+
module Json
|
|
10
|
+
module_function
|
|
11
|
+
|
|
12
|
+
def format(detections)
|
|
13
|
+
detections
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def to_json(detections)
|
|
17
|
+
::JSON.pretty_generate(format(detections))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'legion/extensions/detect/formatters/json'
|
|
4
|
+
require 'legion/extensions/detect/formatters/sarif'
|
|
5
|
+
require 'legion/extensions/detect/formatters/markdown_pr'
|
|
6
|
+
|
|
7
|
+
module Legion
|
|
8
|
+
module Extensions
|
|
9
|
+
module Detect
|
|
10
|
+
module Formatters
|
|
11
|
+
module_function
|
|
12
|
+
|
|
13
|
+
def format(detections, format: :json)
|
|
14
|
+
case format.to_sym
|
|
15
|
+
when :sarif then Sarif.to_json(detections)
|
|
16
|
+
when :markdown then MarkdownPr.format(detections)
|
|
17
|
+
else Json.format(detections)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -4,8 +4,7 @@ require 'legion/extensions/detect/version'
|
|
|
4
4
|
require 'legion/extensions/detect/catalog'
|
|
5
5
|
require 'legion/extensions/detect/scanner'
|
|
6
6
|
require 'legion/extensions/detect/installer'
|
|
7
|
-
require 'legion/extensions/detect/formatters
|
|
8
|
-
require 'legion/extensions/detect/formatters/markdown_pr'
|
|
7
|
+
require 'legion/extensions/detect/formatters'
|
|
9
8
|
require_relative 'detect/runners/task_observer'
|
|
10
9
|
require_relative 'detect/runners/cancel_task'
|
|
11
10
|
|
|
@@ -46,11 +45,7 @@ module Legion
|
|
|
46
45
|
|
|
47
46
|
def format_results(format: :json, detections: nil)
|
|
48
47
|
results = detections || scan
|
|
49
|
-
|
|
50
|
-
when :sarif then Formatters::Sarif.to_json(results)
|
|
51
|
-
when :markdown then Formatters::MarkdownPr.format(results)
|
|
52
|
-
else results
|
|
53
|
-
end
|
|
48
|
+
Formatters.format(results, format: format)
|
|
54
49
|
end
|
|
55
50
|
end
|
|
56
51
|
|
metadata
CHANGED
|
@@ -1,14 +1,112 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-detect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
-
dependencies:
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: legion-cache
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 1.3.11
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 1.3.11
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: legion-crypt
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.4.9
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 1.4.9
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: legion-data
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 1.4.17
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 1.4.17
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: legion-json
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.2.1
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 1.2.1
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: legion-logging
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.3.2
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.3.2
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: legion-settings
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.3.14
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: 1.3.14
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: legion-transport
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.3.9
|
|
103
|
+
type: :runtime
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 1.3.9
|
|
12
110
|
description: Environment-aware extension discovery for LegionIO
|
|
13
111
|
email:
|
|
14
112
|
- matthewdiverson@gmail.com
|
|
@@ -31,6 +129,8 @@ files:
|
|
|
31
129
|
- lib/legion/extensions/detect/actors/full_scan.rb
|
|
32
130
|
- lib/legion/extensions/detect/actors/observer_tick.rb
|
|
33
131
|
- lib/legion/extensions/detect/catalog.rb
|
|
132
|
+
- lib/legion/extensions/detect/formatters.rb
|
|
133
|
+
- lib/legion/extensions/detect/formatters/json.rb
|
|
34
134
|
- lib/legion/extensions/detect/formatters/markdown_pr.rb
|
|
35
135
|
- lib/legion/extensions/detect/formatters/sarif.rb
|
|
36
136
|
- lib/legion/extensions/detect/installer.rb
|