use_case_pattern 1.0.1 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0197a45aa4b6b6aa27b43d0887d884950636bcb6
4
- data.tar.gz: 5441894af403f3c87f1c63127d647528ca84e1c7
3
+ metadata.gz: f74c46a1d5c18649404532a86ea70c7ba63dde0d
4
+ data.tar.gz: e1046c5314c1dab0b4c04e08a585e5c2da881ad2
5
5
  SHA512:
6
- metadata.gz: 7646d2e26a134e69f196366eaa34440bc10bbfc3c0ddf23045156463482fcd01c34ec635671a3fd448e02960f5128524ff566105e966815dab5d988640ed6f0b
7
- data.tar.gz: 074c32d9931fb4df34311a999a50acb845aca8b89f964ae901155de40c038d74b4af1b7faea99f857621351a9eabf0a4016dada3ae3f3ccd961580fb4c5bf88a
6
+ metadata.gz: e42a61577dea606c5f1fae60e3d27468b186b82a56553dfed439c6f0bafafc51ee7413299bb8a4e0ac83cac291cef64e8cb67b00bf3417a2a63804155d4c3593
7
+ data.tar.gz: 7193bd695b9f59cff1cf3584152e8cf2a741aa81b41e6356e792892f3dfacce07102e6e466bd71cefc52bd4473cf50d55fa63d76e9ce3eb85b14fd0f47fb1ecb
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # AddressFinder 1.0.2 (November 22, 2016) #
2
+
3
+ * Raise a ValidationError when #perform! fails rather that call the Rails 5
4
+ specific #raise_validation_error method
5
+
1
6
  # AddressFinder 1.0.1 (October 12, 2016) #
2
7
 
3
8
  * Declare support for activemodel/activesupport version 4.0 or better
@@ -28,13 +28,11 @@ module UseCasePattern
28
28
  end
29
29
 
30
30
  def perform!
31
- if valid?
32
- perform
31
+ if invalid?
32
+ raise(ValidationError.new(self))
33
33
  end
34
34
 
35
- if failure?
36
- raise_validation_error
37
- end
35
+ perform
38
36
  end
39
37
 
40
38
  # Did the use case performed its task without errors?
@@ -47,4 +45,24 @@ module UseCasePattern
47
45
  errors.any?
48
46
  end
49
47
  end
48
+
49
+ # Use Case Pattern ValidationError
50
+ #
51
+ # Raised by <tt>perform!</tt> when validations result in errors.
52
+ #
53
+ # Check the use case +errors+ object for attribute error messages.
54
+ #
55
+ # ActiveModel 5.0 has an ActiveModel::ValidationError class, prior versions including 4.2 do not.
56
+ #
57
+ # This class may be deprecated by ActiveModel::ValidationError in the future.
58
+ #
59
+ class ValidationError < StandardError
60
+ attr_reader :model
61
+
62
+ def initialize(model)
63
+ @model = model
64
+ errors = @model.errors.full_messages.join(", ")
65
+ super("Validation failed: " + errors)
66
+ end
67
+ end
50
68
  end
@@ -1,3 +1,3 @@
1
1
  module UseCasePattern
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: use_case_pattern
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nigel Ramsay
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-12 00:00:00.000000000 Z
11
+ date: 2016-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel