object_attorney 3.1.1 → 3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed57deef82a28ae2daec6570db622d64edd381a1055fa8309132ff415e21e21e
4
- data.tar.gz: dca4ce3859ded0b5a5f9a868e791ae3f082771e3c489ba992f95f0fc6b444331
3
+ metadata.gz: 5448325fada08381af7809d4b2aa490efbcc913c4e60738b1752e9ca597bc9ab
4
+ data.tar.gz: 97b30e3a7e1e2cc3484e92f1a093a399936b01254c3e7c0909f0a3faaddf5794
5
5
  SHA512:
6
- metadata.gz: c30cd174cb25c0e3b3b45fc017141f0f3d49c82d706df40691e7db31f77a429ab8fad29fd03f74528d1318d07c747acba931332d917daac203c7610f24a57ea4
7
- data.tar.gz: 88f972af09e72b93f3ce212a25d1600e03b4d3aeaa69912c9289ec7e18f4f63fda78039f1a61b559cad000e61927754591341bc63a64d1bbc93ffb57bfc81143
6
+ metadata.gz: d8d19072b53c11a224b46b3988c693d4aaee9e3c708c4bacddfc9087eb698571a926b1cdf62d37043d3a402c699343bcb4700f4ab81449effd47d1972784e8e8
7
+ data.tar.gz: 91cdc0e35b3644dcd539709aa14e92a8cbc11b2f9afd9d9c51e83867083d0fea46ca689bc2e68019869e50b55b89ddf1ac812e54cd4ba801e0ad66cecc29c25d
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Object Attorney
2
- This gem allows you to create use cases with ActiveModel validations and keep your model clean.
2
+ This gem allows you to create **use cases**, **services** or **form objects** with ActiveModel validations and keep your model clean.
3
3
 
