action_logic 0.2.8 → 0.3.0

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
  SHA1:
3
- metadata.gz: 19b4824f31ca1ffe3d22502fce6ce674f5fffc37
4
- data.tar.gz: 16d5f9e7a00b95f6e2678c5fd2a0d68821161374
3
+ metadata.gz: 0f2a836061c6a36975110217dd7b4ae21bd482b9
4
+ data.tar.gz: ca43f16e23c1ae5e8a0af96b43d788ddf5457bf2
5
5
  SHA512:
6
- metadata.gz: 23f4be5534c06e0864af1a61c08595b2410ddcbc19f3d877691b9183e1675a290402daa18f7e9635e72464ab84fab81c77ae43f43e69f7fb908a64b1e7590c2e
7
- data.tar.gz: 14b9bcd6c0e2a089f944d78e469db97c2d3034d76a63b4e2d4aa1ca24dba006014c41fadc300c542119d5b35162f887097ff7943a862a70e5ae73397ff1d0909
6
+ metadata.gz: ced0fc7c9682743598574384d7b7923e40aef67805be0836f2ed903dc022701f7497024a1e7baf2be3be7c6a56254a90db8ef2b0639dc9e731039abe31097ff1
7
+ data.tar.gz: 7c7760cfe6e28013f5caf7abf1c9040747130127731c93e3250fd025f122f335e38ee7c984d5023417e1a3dbcd82f5797540784e2bebf1924107759e4d786db2
@@ -1,44 +1,42 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- action_logic (0.2.7)
4
+ action_logic (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- codecov (0.1.4)
9
+ codecov (0.1.14)
10
10
  json
11
11
  simplecov
12
12
  url
13
- coderay (1.1.0)
14
- diff-lcs (1.2.5)
15
- docile (1.1.5)
16
- json (1.8.3)
17
- method_source (0.8.2)
18
- pry (0.10.3)
13
+ coderay (1.1.2)
14
+ diff-lcs (1.3)
15
+ docile (1.3.1)
16
+ json (2.1.0)
17
+ method_source (0.9.2)
18
+ pry (0.12.2)
19
19
  coderay (~> 1.1.0)
20
- method_source (~> 0.8.1)
21
- slop (~> 3.4)
22
- rake (10.4.2)
23
- rspec (3.3.0)
24
- rspec-core (~> 3.3.0)
25
- rspec-expectations (~> 3.3.0)
26
- rspec-mocks (~> 3.3.0)
27
- rspec-core (3.3.2)
28
- rspec-support (~> 3.3.0)
29
- rspec-expectations (3.3.1)
20
+ method_source (~> 0.9.0)
21
+ rake (12.3.2)
22
+ rspec (3.8.0)
23
+ rspec-core (~> 3.8.0)
24
+ rspec-expectations (~> 3.8.0)
25
+ rspec-mocks (~> 3.8.0)
26
+ rspec-core (3.8.0)
27
+ rspec-support (~> 3.8.0)
28
+ rspec-expectations (3.8.2)
30
29
  diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.3.0)
32
- rspec-mocks (3.3.2)
30
+ rspec-support (~> 3.8.0)
31
+ rspec-mocks (3.8.0)
33
32
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.3.0)
35
- rspec-support (3.3.0)
36
- simplecov (0.10.0)
37
- docile (~> 1.1.0)
38
- json (~> 1.8)
33
+ rspec-support (~> 3.8.0)
34
+ rspec-support (3.8.0)
35
+ simplecov (0.16.1)
36
+ docile (~> 1.1)
37
+ json (>= 1.8, < 3)
39
38
  simplecov-html (~> 0.10.0)
40
- simplecov-html (0.10.0)
41
- slop (3.6.0)
39
+ simplecov-html (0.10.2)
42
40
  url (0.3.2)
43
41
 
44
42
  PLATFORMS
@@ -46,11 +44,11 @@ PLATFORMS
46
44
 
47
45
  DEPENDENCIES
48
46
  action_logic!
49
- codecov (~> 0.1)
50
- pry (~> 0.10)
51
- rake (~> 10)
52
- rspec (~> 3.3)
53
- simplecov (~> 0.10.0)
47
+ codecov (~> 0.1.14)
48
+ pry (~> 0.12.2)
49
+ rake (~> 12.3.2)
50
+ rspec (~> 3.8.0)
51
+ simplecov (~> 0.16.1)
54
52
 
55
53
  BUNDLED WITH
