legionio 0.3.1 → 0.4.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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +27 -10
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +7 -2
  5. data/CHANGELOG.md +21 -0
  6. data/Dockerfile +9 -0
  7. data/Gemfile +0 -11
  8. data/README.md +158 -42
  9. data/Rakefile +0 -6
  10. data/bitbucket-pipelines.yml +17 -52
  11. data/docker_deploy.rb +8 -0
  12. data/exe/legion +3 -49
  13. data/{bin/legion → exe/legionio} +5 -42
  14. data/exe/lex_gen +5 -0
  15. data/{legion.gemspec → legionio.gemspec} +25 -20
  16. data/lib/legion.rb +4 -0
  17. data/lib/legion/cli.rb +56 -0
  18. data/lib/legion/cli/chain.rb +35 -0
  19. data/lib/legion/cli/cohort.rb +10 -0
  20. data/lib/legion/cli/function.rb +41 -0
  21. data/lib/legion/cli/lex/actor.rb +31 -0
  22. data/lib/legion/cli/lex/exchange.rb +32 -0
  23. data/lib/legion/cli/lex/message.rb +32 -0
  24. data/lib/legion/cli/lex/queue.rb +45 -0
  25. data/lib/legion/cli/lex/runner.rb +70 -0
  26. data/lib/legion/cli/lex/templates/actor.erb +6 -0
  27. data/lib/legion/cli/lex/templates/actor_spec.erb +0 -0
  28. data/lib/legion/cli/lex/templates/base/bitbucket.yml.erb +69 -0
  29. data/lib/legion/cli/lex/templates/base/gemfile.erb +3 -0
  30. data/lib/legion/cli/lex/templates/base/gemspec.erb +26 -0
  31. data/lib/legion/cli/lex/templates/base/gitignore.erb +11 -0
  32. data/lib/legion/cli/lex/templates/base/lex.erb +9 -0
  33. data/lib/legion/cli/lex/templates/base/lex_spec.erb +5 -0
  34. data/lib/legion/cli/lex/templates/base/lic.erb +21 -0
  35. data/lib/legion/cli/lex/templates/base/rakefile.erb +6 -0
  36. data/lib/legion/cli/lex/templates/base/readme.md.erb +2 -0
  37. data/lib/legion/cli/lex/templates/base/rubocop.yml.erb +15 -0
  38. data/lib/legion/cli/lex/templates/base/spec_helper.rb.erb +11 -0
  39. data/lib/legion/cli/lex/templates/base/version.erb +7 -0
  40. data/lib/legion/cli/lex/templates/exchange.erb +11 -0
  41. data/lib/legion/cli/lex/templates/exchange_spec.erb +0 -0
  42. data/lib/legion/cli/lex/templates/message.erb +23 -0
  43. data/lib/legion/cli/lex/templates/message_spec.erb +0 -0
  44. data/lib/legion/cli/lex/templates/queue.erb +12 -0
  45. data/lib/legion/cli/lex/templates/queue_helper.erb +24 -0
  46. data/lib/legion/cli/lex/templates/queue_spec.erb +11 -0
  47. data/lib/legion/cli/lex/templates/runner.erb +11 -0
  48. data/lib/legion/cli/lex/templates/runner_spec.erb +11 -0
  49. data/lib/legion/cli/relationship.rb +22 -0
  50. data/lib/legion/cli/task.rb +49 -0
  51. data/lib/legion/cli/trigger.rb +88 -0
  52. data/lib/legion/cli/version.rb +5 -0
  53. data/lib/legion/extensions.rb +57 -62
  54. data/lib/legion/extensions/actors/base.rb +0 -2
  55. data/lib/legion/extensions/actors/poll.rb +0 -1
  56. data/lib/legion/extensions/actors/subscription.rb +1 -0
  57. data/lib/legion/extensions/builders/runners.rb +5 -0
  58. data/lib/legion/extensions/core.rb +9 -4
  59. data/lib/legion/extensions/helpers/base.rb +3 -3
  60. data/lib/legion/extensions/helpers/lex.rb +29 -1
  61. data/lib/legion/extensions/helpers/logger.rb +3 -6
  62. data/lib/legion/extensions/helpers/task.rb +1 -1
  63. data/lib/legion/extensions/transport.rb +9 -7
  64. data/lib/legion/lex.rb +89 -0
  65. data/lib/legion/service.rb +55 -4
  66. data/lib/legion/version.rb +1 -1
  67. metadata +196 -51
  68. data/bin/console +0 -16
  69. data/bin/setup +0 -8
  70. data/bin/test +0 -32
  71. data/lib/legion/exceptions/handled_task.rb +0 -6
  72. data/lib/legion/exceptions/invalidjson.rb +0 -5
  73. data/lib/legion/exceptions/missingargument.rb +0 -6
  74. data/lib/legion/exceptions/wrongtype.rb +0 -10
  75. data/lib/legion/exceptions/wrongtypes/array.rb +0 -8
  76. data/lib/legion/exceptions/wrongtypes/hash.rb +0 -8
  77. data/lib/legion/exceptions/wrongtypes/integer.rb +0 -8
  78. data/lib/legion/exceptions/wrongtypes/string.rb +0 -8
  79. data/settings/client.json +0 -25
