lex-tasker 0.2.1 → 0.3.0

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +16 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +36 -22
  5. data/CHANGELOG.md +43 -0
  6. data/CLAUDE.md +83 -0
  7. data/Dockerfile +1 -1
  8. data/Gemfile +9 -1
  9. data/README.md +34 -2
  10. data/Rakefile +2 -0
  11. data/docker_deploy.rb +1 -0
  12. data/lex-tasker.gemspec +9 -13
  13. data/lib/legion/extensions/tasker/actors/check_subtask.rb +20 -14
  14. data/lib/legion/extensions/tasker/actors/fetch_delayed.rb +23 -17
  15. data/lib/legion/extensions/tasker/actors/fetch_delayed_push.rb +26 -20
  16. data/lib/legion/extensions/tasker/actors/log.rb +14 -8
  17. data/lib/legion/extensions/tasker/actors/task_manager.rb +20 -14
  18. data/lib/legion/extensions/tasker/actors/updater.rb +20 -14
  19. data/lib/legion/extensions/tasker/client.rb +29 -0
  20. data/lib/legion/extensions/tasker/helpers/task_finder.rb +98 -0
  21. data/lib/legion/extensions/tasker/runners/check_subtask.rb +92 -80
  22. data/lib/legion/extensions/tasker/runners/fetch_delayed.rb +76 -60
  23. data/lib/legion/extensions/tasker/runners/log.rb +47 -41
  24. data/lib/legion/extensions/tasker/runners/task_manager.rb +12 -5
  25. data/lib/legion/extensions/tasker/runners/updater.rb +25 -22
  26. data/lib/legion/extensions/tasker/transport/exchanges/task.rb +10 -4
  27. data/lib/legion/extensions/tasker/transport/messages/fetch_delayed.rb +17 -7
  28. data/lib/legion/extensions/tasker/transport/queues/check_subtask.rb +18 -12
  29. data/lib/legion/extensions/tasker/transport/queues/fetch_delayed.rb +20 -15
  30. data/lib/legion/extensions/tasker/transport/queues/lex_register.rb +15 -9
  31. data/lib/legion/extensions/tasker/transport/queues/subtask.rb +12 -6
  32. data/lib/legion/extensions/tasker/transport/queues/task_log.rb +12 -6
  33. data/lib/legion/extensions/tasker/transport/queues/task_mananger.rb +15 -9
  34. data/lib/legion/extensions/tasker/transport/queues/updater.rb +12 -6
  35. data/lib/legion/extensions/tasker/transport.rb +31 -24
  36. data/lib/legion/extensions/tasker/version.rb +3 -1
  37. data/lib/legion/extensions/tasker.rb +2 -4
  38. metadata +17 -104
  39. data/.circleci/config.yml +0 -39
  40. data/Gemfile.lock +0 -69
  41. data/bitbucket-pipelines.yml +0 -19
  42. data/lib/legion/extensions/tasker/helpers/base.rb +0 -11
  43. data/lib/legion/extensions/tasker/helpers/fetch_delayed.rb +0 -66
  44. data/lib/legion/extensions/tasker/helpers/find_subtask.rb +0 -49
@@ -1,11 +1,21 @@
1
- module Legion::Extensions::Tasker::Transport::Messages
2
- class FetchDelayed < Legion::Transport::Message
3
- def routing_key
4
- 'fetch.delayed'
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Messages
8
+ class FetchDelayed < Legion::Transport::Message
9
+ def routing_key
10
+ 'fetch.delayed'
11
+ end
6
12
 
7
- def expiration
8
- 5000
13
+ def expiration
14
+ 5000
15
+ end
16
+ end
17
+ end
18
+ end
9
19
  end
10
20
  end
11
21
  end
@@ -1,16 +1,22 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class CheckSubtask < Legion::Transport::Queue
5
- def queue_name
6
- 'task.subtask.check'
7
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class CheckSubtask < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.subtask.check'
11
+ end
8
12
 
9
- def queue_options
10
- {
11
- auto_delete: false,
12
- arguments: { 'x-max-priority': 255 }
13
- }
13
+ def queue_options
14
+ {
15
+ auto_delete: false,
16
+ arguments: {}
17
+ }
18
+ end
19
+ end
14
20
  end
15
21
  end
16
22
  end
@@ -1,19 +1,24 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class FetchDelayed < Legion::Transport::Queue
5
- def queue_name
6
- 'task.fetch_delayed'
7
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class FetchDelayed < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.fetch_delayed'
11
+ end
8
12
 
9
- def queue_options
10
- {
11
- arguments: {
12
- 'x-single-active-consumer': true,
13
- 'x-max-priority': 255,
14
- 'x-message-ttl': 1
15
- }
16
- }
13
+ def queue_options
14
+ {
15
+ arguments: {
16
+ 'x-single-active-consumer': true,
17
+ 'x-message-ttl': 1000
18
+ }
19
+ }
20
+ end
21
+ end
17
22
  end
18
23
  end
19
24
  end
@@ -1,13 +1,19 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class LexRegister < Legion::Transport::Queue
5
- def queue_name
6
- 'lex.register'
7
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class LexRegister < Legion::Transport::Queue
9
+ def queue_name
10
+ 'lex.register'
11
+ end
8
12
 
9
- def queue_options
10
- { auto_delete: false }
13
+ def queue_options
14
+ { auto_delete: false }
15
+ end
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Subtask < Legion::Transport::Queue
5
- def queue_name
6
- 'task.subtask'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Subtask < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.subtask'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Log < Legion::Transport::Queue
5
- def queue_name
6
- 'task.log'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Log < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.log'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,13 +1,19 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class TaskManager < Legion::Transport::Queue
5
- def queue_name
6
- 'tasker.task_manager'
7
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class TaskManager < Legion::Transport::Queue
9
+ def queue_name
10
+ 'tasker.task_manager'
11
+ end
8
12
 
9
- def queue_options
10
- { arguments: { 'x-single-active-consumer': true } }
13
+ def queue_options
14
+ { arguments: { 'x-single-active-consumer': true } }
15
+ end
16
+ end
11
17
  end
12
18
  end
13
19
  end
@@ -1,9 +1,15 @@
1
- module Legion::Extensions::Tasker
2
- module Transport
3
- module Queues
4
- class Updater < Legion::Transport::Queue
5
- def queue_name
6
- 'task.updater'
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Tasker
6
+ module Transport
7
+ module Queues
8
+ class Updater < Legion::Transport::Queue
9
+ def queue_name
10
+ 'task.updater'
11
+ end
12
+ end
7
13
  end
8
14
  end
9
15
  end
@@ -1,30 +1,37 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'legion/transport/exchanges/task'
2
4
  require 'legion/extensions/transport'
3
5
 
4
- module Legion::Extensions::Tasker
5
- module Transport
6
- extend Legion::Extensions::Transport
7
- def self.e_to_q
8
- [
9
- {
10
- to: 'updater',
11
- routing_key: 'task.update'
12
- },
13
- {
14
- to: 'log',
15
- routing_key: 'task.logs.#'
16
- }, {
17
- to: 'check_subtask',
18
- routing_key: 'task.subtask.check'
19
- }, {
20
- to: 'fetch_delayed',
21
- routing_key: 'fetch.delayed'
22
- }, {
23
- from: 'tasker',
24
- to: 'task_manager',
25
- routing_key: 'task.task_manager.#'
26
- }
27
- ]
6
+ module Legion
7
+ module Extensions
8
+ module Tasker
9
+ module Transport
10
+ extend Legion::Extensions::Transport
11
+
12
+ def self.e_to_q
13
+ [
14
+ {
15
+ to: 'updater',
16
+ routing_key: 'task.update'
17
+ },
18
+ {
19
+ to: 'log',
20
+ routing_key: 'task.logs.#'
21
+ }, {
22
+ to: 'check_subtask',
23
+ routing_key: 'task.subtask.check'
24
+ }, {
25
+ to: 'fetch_delayed',
26
+ routing_key: 'fetch.delayed'
27
+ }, {
28
+ from: 'tasker',
29
+ to: 'task_manager',
30
+ routing_key: 'task.task_manager.#'
31
+ }
32
+ ]
33
+ end
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Legion
2
4
  module Extensions
3
5
  module Tasker
4
- VERSION = '0.2.1'.freeze
6
+ VERSION = '0.3.0'
5
7
  end
