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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e40e042cb6111ce0d3708ed3de574e32baf92839704e2a22ed4c239bcaf4907
4
- data.tar.gz: 4fdd6b3f2388a5aeb8a5a862e57cc29d57aa239793dbccdcabbdc1967267a031
3
+ metadata.gz: 47d2ff4f9253f0b05cd280acec690b8a0cfe6ac59ced4a6cfa19294ce4464e7f
4
+ data.tar.gz: d93c471ba383616a918c7ff391be0c7e5e9af2e9006cd272c488c46067aab3b6
5
5
  SHA512:
6
- metadata.gz: 8d8a294a962b08b21d08d26b9189ab01e7194a244e04299b2094e3eecfd5b00f40cebc56d438ea71b5ed2a47aab10bb77bf465eb8b71eff5821fdb5e11cd9f55
7
- data.tar.gz: 634257c97700a444f7a846ef249d69d718e5cf2d0202793bd38ba156bb48fae025410d98e7aeba56a8735647334d34c2f4bfd7cbdf53fc2c8870e50bf55297ce
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
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Detect
6
- VERSION = '0.2.0'
6
+ VERSION = '0.2.2'
7
7
  end
8
8
  end
9
9
  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/sarif'
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
- case format.to_sym
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.0
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