@@ -2,22 +2,19 @@ module Legion
2
2
  module Extensions
3
3
  module Helpers
4
4
  module Logger
5
- def log # rubocop:disable Metrics/AbcSize
5
+ def log
6
6
  return @log unless @log.nil?
7
7
 
8
8
  logger_hash = { lex: lex_filename || nil }
9
9
  logger_hash[:lex] = lex_filename.first if logger_hash[:lex].is_a? Array
10
10
  if respond_to?(:settings) && settings.key?(:logger)
11
- logger_hash[:level] = settings[:logger][:level] if settings[:logger].key? :level
12
- logger_hash[:level] = settings[:logger][:log_file] if settings[:logger].key? :log_file
13
- logger_hash[:level] = 'info' unless settings[:logger].key? :log_file
11
+ logger_hash[:level] = settings[:logger].key?(:level) ? settings[:logger][:level] : 'info'
12
+ logger_hash[:log_file] = settings[:logger][:log_file] if settings[:logger].key? :log_file
14
13
  logger_hash[:trace] = settings[:logger][:trace] if settings[:logger].key? :trace
15
14
  logger_hash[:extended] = settings[:logger][:extended] if settings[:logger].key? :extended
16
15
  elsif respond_to?(:settings)
17
16
  Legion::Logging.warn Legion::Settings[:extensions][lex_filename.to_sym]
18
17
  Legion::Logging.warn "#{lex_name} has settings but no :logger key"
19
- else
20
- Legion::Logging.warn 'no settings'
21
18
  end
22
19
  @log = Legion::Logging::Logger.new(**logger_hash)
23
20
  end
@@ -30,7 +30,7 @@ module Legion
30
30
  return true
31
31
  end
32
32
  rescue StandardError => e
33
- log.warn("task_update failed, reverting to rmq message, e: #{e.message}")
33
+ log.debug("task_update failed, reverting to rmq message, e: #{e.message}")
34
34
  end
35
35
 
36
36
  update_hash = { task_id: task_id, status: status }
@@ -67,15 +67,17 @@ module Legion
67
67
  end
68
68
 
69
69
  def auto_create_dlx_exchange
70
- return if transport_class::Exchanges.const_defined? 'Dlx'
70
+ dlx = if transport_class::Exchanges.const_defined? 'Dlx'
71
+ transport_class::Exchanges::Dlx
72
+ else
73
+ transport_class::Exchanges.const_set('Dlx', Class.new(default_exchange) do
74
+ def exchange_name
75
+ "#{super}.dlx"
76
+ end
77
+ end)
78
+ end
71
79
 
72
- dlx = transport_class::Exchanges.const_set('Dlx', Class.new(default_exchange) do
73
- def exchange_name
74
- "#{super}.dlx"
75
- end
76
- end)
77
80
  dlx.new
