lex-ssh 0.2.1 → 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: c32f876a224526e915ee6576cc5f15ac6c9d8cf5a1baf10d98a1eafaeaf867f8
4
- data.tar.gz: ec41166e39202820862faa03e98fd738de9bfb55c549620d1a5bc662d30a0099
3
+ metadata.gz: 4aa797adb400275ddb8a451f286c494ed341f5a66cc7d2a5d461c15d66af1410
4
+ data.tar.gz: 65ec05c0ef3bb0fe7644b4b92cf3181ed07438d86a8a0ceb53749c6fa725929e
5
5
  SHA512:
6
- metadata.gz: 5644622ea45307993be446f6e4ef78b12f020154651324ed7d4f3083919b5eb4acb8ace68f046ff24c508d0e5f12d70e4f0f11047a5ae42b2b03a2955b58f2d0
7
- data.tar.gz: 07a56ceb7eed940b5eb743debbadf1fa102e4b373bb1d7c25edafc841f254071d59d3230ffb4bcdf8e2db65f266a563636b051264bf429d149eb3cd0a896c2e9
6
+ metadata.gz: 959cef008590aa9aa3db7ae67be38697907c05e465eb9ea791d9bb67e84bece7f6aab9b51560a33fb8233cf7505be331dfe7f55903fc9b27b9bf742bc3c7c3b4
7
+ data.tar.gz: 4eb06fc14f2afea9794ae2430d3d2d0844eb8a52eb61eb2221bae6f0df7ae9209537ca3371356dff4ccba4cfe05c989297915fa861457840a0b066ed6addf978
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.2] - 2026-03-22
4
+
5
+ ### Changed
6
+ - Add legion-logging, legion-settings, legion-json, legion-cache, legion-crypt, legion-data, and legion-transport as runtime dependencies
7
+ - Update spec_helper with real sub-gem helper stubs for Legion::Extensions::Helpers::Lex
8
+
3
9
  ## [0.2.1] - 2026-03-18
4
10
 
5
11
  ### Fixed
data/CLAUDE.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Legion Extension that executes remote SSH commands and controls remote server state. Provides runners for running arbitrary commands on remote hosts and triggering reboot/shutdown via Net::SSH.
10
10
 
11
- **Version**: 0.2.0
11
+ **Version**: 0.2.1
12
12
  **GitHub**: https://github.com/LegionIO/lex-ssh
13
13
  **License**: MIT
14
14
 
@@ -32,7 +32,7 @@ Legion::Extensions::Ssh
32
32
  | `lib/legion/extensions/ssh/runners/command.rb` | `run`, `run_multiple` (and `alias run_multiple run_mulitple` for typo compat) |
33
33
  | `lib/legion/extensions/ssh/runners/state.rb` | `reboot(server:, user:, delay:)`, `shutdown(server:, user:, delay:)` |
34
34
  | `lib/legion/extensions/ssh/helpers/connection.rb` | `session(server:, user:, **opts)` — Net::SSH.start wrapper |
35
- | `lib/legion/extensions/ssh/client.rb` | Standalone `Client` class for use outside Legion framework |
35
+ | `lib/legion/extensions/ssh/client.rb` | Standalone `Client` class: `initialize(server:, user: 'root', **extra)` |
36
36
 
37
37
  ## Runner Methods
38
38
 
@@ -46,9 +46,14 @@ Legion::Extensions::Ssh
46
46
 
47
47
  **Connection auth** (pass as task kwargs): `password:`, `key_data:`, `keys:`, `passphrase:`, `non_interactive:`, `timeout:` (default: 5s)
48
48
 
49
- ## Bug Fixes (v0.2.0)
49
+ ## Standalone Client
50
50
 
51
- - Fixed `opts.key(:timeout)` typo in `Helpers::Connection`corrected to `opts.key?(:timeout)`. The old code always returned the key object (truthy) instead of checking presence, so `timeout` was never read from opts.
51
+ `Client.new(server:, user: 'root', **extra)` — stores opts and delegates `session` to `Helpers::Connection` with merged opts.
52
+
53
+ ```ruby
54
+ client = Legion::Extensions::Ssh::Client.new(server: 'server.example.com', user: 'deploy', keys: ['~/.ssh/id_ed25519'])
55
+ result = client.run(command: 'uptime')
56
+ ```
52
57
 
