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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 792ea5ec2fb4bb3991a58b84a7ddd261cc6b8a8a89e0dd402e3e9eba9d9eeb4a
4
- data.tar.gz: 7f95c2db6113a183bf6ed8568d3f0f22cf1670f538f104b41a04fb1caea98fda
3
+ metadata.gz: 4b8196bc2057e484235a52cd82902455f2977354b005d5846bbbfd134abf6527
4
+ data.tar.gz: 3206478d6027e377bdeab627ffc746769ae00bbc4cd078e76e1487a792e3c510
5
5
  SHA512:
6
- metadata.gz: f09185b9193cbf274f571983a44abb5540c8f404ca4e7327c5cdc266002710204460d71e78315ab6e3e03569fcedad76e06f0e6c178e6ce67b59490833190791
7
- data.tar.gz: 15625764b7d0b206ea2a28f6427d0e634332765f9d817895b1b0a2a74991a64413a7e54f351a5d670350d58d50480ce3d31f7201cedb2bd54fbeade74d17111c
6
+ metadata.gz: f7a90326efe207f3466b71e7ee4421be47ec42815f030cdd6ae4704900dfa77a1953651ffc62334eef752dd31bb559d43130c6d02a09e09c04a69f8d57af09e6
7
+ data.tar.gz: 24b19a62dccab09e3a793826f026081f4fe57aaaf2f4a0326388fc5c2bd6874d552567a5a9057d72ee441a32724de4c2cd71c2a39f5fd131a505570b4791e0d4
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ Gemfile.lock
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 initialize
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 run
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
- elsif defined?(Legion::Logging)
64
- Legion::Logging::Logger.info "Slack message in #{channel_id}: #{message['text']}"
66
+ else
67
+ log.info "Slack message in #{channel_id}: #{message['text']}"
65
68
  end
66
69
  rescue StandardError => e
67
- Legion::Logging::Logger.warn "Failed to publish slack message: #{e.message}" if defined?(Legion::Logging)
70
+ log.warn "Failed to publish slack message: #{e.message}"
68
71
  end
69
72
 
70
73
  def settings
71
- return Legion::Settings.to_h if defined?(Legion::Settings)
74
+ return Legion::Settings if defined?(Legion::Settings)
72
75
 
73
76
  {}
74
77
  end
@@ -3,7 +3,7 @@
3
3
  module Legion
4
4
  module Extensions
5
5
  module Slack
6
- VERSION = '0.3.0'
6
+ VERSION = '0.3.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-slack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
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