4
4
  [![Code Climate](https://codeclimate.com/github/goncalvesjoao/object_attorney/badges/gpa.svg)](https://codeclimate.com/github/goncalvesjoao/object_attorney)
5
5
  [![Test Coverage](https://codeclimate.com/github/goncalvesjoao/object_attorney/badges/coverage.svg)](https://codeclimate.com/github/goncalvesjoao/object_attorney/coverage)
@@ -67,3 +67,17 @@ UserValidator.new(@user).invalid? # true
67
67
 
68
68
  @user.errors.messages # { first_name: ["can't be blank"] }
69
69
  ```
70
+
71
+ ## 3) Installation
72
+
73
+ To install Object Attorney on the default Rails stack, just put this line in your Gemfile:
74
+ ```ruby
75
+ gem 'object_attorney'
76
+ ```
77
+
78
+ Then bundle:
79
+ ```
80
+ $> bundle
81
+ ```
82
+
83
+ and after that, I'd advise you to lock the gem's version in your Gemfile
@@ -10,10 +10,21 @@ module ObjectAttorney
10
10
  base_class.extend ActiveModel::Validations::HelperMethods
11
11
  end
12
12
 
13
+ def defendant
14
+ @defendant ||=
15
+ if parent_defendant
16
+ Helpers.extend_errors_if_necessary(parent_defendant)
17
+
18
+ Helpers.call_method!(parent_defendant, defendant_options[:name])
19
+ else
20
+ Helpers.call_method!(self, defendant_options[:name])
21
+ end
22
+ end
23
+
13
24
  def defendant_is_innocent?
14
25
  raise Errors::NoDefendantToDefendError if defendant_options.empty?
15
26
 
16
- proven_innocent = defendants.map do |defendant|
27
+ proven_innocent = [defendant].flatten.compact.map do |defendant|
17
28
  innocent_of_all_accusations?(defendant)
18
29
  end.all?
19
30
 
@@ -30,19 +41,6 @@ module ObjectAttorney
30
41
 
31
42
  protected ######################### PROTECTED ################################
32
43
 
33
- def defendants
34
- defendant =
35
- if parent_defendant
36
- Helpers.extend_errors_if_necessary(parent_defendant)
37
-
38
- Helpers.call_method!(parent_defendant, defendant_options[:name])
39
- else
40
- Helpers.call_method!(self, defendant_options[:name])
41
- end
42
-
43
- [defendant].flatten.compact
44
- end
45
-
46
44
  def innocent_of_all_accusations?(defendant)
47
45
  Helpers.extend_errors_if_necessary(defendant)
48
46
 
@@ -2,12 +2,12 @@ module ObjectAttorney
2
2
  class Base
3
3
  include ObjectAttorney
4
4
 
5
- defend :defendant
5
+ defend :object
6
6
 
7
- attr_reader :defendant
7
+ attr_reader :object
8
8
 
9
- def initialize(defendant)
10
- @defendant = defendant
9
+ def initialize(object)
10
+ @object = object
11
11
  end
12
12
  end
13
13
  end
@@ -5,7 +5,7 @@ module ObjectAttorney
5
5
  # ActiveModel::Errors told me to declare
6
6
  # the following methods for a minimal implementation
7
7
  module ClassMethods
8
- def human_attribute_name(attribute, _ = {})
8
+ def human_attribute_name(attribute, _options = {})
9
9
  attribute
10
10
  end
11
11
 
@@ -1,3 +1,3 @@
1
1
  module ObjectAttorney
2
- VERSION = '3.1.1'.freeze
2
+ VERSION = '3.1.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: object_attorney
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - João Gonçalves
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-07 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -30,20 +30,6 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5.2'
33
- - !ruby/object:Gem::Dependency
34
- name: codeclimate-test-reporter
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - '='
38
- - !ruby/object:Gem::Version
39
- version: 1.0.8
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - '='
45
- - !ruby/object:Gem::Version
46
- version: 1.0.8
47
33
  - !ruby/object:Gem::Dependency
48
34
  name: pry
49
35
  requirement: !ruby/object:Gem::Requirement
@@ -59,47 +45,47 @@ dependencies:
59
45
  - !ruby/object:Gem::Version
60
46
  version: 0.11.3
61
47
  - !ruby/object:Gem::Dependency
62
- name: rake
48
+ name: rspec
63
49
  requirement: !ruby/object:Gem::Requirement
64
50
  requirements:
65
51
  - - '='
66
52
  - !ruby/object:Gem::Version
67
- version: 11.2.2
53
+ version: 3.7.0
68
54
  type: :development
69
55
  prerelease: false
70
56
  version_requirements: !ruby/object:Gem::Requirement
71
57
  requirements:
72
58
  - - '='
73
59
  - !ruby/object:Gem::Version
74
- version: 11.2.2
60
+ version: 3.7.0
75
61
  - !ruby/object:Gem::Dependency
76
- name: rspec
62
+ name: rubocop
77
63
  requirement: !ruby/object:Gem::Requirement
78
64
  requirements:
79
65
  - - '='
80
66
  - !ruby/object:Gem::Version
81
- version: 3.7.0
67
+ version: 0.53.0
82
68
  type: :development
83
69
  prerelease: false
84
70
  version_requirements: !ruby/object:Gem::Requirement
85
71
  requirements:
86
72
  - - '='
87
73
  - !ruby/object:Gem::Version
88
- version: 3.7.0
74
+ version: 0.53.0
89
75
  - !ruby/object:Gem::Dependency
90
- name: rubocop
76
+ name: simplecov
91
77
  requirement: !ruby/object:Gem::Requirement
92
78
  requirements:
93
79
  - - '='
94
80
  - !ruby/object:Gem::Version
95
- version: 0.52.1
81
+ version: 0.15.1
96
82
  type: :development
97
83
  prerelease: false
98
84
  version_requirements: !ruby/object:Gem::Requirement
99
85
  requirements:
100
86
  - - '='
101
87
  - !ruby/object:Gem::Version
102
- version: 0.52.1
88
+ version: 0.15.1
103
89
  - !ruby/object:Gem::Dependency
104
90
  name: activemodel
105
91
  requirement: !ruby/object:Gem::Requirement