6
8
  end
7
9
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'legion/extensions/tasker/version'
2
4
 
3
5
  module Legion
@@ -8,10 +10,6 @@ module Legion
8
10
  def self.data_required?
9
11
  true
10
12
  end
11
-
12
- def data_required?
13
- true
14
- end
15
13
  end
16
14
  end
17
15
  end
metadata CHANGED
@@ -1,99 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-tasker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-03-03 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '2'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '2'
27
- - !ruby/object:Gem::Dependency
28
- name: codecov
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec_junit_formatter
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
97
12
  description: This LEX keeps track of tasks and their status
98
13
  email:
99
14
  - matthewdiverson@gmail.com
@@ -101,17 +16,17 @@ executables: []
101
16
  extensions: []
102
17
  extra_rdoc_files: []
103
18
  files:
104
- - ".circleci/config.yml"
19
+ - ".github/workflows/ci.yml"
105
20
  - ".gitignore"
106
21
  - ".rspec"
107
22
  - ".rubocop.yml"
23
+ - CHANGELOG.md
24
+ - CLAUDE.md
108
25
  - Dockerfile
109
26
  - Gemfile
110
- - Gemfile.lock
111
27
  - LICENSE.txt
112
28
  - README.md
113
29
  - Rakefile
114
- - bitbucket-pipelines.yml
115
30
  - docker_deploy.rb
116
31
  - lex-tasker.gemspec
117
32
  - lib/legion/extensions/tasker.rb
@@ -121,9 +36,8 @@ files:
121
36
  - lib/legion/extensions/tasker/actors/log.rb
122
37
  - lib/legion/extensions/tasker/actors/task_manager.rb
123
38
  - lib/legion/extensions/tasker/actors/updater.rb
124
- - lib/legion/extensions/tasker/helpers/base.rb
125
- - lib/legion/extensions/tasker/helpers/fetch_delayed.rb
126
- - lib/legion/extensions/tasker/helpers/find_subtask.rb
39
+ - lib/legion/extensions/tasker/client.rb
40
+ - lib/legion/extensions/tasker/helpers/task_finder.rb
127
41
  - lib/legion/extensions/tasker/runners/check_subtask.rb
128
42
  - lib/legion/extensions/tasker/runners/fetch_delayed.rb
129
43
  - lib/legion/extensions/tasker/runners/log.rb
@@ -140,16 +54,16 @@ files:
140
54
  - lib/legion/extensions/tasker/transport/queues/task_mananger.rb
141
55
  - lib/legion/extensions/tasker/transport/queues/updater.rb
142
56
  - lib/legion/extensions/tasker/version.rb
143
- homepage: https://bitbucket.org/legion-io/lex-tasker
57
+ homepage: https://github.com/LegionIO/lex-tasker
144
58
  licenses:
145
59
  - MIT
146
60
  metadata:
147
- homepage_uri: https://bitbucket.org/legion-io/lex-tasker
148
- source_code_uri: https://bitbucket.org/legion-io/lex-tasker/src
149
- documentation_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/7733408
150
- changelog_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/12156936
151
- bug_tracker_uri: https://bitbucket.org/legion-io/lex-tasker/issues
152
- post_install_message:
61
+ homepage_uri: https://github.com/LegionIO/lex-tasker
62
+ source_code_uri: https://github.com/LegionIO/lex-tasker
63
+ documentation_uri: https://github.com/LegionIO/lex-tasker
64
+ changelog_uri: https://github.com/LegionIO/lex-tasker
65
+ bug_tracker_uri: https://github.com/LegionIO/lex-tasker/issues
66
+ rubygems_mfa_required: 'true'
153
67
  rdoc_options: []
154
68
  require_paths:
155
69
  - lib
@@ -157,15 +71,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
71
  requirements:
158
72
  - - ">="
159
73
  - !ruby/object:Gem::Version
160
- version: 2.5.0
74
+ version: '3.4'
161
75
  required_rubygems_version: !ruby/object:Gem::Requirement
162
76
  requirements:
163
77
  - - ">="
164
78
  - !ruby/object:Gem::Version
165
79
  version: '0'
166
80
  requirements: []