78
- dlx
79
81
  end
80
82
 
81
83
  def auto_create_dlx_queue
@@ -0,0 +1,89 @@
1
+ require 'thor'
2
+ require 'legion/cli/version'
3
+ require 'legion/cli/lex/actor'
4
+ require 'legion/cli/lex/exchange'
5
+ require 'legion/cli/lex/message'
6
+ require 'legion/cli/lex/queue'
7
+ require 'legion/cli/lex/runner'
8
+
9
+ module Legion
10
+ class Cli
11
+ class LexBuilder < Thor
12
+ check_unknown_options!
13
+ include Thor::Actions
14
+
15
+ no_commands do
16
+ def lex
17
+ Dir.pwd.split('/').last.split('-').last
18
+ end
19
+ end
20
+
21
+ def self.exit_on_failure?
22
+ true
23
+ end
24
+
25
+ def self.source_root
26
+ File.dirname(__FILE__)
27
+ end
28
+
29
+ desc 'actor', 'creates and manages actors'
30
+ subcommand 'actor', Legion::Cli::Lex::Actor
31
+
32
+ desc 'exchange', 'creates and manages exchanges'
33
+ subcommand 'exchange', Legion::Cli::Lex::Exchange
34
+
35
+ desc 'messages', 'creates and manages messages'
36
+ subcommand 'message', Legion::Cli::Lex::Message
37
+
38
+ desc 'queue', 'creates and manages queues'
39
+ subcommand 'queue', Legion::Cli::Lex::Queue
40
+
41
+ desc 'runner', 'creates and manages runners'
42
+ subcommand 'runner', Legion::Cli::Lex::Runner
43
+
44
+ desc 'version', 'Display Version'
45
+ map %w[-v --version] => :version
46
+ def version
47
+ say "Legion::CLI #{Legion::Cli::VERSION}"
48
+ end
49
+
50
+ method_option rspec: true
51
+ method_option pipeline: true
52
+ method_option git_init: true
53
+ method_option bundle_install: true
54
+ desc 'create :name', 'creates a new lex'
55
+ def create(name)
56
+ if Dir.pwd.include?('lex-')
57
+ say('already inside a lex_gen, try moving to a different directory', :red)
58
+ return nil
59
+ end
60
+
61
+ vars = { filename: "lex-#{name}", class_name: name.capitalize, lex: name }
62
+ filename = vars[:filename]
63
+ template('cli/lex/templates/base/gemspec.erb', "#{filename}/#{filename}.gemspec", vars)
64
+ template('cli/lex/templates/base/gemfile.erb', "#{filename}/Gemfile", vars)
65
+ template('cli/lex/templates/base/gitignore.erb', "#{filename}/.gitignore", vars)
66
+ template('cli/lex/templates/base/lic.erb', "#{filename}/LICENSE.txt", vars)
67
+ template('cli/lex/templates/base/rakefile.erb', "#{filename}/Rakefile", vars)
68
+ template('cli/lex/templates/base/rubocop.yml.erb', "#{filename}/.rubocop.yml", vars)
69
+ template('cli/lex/templates/base/readme.md.erb', "#{filename}/README.md", **vars)
70
+ template('cli/lex/templates/base/lex.erb', "#{filename}/lib/legion/extensions/#{name}.rb", vars)
71
+ template('cli/lex/templates/base/version.erb', "#{filename}/lib/legion/extensions/#{name}/version.rb", vars)
72
+ template('cli/lex/templates/base/bitbucket.yml.erb', "#{filename}/bitbucket-pipelines.yml", vars) if options[:pipeline]
73
+ template('cli/lex/templates/base/spec_helper.rb.erb', "#{filename}/spec/spec_helper.rb", vars)
74
+ template('cli/lex/templates/base/lex_spec.erb', "#{filename}/spec/legion/#{name}_spec.rb", vars)
75
+
76
+ return if !options[:git_init] && !options[:bundle_install]
77
+
78
+ run("cd lex_gen-#{filename}")
79
+ if options[:git_init]
80
+ run('git init')
81
+ run('git add .')
82
+ run('git commit -m \'Initial commit\'')
83
+ end
84
+
85
+ run('bundle update') if options[:bundle_install]
86
+ end
87
+ end
88
+ end
89
+ end
@@ -20,7 +20,6 @@ module Legion
20
20
  require 'legion/cache' if cache
