object_attorney 3.1.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
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