167
- rubygems_version: 3.1.4
168
- signing_key:
81
+ rubygems_version: 3.6.9
169
82
  specification_version: 4
170
83
  summary: LEX::Tasker manages tasks status from Legion
171
84
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,39 +0,0 @@
1
- version: 2.1
2
- orbs:
3
- ruby: circleci/ruby@0.2.1
4
-
5
- jobs:
6
- "rubocop":
7
- docker:
8
- - image: circleci/ruby:2.7
9
- steps:
10
- - checkout
11
- - ruby/load-cache
12
- - ruby/install-deps
13
- - run:
14
- name: Update bundler
15
- command: gem update bundler
16
- - run:
17
- name: Run Rubocop
18
- command: bundle exec rubocop
19
- - ruby/save-cache
20
- "rspec":
21
- docker:
22
- - image: circleci/ruby:2.7
23
- steps:
24
- - checkout
25
- - ruby/load-cache
26
- - ruby/install-deps
27
- - run:
28
- name: Update bundler
29
- command: gem update bundler
30
- - ruby/run-tests
31
- - ruby/save-cache
32
- workflows:
33
- version: 2
34
- rubocop-rspec:
35
- jobs:
36
- - rubocop
37
- - rspec:
38
- requires:
39
- - rubocop
data/Gemfile.lock DELETED
@@ -1,69 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- lex-tasker (0.2.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ast (2.4.1)
10
- codecov (0.2.12)
11
- json
12
- simplecov
13
- diff-lcs (1.4.4)
14
- docile (1.3.2)
15
- json (2.3.1)
16
- parallel (1.19.2)
17
- parser (2.7.2.0)
18
- ast (~> 2.4.1)
19
- rainbow (3.0.0)
20
- rake (13.0.1)
21
- regexp_parser (1.8.2)
22
- rexml (3.2.4)
23
- rspec (3.10.0)
24
- rspec-core (~> 3.10.0)
25
- rspec-expectations (~> 3.10.0)
26
- rspec-mocks (~> 3.10.0)
27
- rspec-core (3.10.0)
28
- rspec-support (~> 3.10.0)
29
- rspec-expectations (3.10.0)
30
- diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.10.0)
32
- rspec-mocks (3.10.0)
33
- diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.10.0)
35
- rspec-support (3.10.0)
36
- rspec_junit_formatter (0.4.1)
37
- rspec-core (>= 2, < 4, != 2.12.0)
38
- rubocop (1.1.0)
39
- parallel (~> 1.10)
40
- parser (>= 2.7.1.5)
41
- rainbow (>= 2.2.2, < 4.0)
42
- regexp_parser (>= 1.8)
43
- rexml
44
- rubocop-ast (>= 1.0.1)
45
- ruby-progressbar (~> 1.7)
46
- unicode-display_width (>= 1.4.0, < 2.0)
47
- rubocop-ast (1.1.0)
48
- parser (>= 2.7.1.5)
49
- ruby-progressbar (1.10.1)
50
- simplecov (0.19.1)
51
- docile (~> 1.1)
52
- simplecov-html (~> 0.11)
53
- simplecov-html (0.12.3)
54
- unicode-display_width (1.7.0)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- bundler (>= 2)
61
- codecov
62
- lex-tasker!
63
- rake
64
- rspec
65
- rspec_junit_formatter
66
- rubocop
67
-
68
- BUNDLED WITH
69
- 2.1.4
@@ -1,19 +0,0 @@
1
- image: ruby:2.7
2
-
3
- pipelines:
4
- tags:
5
- "v*":
6
- - step:
7
- name: Push to RubyGems
8
- deployment: RubyGems
9
- script:
10
- - gem install gem-release
11
- - (umask 077 ; echo $gem_creds | base64 --decode > ~/.gem/credentials)
12
- - gem release
13
- artifacts:
14
- - pkg/**
15
- - step:
16
- name: Push to Docker
17
- deployment: Docker
18
- script:
19
- - './docker_deploy.rb'
@@ -1,11 +0,0 @@
1
- module Legion
2
- module Extensions
3
- module Tasker
4
- module Helpers
5
- module Base
6
- def send_task(**opts); end
7
- end
8
- end
9
- end
10
- end
11
- end