21
21
 
22
22
  setup_data if data
23
-
24
23
  setup_supervision if supervision
25
24
  require 'legion/runner'
26
25
  load_extensions if extensions
@@ -30,15 +29,44 @@ module Legion
30
29
  end
31
30
 
32
31
  def setup_data
32
+ if RUBY_ENGINE == 'truffleruby'
33
+ Legion::Logging.error 'Legion::Data does not support truffleruby, please use MRI for any LEX that require it '
34
+ Legion::Settings[:data][:connected] = false
35
+ return false
36
+ end
37
+
33
38
  require 'legion/data'
34
39
  Legion::Settings.merge_settings(:data, Legion::Data::Settings.default)
35
40
  Legion::Data.setup
41
+ rescue LoadError
42
+ Legion::Logging.info 'Legion::Data gem is not installed, please install it manually with gem install legion-data'
43
+ rescue StandardError => e
44
+ Legion::Logging.warn "Legion::Data failed to load, starting without it. e: #{e.message}"
45
+ end
46
+
47
+ # noinspection RubyArgCount
48
+ def default_paths
49
+ [
50
+ '/etc/legionio',
51
+ "#{ENV['home']}/legionio",
52
+ '~/legionio',
53
+ './settings'
54
+ ]
36
55
  end
37
56
 
38
- def setup_settings
57
+ def setup_settings(default_dir = __dir__)
39
58
  require 'legion/settings'
40
- Legion::Logging.debug('Loading Legion::Settings')
41
- Legion::Settings.load(config_dir: './settings')
59
+ config_directory = default_dir
60
+ default_paths.each do |path|
61
+ next unless Dir.exist? path
62
+
63
+ Legion::Logging.info "Using #{path} for settings"
64
+ config_directory = path
65
+ break
66
+ end
67
+
68
+ Legion::Logging.info "Using directory #{config_directory} for settings"
69
+ Legion::Settings.load(config_dir: config_directory)
42
70
  Legion::Logging.info('Legion::Settings Loaded')
43
71
  end
44
72
 
@@ -65,10 +93,33 @@ module Legion
65
93
  sleep(0.5)
66
94
  Legion::Extensions.shutdown
67
95
  sleep(1)
96
+ Legion::Data.shutdown if Legion::Settings[:data][:connected]
97
+ Legion::Cache.shutdown
98
+ Legion::Transport::Connection.shutdown
99
+ Legion::Crypt.shutdown
100
+ end
101
+
102
+ def reload
103
+ Legion::Logging.info 'Legion::Service.reload was called'
104
+ Legion::Extensions.shutdown
105
+ sleep(1)
68
106
  Legion::Data.shutdown
69
107
  Legion::Cache.shutdown
70
108
  Legion::Transport::Connection.shutdown
71
109
  Legion::Crypt.shutdown
110
+ Legion::Settings[:client][:ready] = false
111
+
112
+ sleep(5)
113
+ setup_settings
114
+ Legion::Crypt.start
115
+ setup_transport
116
+ setup_data
117
+ setup_supervision
118
+ load_extensions
119
+
120
+ Legion::Crypt.cs
121
+ Legion::Settings[:client][:ready] = true
122
+ Legion::Logging.info 'Legion has been reloaded'
72
123
  end
73
124
 
74
125
  def load_extensions
@@ -1,3 +1,3 @@
1
1
  module Legion
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,17 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legionio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-14 00:00:00.000000000 Z
11
+ date: 2021-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.7
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.7
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: concurrent-ruby-ext
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.7
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: daemons
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: oj
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '3.10'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '3.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: thor
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: legion-cache
15
85
  requirement: !ruby/object:Gem::Requirement
