lex-slack 0.3.0 → 0.3.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/.gitignore +1 -0
- data/CHANGELOG.md +12 -0
- data/lex-slack.gemspec +7 -0
- data/lib/legion/extensions/slack/actors/message_poller.rb +14 -11
- data/lib/legion/extensions/slack/version.rb +1 -1
- metadata +99 -2
- data/Gemfile.lock +0 -88
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4b8196bc2057e484235a52cd82902455f2977354b005d5846bbbfd134abf6527
|
|
4
|
+
data.tar.gz: 3206478d6027e377bdeab627ffc746769ae00bbc4cd078e76e1487a792e3c510
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f7a90326efe207f3466b71e7ee4421be47ec42815f030cdd6ae4704900dfa77a1953651ffc62334eef752dd31bb559d43130c6d02a09e09c04a69f8d57af09e6
|
|
7
|
+
data.tar.gz: 24b19a62dccab09e3a793826f026081f4fe57aaaf2f4a0326388fc5c2bd6874d552567a5a9057d72ee441a32724de4c2cd71c2a39f5fd131a505570b4791e0d4
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- Rewrite MessagePoller as proper Every actor with correct base class, method names, and self-contained runner_class
|
|
7
|
+
- Fix Settings access: use `Legion::Settings` directly instead of `Legion::Settings.to_h` (Settings is a module, not a Hash)
|
|
8
|
+
|
|
9
|
+
## [0.3.1] - 2026-03-22
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Add legion-logging, legion-settings, legion-json, legion-cache, legion-crypt, legion-data, and legion-transport as runtime dependencies
|
|
13
|
+
- Update spec_helper with real sub-gem helper stubs
|
|
14
|
+
|
|
3
15
|
## [0.3.0] - 2026-03-20
|
|
4
16
|
|
|
5
17
|
### Added
|
data/lex-slack.gemspec
CHANGED
|
@@ -26,4 +26,11 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
spec.require_paths = ['lib']
|
|
27
27
|
|
|
28
28
|
spec.add_dependency 'faraday', '>= 2.0'
|
|
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'
|
|
29
36
|
end
|
|
@@ -4,14 +4,21 @@ module Legion
|
|
|
4
4
|
module Extensions
|
|
5
5
|
module Slack
|
|
6
6
|
module Actor
|
|
7
|
-
class MessagePoller
|
|
7
|
+
class MessagePoller < Legion::Extensions::Actors::Every
|
|
8
8
|
include Helpers::Client
|
|
9
9
|
|
|
10
|
-
def
|
|
10
|
+
def runner_class = self.class
|
|
11
|
+
|
|
12
|
+
def initialize(**)
|
|
11
13
|
@hwm = {}
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def time
|
|
18
|
+
settings.dig('lex-slack', 'poller', 'interval') || 30
|
|
12
19
|
end
|
|
13
20
|
|
|
14
|
-
def
|
|
21
|
+
def action(**)
|
|
15
22
|
return unless enabled?
|
|
16
23
|
return if channels.empty?
|
|
17
24
|
|
|
@@ -23,10 +30,6 @@ module Legion
|
|
|
23
30
|
end
|
|
24
31
|
end
|
|
25
32
|
|
|
26
|
-
def interval
|
|
27
|
-
settings.dig('lex-slack', 'poller', 'interval') || 30
|
|
28
|
-
end
|
|
29
|
-
|
|
30
33
|
private
|
|
31
34
|
|
|
32
35
|
def enabled?
|
|
@@ -60,15 +63,15 @@ module Legion
|
|
|
60
63
|
namespace: 'Legion::Extensions::Slack',
|
|
61
64
|
args: { channel: channel_id, message: message }
|
|
62
65
|
)
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
else
|
|
67
|
+
log.info "Slack message in #{channel_id}: #{message['text']}"
|
|
65
68
|
end
|
|
66
69
|
rescue StandardError => e
|
|
67
|
-
|
|
70
|
+
log.warn "Failed to publish slack message: #{e.message}"
|
|
68
71
|
end
|
|
69
72
|
|
|
70
73
|
def settings
|
|
71
|
-
return Legion::Settings
|
|
74
|
+
return Legion::Settings if defined?(Legion::Settings)
|
|
72
75
|
|
|
73
76
|
{}
|
|
74
77
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-slack
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
@@ -23,6 +23,104 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '2.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: legion-cache
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.3.11
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 1.3.11
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: legion-crypt
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 1.4.9
|
|
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.9
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: legion-data
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: 1.4.17
|
|
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.17
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: legion-json
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.2.1
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: 1.2.1
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: legion-logging
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: 1.3.2
|
|
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.2
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: legion-settings
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: 1.3.14
|
|
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.14
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: legion-transport
|
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
|
113
|
+
requirements:
|
|
114
|
+
- - ">="
|
|
115
|
+
- !ruby/object:Gem::Version
|
|
116
|
+
version: 1.3.9
|
|
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.9
|
|
26
124
|
description: Connects Legion to Slack via Web API and incoming webhooks
|
|
27
125
|
email:
|
|
28
126
|
- matthewdiverson@gmail.com
|
|
@@ -37,7 +135,6 @@ files:
|
|
|
37
135
|
- CHANGELOG.md
|
|
38
136
|
- CLAUDE.md
|
|
39
137
|
- Gemfile
|
|
40
|
-
- Gemfile.lock
|
|
41
138
|
- LICENSE.txt
|
|
42
139
|
- README.md
|
|
43
140
|
- Rakefile
|
data/Gemfile.lock
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
lex-slack (0.3.0)
|
|
5
|
-
faraday (>= 2.0)
|
|
6
|
-
|
|
7
|
-
GEM
|
|
8
|
-
remote: https://rubygems.org/
|
|
9
|
-
specs:
|
|
10
|
-
addressable (2.8.9)
|
|
11
|
-
public_suffix (>= 2.0.2, < 8.0)
|
|
12
|
-
ast (2.4.3)
|
|
13
|
-
bigdecimal (4.0.1)
|
|
14
|
-
diff-lcs (1.6.2)
|
|
15
|
-
faraday (2.14.1)
|
|
16
|
-
faraday-net_http (>= 2.0, < 3.5)
|
|
17
|
-
json
|
|
18
|
-
logger
|
|
19
|
-
faraday-net_http (3.4.2)
|
|
20
|
-
net-http (~> 0.5)
|
|
21
|
-
json (2.19.1)
|
|
22
|
-
json-schema (6.2.0)
|
|
23
|
-
addressable (~> 2.8)
|
|
24
|
-
bigdecimal (>= 3.1, < 5)
|
|
25
|
-
language_server-protocol (3.17.0.5)
|
|
26
|
-
lint_roller (1.1.0)
|
|
27
|
-
logger (1.7.0)
|
|
28
|
-
mcp (0.8.0)
|
|
29
|
-
json-schema (>= 4.1)
|
|
30
|
-
net-http (0.9.1)
|
|
31
|
-
uri (>= 0.11.1)
|
|
32
|
-
parallel (1.27.0)
|
|
33
|
-
parser (3.3.10.2)
|
|
34
|
-
ast (~> 2.4.1)
|
|
35
|
-
racc
|
|
36
|
-
prism (1.9.0)
|
|
37
|
-
public_suffix (7.0.5)
|
|
38
|
-
racc (1.8.1)
|
|
39
|
-
rainbow (3.1.1)
|
|
40
|
-
rake (12.3.3)
|
|
41
|
-
regexp_parser (2.11.3)
|
|
42
|
-
rspec (3.13.2)
|
|
43
|
-
rspec-core (~> 3.13.0)
|
|
44
|
-
rspec-expectations (~> 3.13.0)
|
|
45
|
-
rspec-mocks (~> 3.13.0)
|
|
46
|
-
rspec-core (3.13.6)
|
|
47
|
-
rspec-support (~> 3.13.0)
|
|
48
|
-
rspec-expectations (3.13.5)
|
|
49
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
50
|
-
rspec-support (~> 3.13.0)
|
|
51
|
-
rspec-mocks (3.13.8)
|
|
52
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
53
|
-
rspec-support (~> 3.13.0)
|
|
54
|
-
rspec-support (3.13.7)
|
|
55
|
-
rubocop (1.85.1)
|
|
56
|
-
json (~> 2.3)
|
|
57
|
-
language_server-protocol (~> 3.17.0.2)
|
|
58
|
-
lint_roller (~> 1.1.0)
|
|
59
|
-
mcp (~> 0.6)
|
|
60
|
-
parallel (~> 1.10)
|
|
61
|
-
parser (>= 3.3.0.2)
|
|
62
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
63
|
-
regexp_parser (>= 2.9.3, < 3.0)
|
|
64
|
-
rubocop-ast (>= 1.49.0, < 2.0)
|
|
65
|
-
ruby-progressbar (~> 1.7)
|
|
66
|
-
unicode-display_width (>= 2.4.0, < 4.0)
|
|
67
|
-
rubocop-ast (1.49.1)
|
|
68
|
-
parser (>= 3.3.7.2)
|
|
69
|
-
prism (~> 1.7)
|
|
70
|
-
ruby-progressbar (1.13.0)
|
|
71
|
-
unicode-display_width (3.2.0)
|
|
72
|
-
unicode-emoji (~> 4.1)
|
|
73
|
-
unicode-emoji (4.2.0)
|
|
74
|
-
uri (1.1.1)
|
|
75
|
-
|
|
76
|
-
PLATFORMS
|
|
77
|
-
arm64-darwin-25
|
|
78
|
-
ruby
|
|
79
|
-
|
|
80
|
-
DEPENDENCIES
|
|
81
|
-
bundler (>= 2)
|
|
82
|
-
lex-slack!
|
|
83
|
-
rake
|
|
84
|
-
rspec
|
|
85
|
-
rubocop
|
|
86
|
-
|
|
87
|
-
BUNDLED WITH
|
|
88
|
-
2.6.9
|