opera 0.2.8 → 0.2.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74dd04d093748ea3304510e3a1ae919970c073728166e454482777037ed84ad8
4
- data.tar.gz: c7da355f5d02435ba7cb4709974e08aaf61ba20968fd8765b05b8d3f317464a7
3
+ metadata.gz: 16174465116cab3f0fbadd69a03b6b0428bdb9c24ea126034f75dbf0641bc3d5
4
+ data.tar.gz: 67d7987ebb8c290e564f0e3e35e02bf29a34b098699174ca48dc6207b37f99f6
5
5
  SHA512:
6
- metadata.gz: eef749a9273739e03aecee31562c23d0c254289be6eb0fc23afe4f1a5a65f6f5b9bce338fb7d651e8e8ebf50f96c1fca708526333ced33b9d2fa551aaa8fe594
7
- data.tar.gz: fc82fbc54df5b5c0014e46eff882983dd6b178a7427d829aab1d7b2623682cda4fd2336b43cf9887467cea431d01beeef4b92814179da3afe2abd33183f72699
6
+ metadata.gz: ab6cbc94a66983bfdbd1326cdd7bd809a584747f8734205072cf2bfe40a00d369cfc54a9d626a3fc336482d574908a6c4d6b130fc050d0c40584638698702b14
7
+ data.tar.gz: 4930ff7e4e3cc7c4635f373d7808143657cab984c9a78893daf08471a125af995f0ecd19ea2511ccd11808555d1a2c4b7a0d07da81bf5e36e5dc106d277a41fe
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Opera Changelog
2
2
 
3
+ ### 0.2.11 - June 1, 2022
4
+
5
+ - handle internally exceptions from schema
6
+
7
+ ### 0.2.10 - June 1, 2022
8
+
9
+ - `finish!` does not break transaction
10
+
11
+ ### 0.2.9 - May 16, 2022
12
+
13
+ - Improve executions for failing operations
14
+
3
15
  ### 0.2.8 - December 7, 2021
4
16
 
5
17
  - Fix issue with default value
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- opera (0.2.8)
4
+ opera (0.2.11)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,12 +12,13 @@ module Opera
12
12
 
13
13
  if operation_result.success?
14
14
  add_instruction_output(instruction, operation_result.output)
15
- execution = result.executions.pop
16
- result.executions << { execution => operation_result.executions }
17
15
  else
18
16
  result.add_errors(operation_result.errors)
19
17
  result.add_exceptions(operation_result.exceptions)
20
18
  end
19
+
20
+ execution = result.executions.pop
21
+ result.executions << { execution => operation_result.executions }
21
22
  end
22
23
 
23
24
  private
@@ -12,7 +12,8 @@ module Opera
12
12
  operation.send(method)
13
13
  rescue StandardError => exception
14
14
  reporter&.error(exception)
15
- operation.result.add_exception(method, exception.message, classname: operation.class.name)
15
+ operation.result.add_exception(method, "#{exception.message}, for #{operation.inspect}", classname: operation.class.name)
16
+ operation.result
16
17
  end
17
18
  end
18
19
  end
@@ -12,11 +12,11 @@ module Opera
12
12
  transaction_class.send(*arguments) do
13
13
  super
14
14
 
15
- return if !operation.finished? && result.success?
15
+ return if result.success?
16
16
 
17
- raise(RollbackTransactionError)
17
+ raise(transaction_error)
18
18
  end
19
- rescue RollbackTransactionError
19
+ rescue transaction_error
20
20
  nil
21
21
  end
22
22
 
@@ -31,6 +31,10 @@ module Opera
31
31
  def transaction_options
32
32
  config.transaction_options
33
33
  end
34
+
35
+ def transaction_error
36
+ RollbackTransactionError
37
+ end
34
38
  end
35
39
  end
36
40
  end
@@ -15,8 +15,22 @@ module Opera
15
15
  instruction[:kind] = :step
16
16
  dry_result = super
17
17
 
18
- add_instruction_output(instruction, dry_result.to_h)
19
- result.add_errors(dry_result.errors) unless dry_result.success?
18
+ case dry_result
19
+ when Opera::Operation::Result
20
+ add_instruction_output(instruction, dry_result.to_h)
21
+
22
+ unless dry_result.success?
23
+ result.add_errors(dry_result.errors)
24
+ result.add_exceptions(dry_result.exceptions)
25
+ end
26
+ when Dry::Validation::Result
27
+ add_instruction_output(instruction, dry_result.to_h)
28
+
29
+ result.add_errors(dry_result.errors) unless dry_result.success?
30
+ else
31
+ exception_message = "#{dry_result.class} is not expected object. Please check: #{dry_result.inspect}"
32
+ result.add_exception(instruction[:method], exception_message, classname: operation.class.name)
33
+ end
20
34
  end
21
35
  end
22
36
  end
data/lib/opera/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Opera
2
- VERSION = '0.2.8'
2
+ VERSION = '0.2.11'
3
3
  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.2.8
4
+ version: 0.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - ProFinda Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-07 00:00:00.000000000 Z
11
+ date: 2022-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-validation