16
86
  requirements:
17
87
  - - ">="
@@ -25,7 +95,21 @@ dependencies:
25
95
  - !ruby/object:Gem::Version
26
96
  version: '0'
27
97
  - !ruby/object:Gem::Dependency
28
- name: legion-data
98
+ name: legion-crypt
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: legion-exceptions
29
113
  requirement: !ruby/object:Gem::Requirement
30
114
  requirements:
31
115
  - - ">="
@@ -39,7 +123,7 @@ dependencies:
39
123
  - !ruby/object:Gem::Version
40
124
  version: '0'
41
125
  - !ruby/object:Gem::Dependency
42
- name: legion-transport
126
+ name: legion-json
43
127
  requirement: !ruby/object:Gem::Requirement
44
128
  requirements:
45
129
  - - ">="
@@ -53,7 +137,7 @@ dependencies:
53
137
  - !ruby/object:Gem::Version
54
138
  version: '0'
55
139
  - !ruby/object:Gem::Dependency
56
- name: oj
140
+ name: legion-logging
57
141
  requirement: !ruby/object:Gem::Requirement
58
142
  requirements:
59
143
  - - ">="
@@ -67,7 +151,7 @@ dependencies:
67
151
  - !ruby/object:Gem::Version
68
152
  version: '0'
69
153
  - !ruby/object:Gem::Dependency
70
- name: concurrent-ruby
154
+ name: legion-settings
71
155
  requirement: !ruby/object:Gem::Requirement
72
156
  requirements:
73
157
  - - ">="
@@ -81,7 +165,21 @@ dependencies:
81
165
  - !ruby/object:Gem::Version
82
166
  version: '0'
83
167
  - !ruby/object:Gem::Dependency
84
- name: daemons
168
+ name: legion-transport
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: 1.1.8
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: 1.1.8
181
+ - !ruby/object:Gem::Dependency
182
+ name: lex-node
85
183
  requirement: !ruby/object:Gem::Requirement
86
184
  requirements:
87
185
  - - ">="
@@ -95,13 +193,13 @@ dependencies:
95
193
  - !ruby/object:Gem::Version
96
194
  version: '0'
97
195
  - !ruby/object:Gem::Dependency
98
- name: hashdiff
196
+ name: codecov
99
197
  requirement: !ruby/object:Gem::Requirement
100
198
  requirements:
101
199
  - - ">="
102
200
  - !ruby/object:Gem::Version
103
201
  version: '0'
104
- type: :runtime
202
+ type: :development
105
203
  prerelease: false
106
204
  version_requirements: !ruby/object:Gem::Requirement
107
205
  requirements:
@@ -109,13 +207,13 @@ dependencies:
109
207
  - !ruby/object:Gem::Version
110
208
  version: '0'
111
209
  - !ruby/object:Gem::Dependency
112
- name: bunny
210
+ name: legion-data
113
211
  requirement: !ruby/object:Gem::Requirement
114
212
  requirements:
115
213
  - - ">="
116
214
  - !ruby/object:Gem::Version
117
215
  version: '0'
118
- type: :runtime
216
+ type: :development
119
217
  prerelease: false
120
218
  version_requirements: !ruby/object:Gem::Requirement
121
219
  requirements:
@@ -123,13 +221,13 @@ dependencies:
123
221
  - !ruby/object:Gem::Version
124
222
  version: '0'
125
223
  - !ruby/object:Gem::Dependency
126
- name: legion-cache
224
+ name: rake
127
225
  requirement: !ruby/object:Gem::Requirement
128
226
  requirements:
129
227
  - - ">="
130
228
  - !ruby/object:Gem::Version
131
229
  version: '0'
132
- type: :runtime
230
+ type: :development
133
231
  prerelease: false
134
232
  version_requirements: !ruby/object:Gem::Requirement
135
233
  requirements:
@@ -137,13 +235,13 @@ dependencies:
137
235
  - !ruby/object:Gem::Version
138
236
  version: '0'
139
237
  - !ruby/object:Gem::Dependency
140
- name: legion-crypt
238
+ name: rspec
141
239
  requirement: !ruby/object:Gem::Requirement
142
240
  requirements:
143
241
  - - ">="
144
242
  - !ruby/object:Gem::Version
145
243
  version: '0'
146
- type: :runtime
244
+ type: :development
147
245
  prerelease: false
148
246
  version_requirements: !ruby/object:Gem::Requirement
149
247
  requirements:
@@ -151,13 +249,13 @@ dependencies:
151
249
  - !ruby/object:Gem::Version
152
250
  version: '0'
153
251
  - !ruby/object:Gem::Dependency
154
- name: legion-exceptions
252
+ name: rspec_junit_formatter
155
253
  requirement: !ruby/object:Gem::Requirement
156
254
  requirements:
157
255
  - - ">="
158
256
  - !ruby/object:Gem::Version
159
257
  version: '0'
160
- type: :runtime
258
+ type: :development
161
259
  prerelease: false
162
260
  version_requirements: !ruby/object:Gem::Requirement
163
261
  requirements:
@@ -165,13 +263,13 @@ dependencies:
165
263
  - !ruby/object:Gem::Version
166
264
  version: '0'
167
265
  - !ruby/object:Gem::Dependency
168
- name: legion-json
266
+ name: rubocop
169
267
  requirement: !ruby/object:Gem::Requirement
170
268
  requirements:
171
269
  - - ">="
172
270
  - !ruby/object:Gem::Version
173
271
  version: '0'
174
- type: :runtime
272
+ type: :development
175
273
  prerelease: false
176
274
  version_requirements: !ruby/object:Gem::Requirement
177
275
  requirements:
@@ -179,13 +277,13 @@ dependencies:
179
277
  - !ruby/object:Gem::Version
180
278
  version: '0'
181
279
  - !ruby/object:Gem::Dependency
182
- name: legion-logging
280
+ name: rubocop-rake
183
281
  requirement: !ruby/object:Gem::Requirement
184
282
  requirements:
185
283
  - - ">="
186
284
  - !ruby/object:Gem::Version
187
285
  version: '0'
188
- type: :runtime
286
+ type: :development
189
287
  prerelease: false
190
288
  version_requirements: !ruby/object:Gem::Requirement
191
289
  requirements:
@@ -193,13 +291,13 @@ dependencies:
193
291
  - !ruby/object:Gem::Version
194
292
  version: '0'
195
293
  - !ruby/object:Gem::Dependency
196
- name: legion-settings
294
+ name: rubocop-rspec
197
295
  requirement: !ruby/object:Gem::Requirement
198
296
  requirements:
199
297
  - - ">="
200
298
  - !ruby/object:Gem::Version
201
299
  version: '0'
202
- type: :runtime
300
+ type: :development
203
301
  prerelease: false
204
302
  version_requirements: !ruby/object:Gem::Requirement
205
303
  requirements:
@@ -207,13 +305,13 @@ dependencies:
207
305
  - !ruby/object:Gem::Version
208
306
  version: '0'
209
307
  - !ruby/object:Gem::Dependency
210
- name: lex-node
308
+ name: simplecov
211
309
  requirement: !ruby/object:Gem::Requirement
212
310
  requirements:
213
311
  - - ">="
214
312
  - !ruby/object:Gem::Version
215
313
  version: '0'
216
- type: :runtime
314
+ type: :development
217
315
  prerelease: false
218
316
  version_requirements: !ruby/object:Gem::Requirement
219
317
  requirements:
@@ -221,7 +319,7 @@ dependencies:
221
319
  - !ruby/object:Gem::Version
222
320
  version: '0'
223
321
  - !ruby/object:Gem::Dependency
224
- name: bundler
322
+ name: lex-conditioner
225
323
  requirement: !ruby/object:Gem::Requirement
226
324
  requirements:
227
325
  - - ">="