56
- 1.10.6
54
+ 1.17.2
data/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  [![Gem Version](https://badge.fury.io/rb/action_logic.svg)](https://badge.fury.io/rb/action_logic)
5
5
  [![Code Climate](https://codeclimate.com/github/rewinfrey/action_logic/badges/gpa.svg)](https://codeclimate.com/github/rewinfrey/action_logic)
6
6
  [![coverage](https://codecov.io/github/rewinfrey/ActionLogic/coverage.svg?branch=master)](https://codecov.io/github/rewinfrey/ActionLogic?branch=master)
7
- [![Dependency Status](https://gemnasium.com/rewinfrey/action_logic.svg)](https://gemnasium.com/rewinfrey/action_logic)
8
7
  [![License](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT)
9
8
 
10
9
  ### Introduction
@@ -14,12 +14,12 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.authors = ["Rick Winfrey"]
16
16
  s.email = 'rick.winfrey@gmail.com'
17
- s.date = '2016-01-18'
17
+ s.date = '2018-12-17'
18
18
  s.description = 'Provides common interfaces for validating and abstracting business logic'
19
19
 
20
- s.add_development_dependency("rspec", "~> 3.3")
21
- s.add_development_dependency("pry", "~> 0.10")
22
- s.add_development_dependency("rake", "~> 10")
23
- s.add_development_dependency("simplecov", "~> 0.10.0")
24
- s.add_development_dependency("codecov", "~> 0.1")
20
+ s.add_development_dependency("rspec", "~> 3.8")
21
+ s.add_development_dependency("pry", "~> 0.12.2")
22
+ s.add_development_dependency("rake", "~> 12.3")
23
+ s.add_development_dependency("simplecov", "~> 0.16.1")
24
+ s.add_development_dependency("codecov", "~> 0.1.14")
25
25
  end
@@ -9,7 +9,7 @@ module ActionLogic
9
9
  return unless validation_rules.values.find { |expected_validation| expected_validation[:type] }
10
10
 
11
11
  type_errors = validation_rules.reduce([]) do |collection, (expected_attribute, expected_validation)|
12
- next unless expected_validation[:type]
12
+ next collection unless expected_validation[:type]
13
13
 
14
14
  if context.to_h[expected_attribute].class != expected_validation[:type]
15
15
  collection << "Attribute: #{expected_attribute} with value: #{context.to_h[expected_attribute]} was expected to be of type #{expected_validation[:type]} but is #{context.to_h[expected_attribute].class}"
@@ -1,3 +1,3 @@
1
1
  module ActionLogic
2
- VERSION = '0.2.8'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -152,6 +152,27 @@ module ActionLogic
152
152
  raise_error(ActionLogic::UnrecognizablePresenceValidatorError)
153
153
  end
154
154
  end
155
+
156
+ describe "mixed custom presence and type" do
157
+ it "allows custom presence validation to be defined without type if a type validation is defined" do
158
+ expect { ValidateBeforeMixedTypeAndPresenceUseCase.execute(odd_integer_test: 1, string_test: "Test") }.to_not raise_error
159
+ end
160
+
161
+ it "raises error if custom presence validation is not satisfied" do
162
+ expect { ValidateBeforeMixedTypeAndPresenceUseCase.execute(odd_integer_test: 2, string_test: "Test") }.to \
163
+ raise_error(ActionLogic::PresenceError)
164
+ end
165
+
166
+ it "raises error if type validation is not satisfied" do
167
+ expect { ValidateBeforeMixedTypeAndPresenceUseCase.execute(odd_integer_test: 1, string_test: 15) }.to \
168
+ raise_error(ActionLogic::AttributeTypeError)
169
+ end
170
+
171
+ it "raises error if type presence validation is not satisfied" do
172
+ expect { ValidateBeforeMixedTypeAndPresenceUseCase.execute(odd_integer_test: 1) }.to \
173
+ raise_error(ActionLogic::MissingAttributeError)
174
+ end
175
+ end
155
176
  end
156
177
 
157
178
  describe "after validations" do
@@ -189,6 +189,21 @@ class ValidateBeforeUnrecognizablePresenceTestUseCase
189
189
  end
190
190
  end
191
191
 
192
+ class ValidateBeforeMixedTypeAndPresenceUseCase
193
+ include ActionLogic::ActionUseCase
194
+
195
+ validates_before odd_integer_test: { presence: ->(i) { i % 2 != 0 } },
196
+ string_test: { type: String, presence: true }
197
+
198
+ def call
199
+ end
200
+
201
+ def tasks
202
+ [UseCaseTestTask1,
203
+ UseCaseTestTask2]
204
+ end
205
+ end
206
+
192
207
  class ValidateAfterTestUseCase
193
208
  include ActionLogic::ActionUseCase
194
209
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_logic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rick Winfrey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-18 00:00:00.000000000 Z
11
+ date: 2018-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.3'
19
+ version: '3.8'
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: '3.3'
26
+ version: '3.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.10'
33
+ version: 0.12.2
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.10'
40
+ version: 0.12.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10'
47
+ version: '12.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '10'
54
+ version: '12.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.10.0
61
+ version: 0.16.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.10.0
68
+ version: 0.16.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: codecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.1'
75
+ version: 0.1.14
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.1'
82
+ version: 0.1.14
83
83
  description: Provides common interfaces for validating and abstracting business logic
84
84
  email: rick.winfrey@gmail.com
85
85
  executables: []
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  version: '0'
150
150
  requirements: []
151
151
  rubyforge_project:
152
- rubygems_version: 2.4.5.1
152
+ rubygems_version: 2.5.2
153
153
  signing_key:
154
154
  specification_version: 4
155
155
  summary: Business logic abstraction
@@ -166,4 +166,3 @@ test_files:
166
166
  - spec/fixtures/tasks.rb
167
167
  - spec/fixtures/use_cases.rb
168
168
  - spec/spec_helper.rb
169
- has_rdoc: