lex-conditioner 0.2.5 → 0.3.1
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/.github/workflows/ci.yml +16 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +36 -20
- data/CHANGELOG.md +27 -0
- data/CLAUDE.md +135 -0
- data/Dockerfile +1 -1
- data/Gemfile +11 -0
- data/README.md +103 -16
- data/Rakefile +2 -0
- data/docker_deploy.rb +1 -0
- data/lex-conditioner.gemspec +19 -18
- data/lib/legion/extensions/conditioner/actors/conditioner.rb +17 -11
- data/lib/legion/extensions/conditioner/client.rb +20 -0
- data/lib/legion/extensions/conditioner/helpers/comparator.rb +68 -7
- data/lib/legion/extensions/conditioner/helpers/condition.rb +59 -24
- data/lib/legion/extensions/conditioner/runners/conditioner.rb +55 -49
- data/lib/legion/extensions/conditioner/transport/exchanges/task.rb +10 -4
- data/lib/legion/extensions/conditioner/transport/messages/conditioner.rb +15 -9
- data/lib/legion/extensions/conditioner/transport/queues/conditioner.rb +12 -6
- data/lib/legion/extensions/conditioner/transport.rb +15 -8
- data/lib/legion/extensions/conditioner/version.rb +3 -1
- data/lib/legion/extensions/conditioner.rb +3 -0
- metadata +55 -40
- data/Gemfile.lock +0 -119
- data/bitbucket-pipelines.yml +0 -19
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require_relative 'comparator'
|
|
2
4
|
|
|
3
5
|
module Legion
|
|
@@ -33,32 +35,19 @@ module Legion
|
|
|
33
35
|
raise Legion::Exception::WrongType::Hash, @conditions.class unless @conditions.is_a? Hash
|
|
34
36
|
end
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
BINARY_OPS = %w[equal not_equal greater_than less_than greater_or_equal less_or_equal between contains starts_with ends_with matches in_set not_in_set
|
|
39
|
+
size_equal].freeze
|
|
40
|
+
UNARY_OPS = %w[nil not_nil is_false is_true is_string is_array is_integer empty not_empty].freeze
|
|
41
|
+
UNARY_METHOD_MAP = {
|
|
42
|
+
'is_false' => :false?, 'is_true' => :true?,
|
|
43
|
+
'is_string' => :string?, 'is_array' => :array?, 'is_integer' => :integer?,
|
|
44
|
+
'empty' => :empty?, 'not_empty' => :not_empty?
|
|
45
|
+
}.freeze
|
|
46
|
+
|
|
47
|
+
def validate_test(conditions = @conditions)
|
|
37
48
|
conditions.each do |condition|
|
|
38
49
|
condition[1].each do |rule|
|
|
39
|
-
result =
|
|
40
|
-
result = validate_test('conditions' => { 'any' => rule[:any] }) if rule.include? :any
|
|
41
|
-
case rule[:operator]
|
|
42
|
-
when 'equal'
|
|
43
|
-
result = Legion::Extensions::Conditioner::Comparator.equal?(rule[:fact], rule[:value], @values)
|
|
44
|
-
when 'not_equal'
|
|
45
|
-
result = Legion::Extensions::Conditioner::Comparator.not_equal?(rule[:fact], rule[:value], @values)
|
|
46
|
-
when 'nil'
|
|
47
|
-
result = Legion::Extensions::Conditioner::Comparator.nil?(rule[:fact], @values)
|
|
48
|
-
when 'not_nil'
|
|
49
|
-
result = Legion::Extensions::Conditioner::Comparator.not_nil?(rule[:fact], @values)
|
|
50
|
-
when 'is_false'
|
|
51
|
-
result = Legion::Extensions::Conditioner::Comparator.is_false?(rule[:fact], @values)
|
|
52
|
-
when 'is_true'
|
|
53
|
-
result = Legion::Extensions::Conditioner::Comparator.is_true?(rule[:fact], @values)
|
|
54
|
-
when 'is_string'
|
|
55
|
-
result = Legion::Extensions::Conditioner::Comparator.is_string?(rule[:fact], @values)
|
|
56
|
-
when 'is_array'
|
|
57
|
-
result = Legion::Extensions::Conditioner::Comparator.is_array?(rule[:fact], @values)
|
|
58
|
-
when 'is_integer'
|
|
59
|
-
result = Legion::Extensions::Conditioner::Comparator.is_integer?(rule[:fact], @values)
|
|
60
|
-
end
|
|
61
|
-
|
|
50
|
+
result = evaluate_rule(rule)
|
|
62
51
|
return true if condition[0] == :any && result == true
|
|
63
52
|
return false if condition[0] == :all && result == false
|
|
64
53
|
end
|
|
@@ -67,10 +56,56 @@ module Legion
|
|
|
67
56
|
end
|
|
68
57
|
end
|
|
69
58
|
|
|
59
|
+
def evaluate_rule(rule)
|
|
60
|
+
return validate_test(all: rule[:all]) if rule.include?(:all)
|
|
61
|
+
return validate_test(any: rule[:any]) if rule.include?(:any)
|
|
62
|
+
|
|
63
|
+
comp = Legion::Extensions::Conditioner::Comparator
|
|
64
|
+
op = rule[:operator]
|
|
65
|
+
|
|
66
|
+
if BINARY_OPS.include?(op)
|
|
67
|
+
comp.send(:"#{op}?", rule[:fact], rule[:value], @values)
|
|
68
|
+
elsif UNARY_OPS.include?(op)
|
|
69
|
+
method_name = UNARY_METHOD_MAP[op] || :"#{op}?"
|
|
70
|
+
comp.send(method_name, rule[:fact], @values)
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
70
74
|
def valid?
|
|
71
75
|
@valid = validate_test if @valid.nil?
|
|
72
76
|
@valid
|
|
73
77
|
end
|
|
78
|
+
|
|
79
|
+
def explain_test(conditions = @conditions)
|
|
80
|
+
group = conditions.keys.first
|
|
81
|
+
rules = conditions[group].map do |rule|
|
|
82
|
+
explain_rule(rule)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
valid = group == :all ? rules.all? { |r| r[:result] } : rules.any? { |r| r[:result] }
|
|
86
|
+
{ valid: valid, group: group, rules: rules }
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def explain_rule(rule)
|
|
90
|
+
if rule.include?(:all)
|
|
91
|
+
result = explain_test(all: rule[:all])
|
|
92
|
+
return { group: :all, rules: result[:rules], result: result[:valid] }
|
|
93
|
+
end
|
|
94
|
+
if rule.include?(:any)
|
|
95
|
+
result = explain_test(any: rule[:any])
|
|
96
|
+
return { group: :any, rules: result[:rules], result: result[:valid] }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
result = evaluate_rule(rule)
|
|
100
|
+
explanation = { fact: rule[:fact], operator: rule[:operator], result: result }
|
|
101
|
+
explanation[:value] = rule[:value] if rule.key?(:value)
|
|
102
|
+
explanation[:actual] = @values[rule[:fact]]
|
|
103
|
+
explanation
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def explain
|
|
107
|
+
@explain ||= explain_test
|
|
108
|
+
end
|
|
74
109
|
end
|
|
75
110
|
end
|
|
76
111
|
end
|
|
@@ -1,61 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'legion/extensions/conditioner/helpers/condition'
|
|
2
4
|
|
|
3
|
-
module Legion
|
|
4
|
-
module
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
5
7
|
module Conditioner
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'transformation.queued'
|
|
13
|
-
elsif conditioner.valid? && payload.key?(:runner_routing_key)
|
|
14
|
-
'task.queued'
|
|
15
|
-
elsif conditioner.valid?
|
|
16
|
-
'task.exception'
|
|
17
|
-
else
|
|
18
|
-
'conditioner.failed'
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
send_task(**payload) unless status == 'conditioner.failed'
|
|
22
|
-
task_update(payload[:task_id], status, **payload) unless payload[:task_id].nil?
|
|
23
|
-
|
|
24
|
-
if payload[:debug] && payload.key?(:task_id)
|
|
25
|
-
generate_task_log(task_id: payload[:task_id],
|
|
26
|
-
function: 'check',
|
|
27
|
-
valid: conditioner.valid?,
|
|
28
|
-
conditions: payload[:conditions],
|
|
29
|
-
values: payload)
|
|
30
|
-
end
|
|
8
|
+
module Runners
|
|
9
|
+
module Conditioner
|
|
10
|
+
def check(conditions:, **payload)
|
|
11
|
+
conditioner = Legion::Extensions::Conditioner::Condition.new(conditions: conditions,
|
|
12
|
+
values: payload,
|
|
13
|
+
type: payload[:type])
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
15
|
+
status = if conditioner.valid? && payload.key?(:transformation)
|
|
16
|
+
'transformation.queued'
|
|
17
|
+
elsif conditioner.valid? && payload.key?(:runner_routing_key)
|
|
18
|
+
'task.queued'
|
|
19
|
+
elsif conditioner.valid?
|
|
20
|
+
'task.exception'
|
|
21
|
+
else
|
|
22
|
+
'conditioner.failed'
|
|
23
|
+
end
|
|
39
24
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
%i[runner_routing_key relationship_id chain_id trigger_runner_id trigger_function_id funciton_id function runner_id runner_class transformation debug task_id results].each do |column| # rubocop:disable Layout/LineLength
|
|
43
|
-
subtask_hash[column] = opts[column] if opts.key? column
|
|
44
|
-
end
|
|
25
|
+
send_task(**payload) unless status == 'conditioner.failed'
|
|
26
|
+
task_update(payload[:task_id], status, **payload) unless payload[:task_id].nil?
|
|
45
27
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
28
|
+
if payload[:debug] && payload.key?(:task_id)
|
|
29
|
+
generate_task_log(task_id: payload[:task_id],
|
|
30
|
+
function: 'check',
|
|
31
|
+
valid: conditioner.valid?,
|
|
32
|
+
conditions: payload[:conditions],
|
|
33
|
+
values: payload)
|
|
34
|
+
end
|
|
51
35
|
|
|
52
|
-
|
|
36
|
+
{ success: true, valid: conditioner.valid? }
|
|
37
|
+
rescue StandardError => e
|
|
38
|
+
log.error 'LEX::Conditioner::Runners::Condition had an exception'
|
|
39
|
+
log.warn e.message
|
|
40
|
+
log.warn e.backtrace
|
|
41
|
+
task_update(payload[:task_id], 'conditioner.exception', **payload) unless payload[:task_id].nil?
|
|
42
|
+
end
|
|
53
43
|
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
def send_task(**opts)
|
|
45
|
+
subtask_hash = {}
|
|
46
|
+
%i[runner_routing_key relationship_id chain_id trigger_runner_id trigger_function_id function_id function runner_id runner_class transformation debug task_id results].each do |column| # rubocop:disable Layout/LineLength
|
|
47
|
+
subtask_hash[column] = opts[column] if opts.key? column
|
|
48
|
+
end
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
|
|
50
|
+
subtask_hash[:routing_key] = if subtask_hash.key? :transformation
|
|
51
|
+
'task.subtask.transform'
|
|
52
|
+
elsif subtask_hash.key? :runner_routing_key
|
|
53
|
+
subtask_hash[:runner_routing_key]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
raise Legion::Exception::MissingArgument 'Missing :routing_key' unless subtask_hash.key? :routing_key
|
|
57
|
+
|
|
58
|
+
Legion::Transport::Messages::SubTask.new(**subtask_hash).publish
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
include Legion::Extensions::Helpers::Lex
|
|
62
|
+
include Legion::Extensions::Helpers::Task
|
|
63
|
+
end
|
|
64
|
+
end
|
|
59
65
|
end
|
|
60
66
|
end
|
|
61
67
|
end
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Conditioner
|
|
6
|
+
module Transport
|
|
7
|
+
module Exchanges
|
|
8
|
+
class Conditioner < Legion::Transport::Exchanges::Task
|
|
9
|
+
end
|
|
10
|
+
end
|
|
5
11
|
end
|
|
6
12
|
end
|
|
7
13
|
end
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Conditioner
|
|
6
|
+
module Transport
|
|
7
|
+
module Messages
|
|
8
|
+
class Conditioner < Legion::Transport::Message
|
|
9
|
+
def routing_key
|
|
10
|
+
'task.conditioner.succeeded'
|
|
11
|
+
end
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
def exchange
|
|
14
|
+
Legion::Transport::Exchanges::Task
|
|
15
|
+
end
|
|
16
|
+
end
|
|
11
17
|
end
|
|
12
18
|
end
|
|
13
19
|
end
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Legion
|
|
4
|
+
module Extensions
|
|
5
|
+
module Conditioner
|
|
6
|
+
module Transport
|
|
7
|
+
module Queues
|
|
8
|
+
class Conditioner < Legion::Transport::Queue
|
|
9
|
+
def queue_name
|
|
10
|
+
'task.conditioner'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
7
13
|
end
|
|
8
14
|
end
|
|
9
15
|
end
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'legion/extensions/transport'
|
|
2
4
|
|
|
3
|
-
module Legion
|
|
4
|
-
module
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
module Legion
|
|
6
|
+
module Extensions
|
|
7
|
+
module Conditioner
|
|
8
|
+
module Transport
|
|
9
|
+
extend Legion::Extensions::Transport
|
|
10
|
+
|
|
11
|
+
def self.additional_e_to_q
|
|
12
|
+
[
|
|
13
|
+
{ from: 'task', to: 'conditioner', routing_key: 'task.subtask' },
|
|
14
|
+
{ from: 'task', to: 'conditioner', routing_key: 'task.subtask.conditioner' }
|
|
15
|
+
]
|
|
16
|
+
end
|
|
17
|
+
end
|
|
11
18
|
end
|
|
12
19
|
end
|
|
13
20
|
end
|
metadata
CHANGED
|
@@ -1,120 +1,136 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lex-conditioner
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Esity
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
13
|
+
name: legion-cache
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
20
|
-
type: :
|
|
18
|
+
version: 1.3.11
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 1.3.11
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: legion-crypt
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 1.4.9
|
|
33
|
+
type: :runtime
|
|
21
34
|
prerelease: false
|
|
22
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
36
|
requirements:
|
|
24
37
|
- - ">="
|
|
25
38
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
39
|
+
version: 1.4.9
|
|
27
40
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
41
|
+
name: legion-data
|
|
29
42
|
requirement: !ruby/object:Gem::Requirement
|
|
30
43
|
requirements:
|
|
31
44
|
- - ">="
|
|
32
45
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
34
|
-
type: :
|
|
46
|
+
version: 1.4.17
|
|
47
|
+
type: :runtime
|
|
35
48
|
prerelease: false
|
|
36
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
50
|
requirements:
|
|
38
51
|
- - ">="
|
|
39
52
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
53
|
+
version: 1.4.17
|
|
41
54
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
55
|
+
name: legion-json
|
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
|
44
57
|
requirements:
|
|
45
58
|
- - ">="
|
|
46
59
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
48
|
-
type: :
|
|
60
|
+
version: 1.2.1
|
|
61
|
+
type: :runtime
|
|
49
62
|
prerelease: false
|
|
50
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
64
|
requirements:
|
|
52
65
|
- - ">="
|
|
53
66
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
67
|
+
version: 1.2.1
|
|
55
68
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
69
|
+
name: legion-logging
|
|
57
70
|
requirement: !ruby/object:Gem::Requirement
|
|
58
71
|
requirements:
|
|
59
72
|
- - ">="
|
|
60
73
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
62
|
-
type: :
|
|
74
|
+
version: 1.3.2
|
|
75
|
+
type: :runtime
|
|
63
76
|
prerelease: false
|
|
64
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
78
|
requirements:
|
|
66
79
|
- - ">="
|
|
67
80
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
81
|
+
version: 1.3.2
|
|
69
82
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
83
|
+
name: legion-settings
|
|
71
84
|
requirement: !ruby/object:Gem::Requirement
|
|
72
85
|
requirements:
|
|
73
86
|
- - ">="
|
|
74
87
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
76
|
-
type: :
|
|
88
|
+
version: 1.3.14
|
|
89
|
+
type: :runtime
|
|
77
90
|
prerelease: false
|
|
78
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
92
|
requirements:
|
|
80
93
|
- - ">="
|
|
81
94
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
95
|
+
version: 1.3.14
|
|
83
96
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: legion-
|
|
97
|
+
name: legion-transport
|
|
85
98
|
requirement: !ruby/object:Gem::Requirement
|
|
86
99
|
requirements:
|
|
87
100
|
- - ">="
|
|
88
101
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
102
|
+
version: 1.3.9
|
|
90
103
|
type: :runtime
|
|
91
104
|
prerelease: false
|
|
92
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
106
|
requirements:
|
|
94
107
|
- - ">="
|
|
95
108
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
97
|
-
description:
|
|
109
|
+
version: 1.3.9
|
|
110
|
+
description: Evaluates JSON-based rules against task payloads with 18+ operators,
|
|
111
|
+
structured explanations, and standalone client support
|
|
98
112
|
email:
|
|
99
113
|
- matthewdiverson@gmail.com
|
|
100
114
|
executables: []
|
|
101
115
|
extensions: []
|
|
102
116
|
extra_rdoc_files: []
|
|
103
117
|
files:
|
|
118
|
+
- ".github/workflows/ci.yml"
|
|
104
119
|
- ".gitignore"
|
|
105
120
|
- ".rspec"
|
|
106
121
|
- ".rubocop.yml"
|
|
122
|
+
- CHANGELOG.md
|
|
123
|
+
- CLAUDE.md
|
|
107
124
|
- Dockerfile
|
|
108
125
|
- Gemfile
|
|
109
|
-
- Gemfile.lock
|
|
110
126
|
- LICENSE.txt
|
|
111
127
|
- README.md
|
|
112
128
|
- Rakefile
|
|
113
|
-
- bitbucket-pipelines.yml
|
|
114
129
|
- docker_deploy.rb
|
|
115
130
|
- lex-conditioner.gemspec
|
|
116
131
|
- lib/legion/extensions/conditioner.rb
|
|
117
132
|
- lib/legion/extensions/conditioner/actors/conditioner.rb
|
|
133
|
+
- lib/legion/extensions/conditioner/client.rb
|
|
118
134
|
- lib/legion/extensions/conditioner/helpers/comparator.rb
|
|
119
135
|
- lib/legion/extensions/conditioner/helpers/condition.rb
|
|
120
136
|
- lib/legion/extensions/conditioner/runners/conditioner.rb
|
|
@@ -123,16 +139,16 @@ files:
|
|
|
123
139
|
- lib/legion/extensions/conditioner/transport/messages/conditioner.rb
|
|
124
140
|
- lib/legion/extensions/conditioner/transport/queues/conditioner.rb
|
|
125
141
|
- lib/legion/extensions/conditioner/version.rb
|
|
126
|
-
homepage: https://
|
|
142
|
+
homepage: https://github.com/LegionIO/lex-conditioner
|
|
127
143
|
licenses:
|
|
128
144
|
- MIT
|
|
129
145
|
metadata:
|
|
130
|
-
homepage_uri: https://
|
|
131
|
-
source_code_uri: https://
|
|
132
|
-
documentation_uri: https://
|
|
133
|
-
changelog_uri: https://
|
|
134
|
-
bug_tracker_uri: https://
|
|
135
|
-
|
|
146
|
+
homepage_uri: https://github.com/LegionIO/lex-conditioner
|
|
147
|
+
source_code_uri: https://github.com/LegionIO/lex-conditioner
|
|
148
|
+
documentation_uri: https://github.com/LegionIO/lex-conditioner
|
|
149
|
+
changelog_uri: https://github.com/LegionIO/lex-conditioner/blob/main/CHANGELOG.md
|
|
150
|
+
bug_tracker_uri: https://github.com/LegionIO/lex-conditioner/issues
|
|
151
|
+
rubygems_mfa_required: 'true'
|
|
136
152
|
rdoc_options: []
|
|
137
153
|
require_paths:
|
|
138
154
|
- lib
|
|
@@ -140,15 +156,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
140
156
|
requirements:
|
|
141
157
|
- - ">="
|
|
142
158
|
- !ruby/object:Gem::Version
|
|
143
|
-
version:
|
|
159
|
+
version: '3.4'
|
|
144
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
161
|
requirements:
|
|
146
162
|
- - ">="
|
|
147
163
|
- !ruby/object:Gem::Version
|
|
148
164
|
version: '0'
|
|
149
165
|
requirements: []
|
|
150
|
-
rubygems_version: 3.
|
|
151
|
-
signing_key:
|
|
166
|
+
rubygems_version: 3.6.9
|
|
152
167
|
specification_version: 4
|
|
153
|
-
summary:
|
|
168
|
+
summary: Conditional rule engine for LegionIO task chains
|
|
154
169
|
test_files: []
|
data/Gemfile.lock
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
lex-conditioner (0.2.5)
|
|
5
|
-
legion-exceptions
|
|
6
|
-
|
|
7
|
-
GEM
|
|
8
|
-
remote: https://rubygems.org/
|
|
9
|
-
specs:
|
|
10
|
-
amq-protocol (2.3.2)
|
|
11
|
-
ast (2.4.2)
|
|
12
|
-
aws-eventstream (1.1.0)
|
|
13
|
-
aws-sigv4 (1.2.2)
|
|
14
|
-
aws-eventstream (~> 1, >= 1.0.2)
|
|
15
|
-
bunny (2.17.0)
|
|
16
|
-
amq-protocol (~> 2.3, >= 2.3.1)
|
|
17
|
-
concurrent-ruby (1.1.8)
|
|
18
|
-
concurrent-ruby-ext (1.1.8)
|
|
19
|
-
concurrent-ruby (= 1.1.8)
|
|
20
|
-
connection_pool (2.2.3)
|
|
21
|
-
daemons (1.3.1)
|
|
22
|
-
dalli (2.7.11)
|
|
23
|
-
diff-lcs (1.4.4)
|
|
24
|
-
docile (1.3.5)
|
|
25
|
-
json_pure (2.5.1)
|
|
26
|
-
legion-cache (1.1.1)
|
|
27
|
-
connection_pool (>= 2.2.3)
|
|
28
|
-
dalli (>= 2.7)
|
|
29
|
-
redis (>= 4.2)
|
|
30
|
-
legion-crypt (0.3.0)
|
|
31
|
-
vault (>= 0.15.0)
|
|
32
|
-
legion-exceptions (1.1.5)
|
|
33
|
-
legion-json (1.1.4)
|
|
34
|
-
json_pure
|
|
35
|
-
legion-exceptions (>= 1.1.5)
|
|
36
|
-
multi_json
|
|
37
|
-
legion-logging (1.1.4)
|
|
38
|
-
rainbow (~> 3)
|
|
39
|
-
legion-settings (1.1.3)
|
|
40
|
-
legion-json
|
|
41
|
-
legion-logging
|
|
42
|
-
legion-transport (1.1.9)
|
|
43
|
-
bunny (>= 2.17.0)
|
|
44
|
-
concurrent-ruby (>= 1.1.7)
|
|
45
|
-
legion-json
|
|
46
|
-
legionio (0.4.3)
|
|
47
|
-
concurrent-ruby (>= 1.1.7)
|
|
48
|
-
concurrent-ruby-ext (>= 1.1.7)
|
|
49
|
-
daemons (>= 1.3.1)
|
|
50
|
-
legion-cache
|
|
51
|
-
legion-crypt (>= 0.2.0)
|
|
52
|
-
legion-exceptions
|
|
53
|
-
legion-json
|
|
54
|
-
legion-logging
|
|
55
|
-
legion-settings
|
|
56
|
-
legion-transport (>= 1.1.9)
|
|
57
|
-
lex-node
|
|
58
|
-
oj (>= 3.10)
|
|
59
|
-
thor (>= 1)
|
|
60
|
-
lex-node (0.1.7)
|
|
61
|
-
multi_json (1.15.0)
|
|
62
|
-
oj (3.11.2)
|
|
63
|
-
parallel (1.20.1)
|
|
64
|
-
parser (3.0.0.0)
|
|
65
|
-
ast (~> 2.4.1)
|
|
66
|
-
rainbow (3.0.0)
|
|
67
|
-
rake (13.0.3)
|
|
68
|
-
redis (4.2.5)
|
|
69
|
-
regexp_parser (2.1.1)
|
|
70
|
-
rexml (3.2.4)
|
|
71
|
-
rspec (3.10.0)
|
|
72
|
-
rspec-core (~> 3.10.0)
|
|
73
|
-
rspec-expectations (~> 3.10.0)
|
|
74
|
-
rspec-mocks (~> 3.10.0)
|
|
75
|
-
rspec-core (3.10.1)
|
|
76
|
-
rspec-support (~> 3.10.0)
|
|
77
|
-
rspec-expectations (3.10.1)
|
|
78
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
79
|
-
rspec-support (~> 3.10.0)
|
|
80
|
-
rspec-mocks (3.10.2)
|
|
81
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
82
|
-
rspec-support (~> 3.10.0)
|
|
83
|
-
rspec-support (3.10.2)
|
|
84
|
-
rubocop (1.11.0)
|
|
85
|
-
parallel (~> 1.10)
|
|
86
|
-
parser (>= 3.0.0.0)
|
|
87
|
-
rainbow (>= 2.2.2, < 4.0)
|
|
88
|
-
regexp_parser (>= 1.8, < 3.0)
|
|
89
|
-
rexml
|
|
90
|
-
rubocop-ast (>= 1.2.0, < 2.0)
|
|
91
|
-
ruby-progressbar (~> 1.7)
|
|
92
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
|
93
|
-
rubocop-ast (1.4.1)
|
|
94
|
-
parser (>= 2.7.1.5)
|
|
95
|
-
ruby-progressbar (1.11.0)
|
|
96
|
-
simplecov (0.21.2)
|
|
97
|
-
docile (~> 1.1)
|
|
98
|
-
simplecov-html (~> 0.11)
|
|
99
|
-
simplecov_json_formatter (~> 0.1)
|
|
100
|
-
simplecov-html (0.12.3)
|
|
101
|
-
simplecov_json_formatter (0.1.2)
|
|
102
|
-
thor (1.1.0)
|
|
103
|
-
unicode-display_width (2.0.0)
|
|
104
|
-
vault (0.15.0)
|
|
105
|
-
aws-sigv4
|
|
106
|
-
|
|
107
|
-
PLATFORMS
|
|
108
|
-
ruby
|
|
109
|
-
|
|
110
|
-
DEPENDENCIES
|
|
111
|
-
legionio
|
|
112
|
-
lex-conditioner!
|
|
113
|
-
rake
|
|
114
|
-
rspec
|
|
115
|
-
rubocop
|
|
116
|
-
simplecov
|
|
117
|
-
|
|
118
|
-
BUNDLED WITH
|
|
119
|
-
2.2.6
|