@@ -235,7 +333,7 @@ dependencies:
235
333
  - !ruby/object:Gem::Version
236
334
  version: '0'
237
335
  - !ruby/object:Gem::Dependency
238
- name: codecov
336
+ name: lex-health
239
337
  requirement: !ruby/object:Gem::Requirement
240
338
  requirements:
241
339
  - - ">="
@@ -249,7 +347,7 @@ dependencies:
249
347
  - !ruby/object:Gem::Version
250
348
  version: '0'
251
349
  - !ruby/object:Gem::Dependency
252
- name: rake
350
+ name: lex-http
253
351
  requirement: !ruby/object:Gem::Requirement
254
352
  requirements:
255
353
  - - ">="
@@ -263,7 +361,7 @@ dependencies:
263
361
  - !ruby/object:Gem::Version
264
362
  version: '0'
265
363
  - !ruby/object:Gem::Dependency
266
- name: rspec
364
+ name: lex-lex
267
365
  requirement: !ruby/object:Gem::Requirement
268
366
  requirements:
269
367
  - - ">="
@@ -277,7 +375,7 @@ dependencies:
277
375
  - !ruby/object:Gem::Version
278
376
  version: '0'
279
377
  - !ruby/object:Gem::Dependency
280
- name: rspec_junit_formatter
378
+ name: lex-log
281
379
  requirement: !ruby/object:Gem::Requirement
282
380
  requirements:
283
381
  - - ">="
@@ -291,7 +389,7 @@ dependencies:
291
389
  - !ruby/object:Gem::Version
292
390
  version: '0'
293
391
  - !ruby/object:Gem::Dependency
294
- name: rubocop
392
+ name: lex-scheduler
295
393
  requirement: !ruby/object:Gem::Requirement
296
394
  requirements:
297
395
  - - ">="
@@ -305,7 +403,21 @@ dependencies:
305
403
  - !ruby/object:Gem::Version
306
404
  version: '0'
307
405
  - !ruby/object:Gem::Dependency
308
- name: simplecov
406
+ name: lex-tasker
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: '0'
412
+ type: :development
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - ">="
417
+ - !ruby/object:Gem::Version
418
+ version: '0'
419
+ - !ruby/object:Gem::Dependency
420
+ name: lex-transformer
309
421
  requirement: !ruby/object:Gem::Requirement
310
422
  requirements:
311
423
  - - ">="
@@ -323,6 +435,8 @@ email:
323
435
  - matthewdiverson@gmail.com
324
436
  executables:
325
437
  - legion
438
+ - legionio
439
+ - lex_gen
326
440
  extensions: []
327
441
  extra_rdoc_files: []
328
442
  files:
@@ -331,26 +445,54 @@ files:
331
445
  - ".rspec"
332
446
  - ".rubocop.yml"
333
447
  - CHANGELOG.md
448
+ - Dockerfile
334
449
  - Gemfile
335
450
  - LICENSE.txt
336
451
  - README.md
337
452
  - Rakefile
338
- - bin/console
339
- - bin/legion
340
- - bin/setup
341
- - bin/test
342
453
  - bitbucket-pipelines.yml
454
+ - docker_deploy.rb
343
455
  - exe/legion
344
- - legion.gemspec
456
+ - exe/legionio
457
+ - exe/lex_gen
458
+ - legionio.gemspec
345
459
  - lib/legion.rb
