lex-transformer 0.1.3 → 0.1.4
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/.rubocop.yml +3 -2
- data/Dockerfile +9 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +35 -14
- data/bitbucket-pipelines.yml +19 -0
- data/docker_deploy.rb +13 -0
- data/lex-transformer.gemspec +8 -10
- data/lib/legion/extensions/transformer.rb +5 -2
- data/lib/legion/extensions/transformer/runners/transform.rb +19 -14
- data/lib/legion/extensions/transformer/version.rb +1 -1
- metadata +29 -13
- data/.circleci/config.yml +0 -61
- data/bin/console +0 -14
- data/bin/setup +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24dbbb177015cc67b411b4992d4b220082ae85fc3740a233439ba983ab496736
|
4
|
+
data.tar.gz: 5b836b34ed00f6937773638ea9dc9056e224f64b785ceb55b03bb0381c3ab899
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0b9b63fa282d53dff4b096a585788cec55440b178eeaa6b2b2b93ebd5caa7323b671f135e0a85e8f6bf3a970ce651fd1054f5b3305c7ff707afdf500911e524
|
7
|
+
data.tar.gz: fa7c078497b01e4a89ebfa10401e38f79a8914e2778e5737ede513e7e17571cd6b481ebf02b61b478bf753db4d2edc2c4da1acbc515c343db8ab33e0faf9690c
|
data/.rubocop.yml
CHANGED
@@ -9,9 +9,9 @@ Metrics/BlockLength:
|
|
9
9
|
Metrics/PerceivedComplexity:
|
10
10
|
Max: 20
|
11
11
|
Metrics/CyclomaticComplexity:
|
12
|
-
Max:
|
12
|
+
Max: 117
|
13
13
|
Metrics/AbcSize:
|
14
|
-
Max:
|
14
|
+
Max: 52
|
15
15
|
Layout/SpaceAroundEqualsInParameterDefault:
|
16
16
|
EnforcedStyle: space
|
17
17
|
Style/SymbolArray:
|
@@ -24,6 +24,7 @@ Style/Documentation:
|
|
24
24
|
AllCops:
|
25
25
|
TargetRubyVersion: 2.5
|
26
26
|
NewCops: enable
|
27
|
+
SuggestExtensions: false
|
27
28
|
Style/FrozenStringLiteralComment:
|
28
29
|
Enabled: false
|
29
30
|
Naming/FileName:
|
data/Dockerfile
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
FROM legionio/legion:latest
|
2
|
+
LABEL maintainer="Matthew Iverson <matthewdiverson@gmail.com>"
|
3
|
+
|
4
|
+
RUN mkdir /etc/legionio
|
5
|
+
RUN apk update && apk add build-base tzdata gcc git
|
6
|
+
|
7
|
+
COPY . ./
|
8
|
+
RUN gem install lex-transformer legion-data --no-document --no-prerelease
|
9
|
+
CMD ruby --jit $(which legionio)
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,37 +1,58 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
lex-transformer (0.1.
|
4
|
+
lex-transformer (0.1.4)
|
5
5
|
tilt
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
+
ast (2.4.2)
|
10
11
|
diff-lcs (1.4.4)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
rspec
|
12
|
+
parallel (1.20.1)
|
13
|
+
parser (3.0.0.0)
|
14
|
+
ast (~> 2.4.1)
|
15
|
+
rainbow (3.0.0)
|
16
|
+
rake (13.0.3)
|
17
|
+
regexp_parser (2.1.1)
|
18
|
+
rexml (3.2.4)
|
19
|
+
rspec (3.10.0)
|
20
|
+
rspec-core (~> 3.10.0)
|
21
|
+
rspec-expectations (~> 3.10.0)
|
22
|
+
rspec-mocks (~> 3.10.0)
|
23
|
+
rspec-core (3.10.1)
|
24
|
+
rspec-support (~> 3.10.0)
|
25
|
+
rspec-expectations (3.10.1)
|
19
26
|
diff-lcs (>= 1.2.0, < 2.0)
|
20
|
-
rspec-support (~> 3.
|
21
|
-
rspec-mocks (3.
|
27
|
+
rspec-support (~> 3.10.0)
|
28
|
+
rspec-mocks (3.10.2)
|
22
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
23
|
-
rspec-support (~> 3.
|
24
|
-
rspec-support (3.
|
30
|
+
rspec-support (~> 3.10.0)
|
31
|
+
rspec-support (3.10.2)
|
32
|
+
rubocop (1.11.0)
|
33
|
+
parallel (~> 1.10)
|
34
|
+
parser (>= 3.0.0.0)
|
35
|
+
rainbow (>= 2.2.2, < 4.0)
|
36
|
+
regexp_parser (>= 1.8, < 3.0)
|
37
|
+
rexml
|
38
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
39
|
+
ruby-progressbar (~> 1.7)
|
40
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
41
|
+
rubocop-ast (1.4.1)
|
42
|
+
parser (>= 2.7.1.5)
|
43
|
+
ruby-progressbar (1.11.0)
|
25
44
|
tilt (2.0.10)
|
45
|
+
unicode-display_width (2.0.0)
|
26
46
|
|
27
47
|
PLATFORMS
|
28
48
|
ruby
|
29
49
|
|
30
50
|
DEPENDENCIES
|
31
|
-
bundler
|
51
|
+
bundler (>= 2)
|
32
52
|
lex-transformer!
|
33
53
|
rake
|
34
54
|
rspec
|
55
|
+
rubocop
|
35
56
|
|
36
57
|
BUNDLED WITH
|
37
58
|
2.1.4
|
@@ -0,0 +1,19 @@
|
|
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'
|
data/docker_deploy.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
name = 'transformer'
|
4
|
+
require "./lib/legion/extensions/#{name}/version"
|
5
|
+
version = Legion::Extensions::Transformer::VERSION
|
6
|
+
|
7
|
+
puts "Building docker image for Legion v#{version}"
|
8
|
+
system("docker build --tag legionio/lex-#{name}:v#{version} .")
|
9
|
+
puts 'Pushing to hub.docker.com'
|
10
|
+
system("docker push legionio/lex-#{name}:v#{version}")
|
11
|
+
system("docker tag legionio/lex-#{name}:v#{version} legionio/lex-#{name}:latest")
|
12
|
+
system("docker push legionio/lex-#{name}:latest")
|
13
|
+
puts 'completed'
|
data/lex-transformer.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'legion/extensions/transformer/version'
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'lex-transformer'
|
7
7
|
spec.version = Legion::Extensions::Transformer::VERSION
|
8
|
-
spec.authors = ['
|
8
|
+
spec.authors = ['Esity']
|
9
9
|
spec.email = ['matthewdiverson@gmail.com']
|
10
10
|
|
11
11
|
spec.summary = 'LEX-Transformer is used to transform payloads for the output'
|
@@ -14,14 +14,11 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = 'MIT'
|
15
15
|
spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
23
|
-
'public gem pushes.'
|
24
|
-
end
|
17
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
18
|
+
spec.metadata['source_code_uri'] = 'https://bitbucket.org/legion-io/lex-transformer'
|
19
|
+
spec.metadata['documentation_uri'] = 'https://legionio.atlassian.net/wiki/spaces/LEX/pages/612270222'
|
20
|
+
spec.metadata['changelog_uri'] = 'https://legionio.atlassian.net/wiki/spaces/LEX/pages/614858842'
|
21
|
+
spec.metadata['bug_tracker_uri'] = 'https://bitbucket.org/legion-io/lex-transformer/issues'
|
25
22
|
|
26
23
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
27
24
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -30,7 +27,8 @@ Gem::Specification.new do |spec|
|
|
30
27
|
|
31
28
|
spec.add_dependency 'tilt'
|
32
29
|
|
33
|
-
spec.add_development_dependency 'bundler'
|
30
|
+
spec.add_development_dependency 'bundler', '>= 2'
|
34
31
|
spec.add_development_dependency 'rake'
|
35
32
|
spec.add_development_dependency 'rspec'
|
33
|
+
spec.add_development_dependency 'rubocop'
|
36
34
|
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'legion/extensions/transformer/version'
|
2
|
-
require 'legion/extensions'
|
3
2
|
|
4
3
|
module Legion
|
5
4
|
module Extensions
|
6
5
|
module Transformer
|
7
|
-
extend Legion::Extensions::Core
|
6
|
+
extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
|
7
|
+
|
8
|
+
def self.data_required?
|
9
|
+
true
|
10
|
+
end
|
8
11
|
|
9
12
|
def data_required?
|
10
13
|
true
|
@@ -2,27 +2,30 @@ require 'tilt'
|
|
2
2
|
|
3
3
|
module Legion::Extensions::Transformer
|
4
4
|
module Runners
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
module Transform
|
6
|
+
def transform(transformation:, **payload)
|
7
|
+
if transformation.include?('<%') || transformation.include?('%>')
|
8
|
+
template = Tilt['erb'].new { transformation }
|
9
|
+
variables = { **payload }
|
10
|
+
variables[:crypt] = Legion::Crypt if transformation.include? 'crypt'
|
11
|
+
variables[:settings] = Legion::Settings if transformation.include? 'settings'
|
12
|
+
variables[:cache] = Legion::Cache if transformation.include? 'cache'
|
13
|
+
if payload.key?(:task_id) && transformation.include?('task')
|
14
|
+
variables[:task] = Legion::Data::Model::Task[payload[:task_id]]
|
15
|
+
end
|
8
16
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
variables[:crypt] = Legion::Crypt if transformation.include? 'crypt'
|
13
|
-
variables[:settings] = Legion::Settings if transformation.include? 'settings'
|
14
|
-
variables[:cache] = Legion::Cache if transformation.include? 'cache'
|
15
|
-
if payload.key?(:task_id) && transformation.include?('task')
|
16
|
-
variables[:task] = Legion::Data::Model::Task[payload[:task_id]]
|
17
|
+
payload[:args] = from_json(template.render(self, variables))
|
18
|
+
else
|
19
|
+
payload[:args] = from_json(transformation)
|
17
20
|
end
|
18
21
|
|
19
|
-
payload[:args] = from_json(template.render(self, variables))
|
20
22
|
case payload[:args]
|
21
23
|
when Hash
|
22
24
|
unless payload[:task_id].nil?
|
23
25
|
task_update(payload[:task_id], 'transformer.succeeded', function_args: payload[:args])
|
24
26
|
end
|
25
27
|
send_task(**payload)
|
28
|
+
task_update(payload[:task_id], 'task.queued', use_database: false) unless payload[:task_id].nil?
|
26
29
|
when Array
|
27
30
|
payload[:args].each do |thing|
|
28
31
|
new_payload = payload
|
@@ -41,14 +44,13 @@ module Legion::Extensions::Transformer
|
|
41
44
|
end
|
42
45
|
end
|
43
46
|
|
44
|
-
task_update(payload[:task_id], 'task.queued') unless payload[:task_id].nil?
|
45
47
|
if payload[:debug] && payload.key?(:task_id)
|
46
48
|
generate_task_log(task_id: payload[:task_id], function: 'transform', values: payload)
|
47
49
|
end
|
48
50
|
{ success: true, **payload }
|
49
51
|
end
|
50
52
|
|
51
|
-
def
|
53
|
+
def send_task(**opts)
|
52
54
|
payload = {}
|
53
55
|
%i[task_id relationship_id trigger_function_id runner_class function_id function chain_id debug args].each do |thing| # rubocop:disable Layout/LineLength
|
54
56
|
payload[thing] = opts[thing] if opts.key? thing
|
@@ -56,6 +58,9 @@ module Legion::Extensions::Transformer
|
|
56
58
|
|
57
59
|
Legion::Extensions::Transformer::Transport::Messages::Message.new(**payload).publish
|
58
60
|
end
|
61
|
+
|
62
|
+
include Legion::Extensions::Helpers::Lex
|
63
|
+
extend Legion::Extensions::Helpers::Task
|
59
64
|
end
|
60
65
|
end
|
61
66
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lex-transformer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Esity
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tilt
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
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'
|
69
83
|
description: Runs transformer statements against tasks in a relationship
|
70
84
|
email:
|
71
85
|
- matthewdiverson@gmail.com
|
@@ -73,18 +87,18 @@ executables: []
|
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
76
|
-
- ".circleci/config.yml"
|
77
90
|
- ".gitignore"
|
78
91
|
- ".rspec"
|
79
92
|
- ".rubocop.yml"
|
80
93
|
- CODE_OF_CONDUCT.md
|
94
|
+
- Dockerfile
|
81
95
|
- Gemfile
|
82
96
|
- Gemfile.lock
|
83
97
|
- LICENSE.txt
|
84
98
|
- README.md
|
85
99
|
- Rakefile
|
86
|
-
-
|
87
|
-
-
|
100
|
+
- bitbucket-pipelines.yml
|
101
|
+
- docker_deploy.rb
|
88
102
|
- lex-transformer.gemspec
|
89
103
|
- lib/legion/extensions/transformer.rb
|
90
104
|
- lib/legion/extensions/transformer/actors/transform.rb
|
@@ -100,8 +114,10 @@ licenses:
|
|
100
114
|
metadata:
|
101
115
|
homepage_uri: https://bitbucket.org/legion-io/lex-transformer
|
102
116
|
source_code_uri: https://bitbucket.org/legion-io/lex-transformer
|
103
|
-
|
104
|
-
|
117
|
+
documentation_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/612270222
|
118
|
+
changelog_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/614858842
|
119
|
+
bug_tracker_uri: https://bitbucket.org/legion-io/lex-transformer/issues
|
120
|
+
post_install_message:
|
105
121
|
rdoc_options: []
|
106
122
|
require_paths:
|
107
123
|
- lib
|
@@ -116,8 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
132
|
- !ruby/object:Gem::Version
|
117
133
|
version: '0'
|
118
134
|
requirements: []
|
119
|
-
rubygems_version: 3.1.
|
120
|
-
signing_key:
|
135
|
+
rubygems_version: 3.1.4
|
136
|
+
signing_key:
|
121
137
|
specification_version: 4
|
122
138
|
summary: LEX-Transformer is used to transform payloads for the output
|
123
139
|
test_files: []
|
data/.circleci/config.yml
DELETED
@@ -1,61 +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.5-node
|
9
|
-
steps:
|
10
|
-
- checkout
|
11
|
-
- ruby/load-cache
|
12
|
-
- ruby/install-deps
|
13
|
-
- run:
|
14
|
-
name: Run Rubocop
|
15
|
-
command: bundle exec rubocop
|
16
|
-
- ruby/save-cache
|
17
|
-
"ruby-two-five":
|
18
|
-
docker:
|
19
|
-
- image: circleci/ruby:2.5
|
20
|
-
- image: memcached:1.5-alpine
|
21
|
-
steps:
|
22
|
-
- checkout
|
23
|
-
- ruby/load-cache
|
24
|
-
- ruby/install-deps
|
25
|
-
- ruby/run-tests
|
26
|
-
- ruby/save-cache
|
27
|
-
"ruby-two-six":
|
28
|
-
docker:
|
29
|
-
- image: circleci/ruby:2.6
|
30
|
-
- image: memcached:1.5-alpine
|
31
|
-
steps:
|
32
|
-
- checkout
|
33
|
-
- ruby/load-cache
|
34
|
-
- ruby/install-deps
|
35
|
-
- ruby/run-tests
|
36
|
-
- ruby/save-cache
|
37
|
-
"ruby-two-seven":
|
38
|
-
docker:
|
39
|
-
- image: circleci/ruby:2.7
|
40
|
-
- image: memcached:1.5-alpine
|
41
|
-
steps:
|
42
|
-
- checkout
|
43
|
-
- ruby/load-cache
|
44
|
-
- ruby/install-deps
|
45
|
-
- ruby/run-tests
|
46
|
-
- ruby/save-cache
|
47
|
-
|
48
|
-
workflows:
|
49
|
-
version: 2
|
50
|
-
rubocop-rspec:
|
51
|
-
jobs:
|
52
|
-
- rubocop
|
53
|
-
- ruby-two-five:
|
54
|
-
requires:
|
55
|
-
- rubocop
|
56
|
-
- ruby-two-six:
|
57
|
-
requires:
|
58
|
-
- ruby-two-five
|
59
|
-
- ruby-two-seven:
|
60
|
-
requires:
|
61
|
-
- ruby-two-five
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'bundler/setup'
|
4
|
-
require 'legion/extensions/transformer'
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require 'irb'
|
14
|
-
IRB.start(__FILE__)
|