53
58
  ## Dependencies
54
59
 
@@ -57,10 +62,11 @@ Legion::Extensions::Ssh
57
62
  | `net-ssh` (>= 7.0) | SSH client |
58
63
  | `ed25519` | Ed25519 key support |
59
64
  | `bcrypt_pbkdf` | Bcrypt key derivation (OpenSSH private key format) |
65
+ | `logger` | Explicit dependency for Ruby 4.0 compatibility (extracted from stdlib) |
60
66
 
61
67
  ## Development
62
68
 
63
- 9 specs total across `spec/legion/extensions/ssh/client_spec.rb`, `runners/command_spec.rb`, and `runners/state_spec.rb`.
69
+ 9 specs total.
64
70
 
65
71
  ```bash
66
72
  bundle install
data/README.md CHANGED
@@ -52,26 +52,20 @@ Use `Legion::Extensions::Ssh::Client` outside the full LegionIO framework.
52
52
 
53
53
  ```ruby
54
54
  require 'legion/extensions/ssh'
55
- client = Legion::Extensions::Ssh::Client.new(host: 'server.example.com', user: 'deploy', keys: ['~/.ssh/id_ed25519'])
55
+ client = Legion::Extensions::Ssh::Client.new(server: 'server.example.com', user: 'deploy', keys: ['~/.ssh/id_ed25519'])
56
56
  result = client.run(command: 'uptime')
57
57
  ```
58
58
 
59
+ Constructor: `Client.new(server:, user: 'root', **extra)`. Additional kwargs (`keys:`, `password:`, `timeout:`, etc.) are stored and passed through to Net::SSH on each call.
60
+
59
61
  ## Requirements
60
62
 
61
63
  - Ruby >= 3.4
62
- - [LegionIO](https://github.com/LegionIO/LegionIO) framework
63
64
  - SSH server access
64
65
  - `net-ssh` >= 7.0
65
66
  - `ed25519` — Ed25519 key support
66
67
  - `bcrypt_pbkdf` — OpenSSH private key format support
67
68
 
68
- ## Changelog
69
-
70
- ### v0.2.0
71
-
72
- - Added standalone `Client` class.
73
- - Fixed `opts.key?(:timeout)` in `Helpers::Connection` — the previous `opts.key(:timeout)` always returned a truthy key object, so the `timeout` option was never read from task kwargs.
74
-
75
69
  ## License
76
70
 
77
71
  MIT
data/lex-ssh.gemspec CHANGED
@@ -28,6 +28,13 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency 'bcrypt_pbkdf'
30
30
  spec.add_dependency 'ed25519'
31
+ spec.add_dependency 'legion-cache', '>= 1.3.11'
32
+ spec.add_dependency 'legion-crypt', '>= 1.4.9'
33
+ spec.add_dependency 'legion-data', '>= 1.4.17'
34
+ spec.add_dependency 'legion-json', '>= 1.2.1'
35
+ spec.add_dependency 'legion-logging', '>= 1.3.2'
36
+ spec.add_dependency 'legion-settings', '>= 1.3.14'
37
+ spec.add_dependency 'legion-transport', '>= 1.3.9'
31
38
  spec.add_dependency 'logger'
32
39
  spec.add_dependency 'net-ssh', '>= 7.0'
33
40
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Ssh
6
- VERSION = '0.2.1'
6
+ VERSION = '0.2.2'
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
@@ -37,6 +37,104 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: legion-cache
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.3.11
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.3.11
54
+ - !ruby/object:Gem::Dependency
55
+ name: legion-crypt
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.9
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 1.4.9
68
+ - !ruby/object:Gem::Dependency
69
+ name: legion-data
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.4.17
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.4.17
82
+ - !ruby/object:Gem::Dependency
83
+ name: legion-json
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.2.1
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 1.2.1
96
+ - !ruby/object:Gem::Dependency
97
+ name: legion-logging
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.3.2
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.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: legion-settings
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 1.3.14
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 1.3.14
124
+ - !ruby/object:Gem::Dependency
125
+ name: legion-transport
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 1.3.9
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.3.9
40
138
  - !ruby/object:Gem::Dependency
41
139
  name: logger
42
140
  requirement: !ruby/object:Gem::Requirement