346
- - lib/legion/exceptions/handled_task.rb
347
- - lib/legion/exceptions/invalidjson.rb
348
- - lib/legion/exceptions/missingargument.rb
349
- - lib/legion/exceptions/wrongtype.rb
350
- - lib/legion/exceptions/wrongtypes/array.rb
351
- - lib/legion/exceptions/wrongtypes/hash.rb
352
- - lib/legion/exceptions/wrongtypes/integer.rb
353
- - lib/legion/exceptions/wrongtypes/string.rb
460
+ - lib/legion/cli.rb
461
+ - lib/legion/cli/chain.rb
462
+ - lib/legion/cli/cohort.rb
463
+ - lib/legion/cli/function.rb
464
+ - lib/legion/cli/lex/actor.rb
465
+ - lib/legion/cli/lex/exchange.rb
466
+ - lib/legion/cli/lex/message.rb
467
+ - lib/legion/cli/lex/queue.rb
468
+ - lib/legion/cli/lex/runner.rb
469
+ - lib/legion/cli/lex/templates/actor.erb
470
+ - lib/legion/cli/lex/templates/actor_spec.erb
471
+ - lib/legion/cli/lex/templates/base/bitbucket.yml.erb
472
+ - lib/legion/cli/lex/templates/base/gemfile.erb
473
+ - lib/legion/cli/lex/templates/base/gemspec.erb
474
+ - lib/legion/cli/lex/templates/base/gitignore.erb
475
+ - lib/legion/cli/lex/templates/base/lex.erb
476
+ - lib/legion/cli/lex/templates/base/lex_spec.erb
477
+ - lib/legion/cli/lex/templates/base/lic.erb
478
+ - lib/legion/cli/lex/templates/base/rakefile.erb
479
+ - lib/legion/cli/lex/templates/base/readme.md.erb
480
+ - lib/legion/cli/lex/templates/base/rubocop.yml.erb
481
+ - lib/legion/cli/lex/templates/base/spec_helper.rb.erb
482
+ - lib/legion/cli/lex/templates/base/version.erb
483
+ - lib/legion/cli/lex/templates/exchange.erb
484
+ - lib/legion/cli/lex/templates/exchange_spec.erb
485
+ - lib/legion/cli/lex/templates/message.erb
486
+ - lib/legion/cli/lex/templates/message_spec.erb
487
+ - lib/legion/cli/lex/templates/queue.erb
488
+ - lib/legion/cli/lex/templates/queue_helper.erb
489
+ - lib/legion/cli/lex/templates/queue_spec.erb
490
+ - lib/legion/cli/lex/templates/runner.erb
491
+ - lib/legion/cli/lex/templates/runner_spec.erb
492
+ - lib/legion/cli/relationship.rb
493
+ - lib/legion/cli/task.rb
494
+ - lib/legion/cli/trigger.rb
495
+ - lib/legion/cli/version.rb
354
496
  - lib/legion/extensions.rb
355
497
  - lib/legion/extensions/actors/base.rb
356
498
  - lib/legion/extensions/actors/every.rb
@@ -376,6 +518,7 @@ files:
376
518
  - lib/legion/extensions/helpers/task.rb
377
519
  - lib/legion/extensions/helpers/transport.rb
378
520
  - lib/legion/extensions/transport.rb
521
+ - lib/legion/lex.rb
379
522
  - lib/legion/process.rb
380
523
  - lib/legion/runner.rb
381
524
  - lib/legion/runner/log.rb
@@ -383,12 +526,14 @@ files:
383
526
  - lib/legion/service.rb
384
527
  - lib/legion/supervision.rb
385
528
  - lib/legion/version.rb
386
- - settings/client.json
387
529
  homepage: https://bitbucket.org/legion-io/legion/
388
530
  licenses:
389
531
  - MIT
390
- metadata: {}
391
- post_install_message:
532
+ metadata:
533
+ source_code_uri: https://bitbucket.org/legion-io/legion/src/master/
534
+ documentation_uri: https://legionio.atlassian.net/wiki/spaces/LEGION/overview
535
+ bug_tracker_uri: https://legionio.atlassian.net/browse/LEG
536
+ post_install_message:
392
537
  rdoc_options: []
393
538
  require_paths:
394
539
  - lib
@@ -403,8 +548,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
403
548
  - !ruby/object:Gem::Version
404
549
  version: '0'
405
550
  requirements: []
406
- rubygems_version: 3.1.2
407
- signing_key:
551
+ rubygems_version: 3.1.4
552
+ signing_key:
408
553
  specification_version: 4
409
554
  summary: Legion Core Software to string it all together
410
555
  test_files: []