opera 0.1.1 → 0.1.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 +4 -4
- data/Dockerfile +20 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +30 -11
- data/README.md +1 -1
- data/docker-compose.yml +7 -0
- data/lib/opera/operation/instructions/executors/operation.rb +9 -0
- data/lib/opera/operation/instructions/executors/validate.rb +2 -1
- data/lib/opera/operation/result.rb +3 -1
- data/lib/opera/version.rb +1 -1
- data/opera.gemspec +5 -5
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9012fc7c78d543bde97172bb8504d8835fbdc051c9842498544c7c86669638c9
|
4
|
+
data.tar.gz: 78021a04133da9fbacb96275c369337213a08822c710f325ce6d78b04970db37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd9778459fceeda84e49684a18d11ef82b3ba593824c568bee8bce2cd92d311f8020cd128e3274da6d09ace98890ccb1b69eec778e63cf87a9352c24fea3c3e5
|
7
|
+
data.tar.gz: 879bd00727c7554e5fda0620564fccefbcd4da64ca25e04216d259df1c94d5f289df9c3506a82f262288b53f2c1cb6b2131789a641f0a57e33ddf23a438f278d
|
data/Dockerfile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
FROM ruby:2.7.1
|
2
|
+
|
3
|
+
MAINTAINER ProFinda Developers <dev@profinda.com>
|
4
|
+
|
5
|
+
ENV LANG C.UTF-8
|
6
|
+
ENV LC_ALL C.UTF-8
|
7
|
+
|
8
|
+
RUN apt-get update -y && \
|
9
|
+
apt-get install -y cmake \
|
10
|
+
build-essential
|
11
|
+
|
12
|
+
ENV APP_HOME /usr/src/app
|
13
|
+
RUN mkdir -p $APP_HOME
|
14
|
+
WORKDIR $APP_HOME
|
15
|
+
|
16
|
+
COPY . $APP_HOME
|
17
|
+
|
18
|
+
RUN bundle install -j 8
|
19
|
+
|
20
|
+
COPY . $APP_HOME
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
opera (0.1.
|
4
|
+
opera (0.1.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
byebug (11.1.3)
|
10
|
+
coderay (1.1.3)
|
9
11
|
concurrent-ruby (1.1.7)
|
10
12
|
diff-lcs (1.4.4)
|
11
13
|
dry-configurable (0.11.6)
|
@@ -15,28 +17,44 @@ GEM
|
|
15
17
|
dry-container (0.7.2)
|
16
18
|
concurrent-ruby (~> 1.0)
|
17
19
|
dry-configurable (~> 0.1, >= 0.1.3)
|
18
|
-
dry-core (0.
|
20
|
+
dry-core (0.5.0)
|
19
21
|
concurrent-ruby (~> 1.0)
|
20
22
|
dry-equalizer (0.3.0)
|
21
23
|
dry-inflector (0.2.0)
|
22
|
-
dry-
|
24
|
+
dry-initializer (3.0.4)
|
25
|
+
dry-logic (1.0.8)
|
23
26
|
concurrent-ruby (~> 1.0)
|
24
27
|
dry-core (~> 0.2)
|
25
28
|
dry-equalizer (~> 0.2)
|
26
|
-
dry-
|
29
|
+
dry-schema (1.5.6)
|
30
|
+
concurrent-ruby (~> 1.0)
|
31
|
+
dry-configurable (~> 0.8, >= 0.8.3)
|
32
|
+
dry-core (~> 0.4)
|
33
|
+
dry-equalizer (~> 0.2)
|
34
|
+
dry-initializer (~> 3.0)
|
35
|
+
dry-logic (~> 1.0)
|
36
|
+
dry-types (~> 1.4)
|
37
|
+
dry-types (1.4.0)
|
27
38
|
concurrent-ruby (~> 1.0)
|
28
39
|
dry-container (~> 0.3)
|
29
40
|
dry-core (~> 0.4, >= 0.4.4)
|
30
|
-
dry-equalizer (~> 0.
|
41
|
+
dry-equalizer (~> 0.3)
|
31
42
|
dry-inflector (~> 0.1, >= 0.1.2)
|
32
|
-
dry-logic (~> 0
|
33
|
-
dry-validation (
|
43
|
+
dry-logic (~> 1.0, >= 1.0.2)
|
44
|
+
dry-validation (1.6.0)
|
34
45
|
concurrent-ruby (~> 1.0)
|
35
|
-
dry-
|
36
|
-
dry-core (~> 0.
|
46
|
+
dry-container (~> 0.7, >= 0.7.1)
|
47
|
+
dry-core (~> 0.4)
|
37
48
|
dry-equalizer (~> 0.2)
|
38
|
-
dry-
|
39
|
-
dry-
|
49
|
+
dry-initializer (~> 3.0)
|
50
|
+
dry-schema (~> 1.5, >= 1.5.2)
|
51
|
+
method_source (1.0.0)
|
52
|
+
pry (0.13.1)
|
53
|
+
coderay (~> 1.1)
|
54
|
+
method_source (~> 1.0)
|
55
|
+
pry-byebug (3.9.0)
|
56
|
+
byebug (~> 11.0)
|
57
|
+
pry (~> 0.13.0)
|
40
58
|
rake (12.3.3)
|
41
59
|
rspec (3.9.0)
|
42
60
|
rspec-core (~> 3.9.0)
|
@@ -58,6 +76,7 @@ PLATFORMS
|
|
58
76
|
DEPENDENCIES
|
59
77
|
dry-validation
|
60
78
|
opera!
|
79
|
+
pry-byebug
|
61
80
|
rake (~> 12.0)
|
62
81
|
rspec (~> 3.0)
|
63
82
|
|
data/README.md
CHANGED
@@ -31,7 +31,7 @@ Simply initialise the configuration and chose what method you want to use to rep
|
|
31
31
|
Opera::Operation::Config.configure do |config|
|
32
32
|
config.transaction_class = ActiveRecord::Base
|
33
33
|
config.transaction_method = :transaction
|
34
|
-
config.reporter =
|
34
|
+
config.reporter = defined?(Rollbar) ? Rollbar : Rails.logger
|
35
35
|
end
|
36
36
|
```
|
37
37
|
|
data/docker-compose.yml
ADDED
@@ -8,6 +8,7 @@ module Opera
|
|
8
8
|
def call(instruction)
|
9
9
|
instruction[:kind] = :step
|
10
10
|
operation_result = super
|
11
|
+
save_information(operation_result)
|
11
12
|
|
12
13
|
if operation_result.success?
|
13
14
|
add_instruction_output(instruction, operation_result.output)
|
@@ -18,6 +19,14 @@ module Opera
|
|
18
19
|
result.add_exceptions(operation_result.exceptions)
|
19
20
|
end
|
20
21
|
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def save_information(operation_result)
|
26
|
+
return unless operation_result.respond_to?(:information)
|
27
|
+
|
28
|
+
result.add_information(operation_result.information)
|
29
|
+
end
|
21
30
|
end
|
22
31
|
end
|
23
32
|
end
|
@@ -14,7 +14,8 @@ module Opera
|
|
14
14
|
def evaluate_instruction(instruction)
|
15
15
|
instruction[:kind] = :step
|
16
16
|
dry_result = super
|
17
|
-
|
17
|
+
|
18
|
+
add_instruction_output(instruction, dry_result.to_h)
|
18
19
|
result.add_errors(dry_result.errors) unless dry_result.success?
|
19
20
|
end
|
20
21
|
end
|
@@ -10,6 +10,8 @@ module Opera
|
|
10
10
|
|
11
11
|
attr_accessor :output # Final object returned if success?
|
12
12
|
|
13
|
+
alias to_h output
|
14
|
+
|
13
15
|
def initialize(output: nil, errors: {})
|
14
16
|
@errors = errors
|
15
17
|
@exceptions = {}
|
@@ -43,7 +45,7 @@ module Opera
|
|
43
45
|
# rubocop:enable Metrics/MethodLength
|
44
46
|
|
45
47
|
def add_errors(errors)
|
46
|
-
errors.each_pair do |key, value|
|
48
|
+
errors.to_h.each_pair do |key, value|
|
47
49
|
add_error(key, value)
|
48
50
|
end
|
49
51
|
end
|
data/lib/opera/version.rb
CHANGED
data/opera.gemspec
CHANGED
@@ -4,16 +4,16 @@ Gem::Specification.new do |spec|
|
|
4
4
|
spec.name = 'opera'
|
5
5
|
spec.version = Opera::VERSION
|
6
6
|
spec.authors = ['ProFinda Development Team']
|
7
|
-
spec.email = ['
|
7
|
+
spec.email = ['dev@profinda.com']
|
8
8
|
|
9
9
|
spec.summary = 'Use simple DSL language to keep your Operations clean and maintainable'
|
10
10
|
spec.homepage = 'https://github.com/Profinda/opera'
|
11
11
|
spec.license = 'MIT'
|
12
12
|
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
13
13
|
|
14
|
-
spec.metadata[
|
15
|
-
spec.metadata[
|
16
|
-
spec.metadata[
|
14
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
15
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
16
|
+
spec.metadata['changelog_uri'] = 'https://github.com/Profinda/opera/blob/master/CHANGELOG.md'
|
17
17
|
|
18
18
|
# Specify which files should be added to the gem when it is released.
|
19
19
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
|
27
|
-
spec.add_development_dependency 'dry-validation'
|
27
|
+
spec.add_development_dependency 'dry-validation', '>= 1.0'
|
28
28
|
spec.add_development_dependency 'rake'
|
29
29
|
spec.add_development_dependency 'rspec'
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opera
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ProFinda Development Team
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-validation
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '1.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,9 +52,9 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
|
-
-
|
57
|
+
- dev@profinda.com
|
58
58
|
executables: []
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
@@ -64,6 +64,7 @@ files:
|
|
64
64
|
- ".travis.yml"
|
65
65
|
- CHANGELOG.md
|
66
66
|
- CODE_OF_CONDUCT.md
|
67
|
+
- Dockerfile
|
67
68
|
- Gemfile
|
68
69
|
- Gemfile.lock
|
69
70
|
- LICENSE.txt
|
@@ -71,6 +72,7 @@ files:
|
|
71
72
|
- Rakefile
|
72
73
|
- bin/console
|
73
74
|
- bin/setup
|
75
|
+
- docker-compose.yml
|
74
76
|
- lib/opera.rb
|
75
77
|
- lib/opera/errors.rb
|
76
78
|
- lib/opera/operation.rb
|
@@ -96,7 +98,7 @@ metadata:
|
|
96
98
|
homepage_uri: https://github.com/Profinda/opera
|
97
99
|
source_code_uri: https://github.com/Profinda/opera
|
98
100
|
changelog_uri: https://github.com/Profinda/opera/blob/master/CHANGELOG.md
|
99
|
-
post_install_message:
|
101
|
+
post_install_message:
|
100
102
|
rdoc_options: []
|
101
103
|
require_paths:
|
102
104
|
- lib
|
@@ -112,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
114
|
version: '0'
|
113
115
|
requirements: []
|
114
116
|
rubygems_version: 3.1.2
|
115
|
-
signing_key:
|
117
|
+
signing_key:
|
116
118
|
specification_version: 4
|
117
119
|
summary: Use simple DSL language to keep your Operations clean and maintainable
|
118
120
|
test_files: []
|