pavlov 0.1.8.1 → 0.1.9.0
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 +4 -4
- data/lib/pavlov.rb +20 -17
- data/lib/pavlov/helpers.rb +6 -6
- data/lib/pavlov/operation.rb +3 -3
- data/lib/pavlov/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7016775c6f4c49897e44a7cbb1d47d1fc284737b
|
4
|
+
data.tar.gz: 704dd818710d73271e7d0f0862a4e24f2a2950d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cdee8b6889becdc1c16a2b99d7e5a62c5248727c97917045e170dff6760599051e5d91bfb696ce4955374874e1f1dc9d4894fd9f683c71a42f05bee01a5ad98
|
7
|
+
data.tar.gz: 9eb0569bd7484a6165ba338c28989019127cc21f40a2a7411d0fede73e53fb7a6a415cb7416f98d307e61cfa02be6c57021082aaef3dfc2650899610faee4629
|
data/lib/pavlov.rb
CHANGED
@@ -1,33 +1,36 @@
|
|
1
1
|
require 'pavlov/support/inflector'
|
2
2
|
|
3
3
|
module Pavlov
|
4
|
-
def self.command command_name, *args
|
5
|
-
|
6
|
-
klass.new(*args).call
|
7
|
-
end
|
4
|
+
def self.command command_name, *args, &block
|
5
|
+
command = get_instance(Commands, command_name, *args)
|
8
6
|
|
9
|
-
|
10
|
-
klass = class_for_interactor(interactor_name)
|
11
|
-
klass.new(*args).call
|
7
|
+
call_or_yield_instance command, &block
|
12
8
|
end
|
13
9
|
|
14
|
-
def self.
|
15
|
-
|
16
|
-
|
10
|
+
def self.interactor interactor_name, *args, &block
|
11
|
+
interactor = get_instance(Interactors, interactor_name, *args)
|
12
|
+
|
13
|
+
call_or_yield_instance interactor, &block
|
17
14
|
end
|
18
15
|
|
19
|
-
|
16
|
+
def self.query query_name, *args, &block
|
17
|
+
query = get_instance(Queries, query_name, *args)
|
20
18
|
|
21
|
-
|
22
|
-
OperationFinder.find(Commands, command_name)
|
19
|
+
call_or_yield_instance query, &block
|
23
20
|
end
|
24
21
|
|
25
|
-
|
26
|
-
|
22
|
+
private
|
23
|
+
|
24
|
+
def self.get_instance(klass, name, *args)
|
25
|
+
OperationFinder.find(klass, name).new(*args)
|
27
26
|
end
|
28
27
|
|
29
|
-
def self.
|
30
|
-
|
28
|
+
def self.call_or_yield_instance operation, &block
|
29
|
+
if block.nil?
|
30
|
+
operation.call
|
31
|
+
else
|
32
|
+
block.call operation
|
33
|
+
end
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
data/lib/pavlov/helpers.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
module Pavlov
|
2
2
|
module Helpers
|
3
|
-
def interactor name, hash = {}
|
4
|
-
Pavlov.interactor name, with_pavlov_options(hash)
|
3
|
+
def interactor name, hash = {}, &block
|
4
|
+
Pavlov.interactor name, with_pavlov_options(hash), &block
|
5
5
|
end
|
6
6
|
|
7
|
-
def query name, hash = {}
|
8
|
-
Pavlov.query name, with_pavlov_options(hash)
|
7
|
+
def query name, hash = {}, &block
|
8
|
+
Pavlov.query name, with_pavlov_options(hash), &block
|
9
9
|
end
|
10
10
|
|
11
|
-
def command name, hash = {}
|
12
|
-
Pavlov.command name, with_pavlov_options(hash)
|
11
|
+
def command name, hash = {}, &block
|
12
|
+
Pavlov.command name, with_pavlov_options(hash), &block
|
13
13
|
end
|
14
14
|
|
15
15
|
def pavlov_options
|
data/lib/pavlov/operation.rb
CHANGED
@@ -35,7 +35,7 @@ module Pavlov
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def call(*args, &block)
|
38
|
-
|
38
|
+
fail Pavlov::ValidationError, 'Some validations fail, cannot execute' unless valid?
|
39
39
|
check_authorization
|
40
40
|
execute(*args, &block)
|
41
41
|
end
|
@@ -47,11 +47,11 @@ module Pavlov
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def raise_unauthorized(message = 'Unauthorized')
|
50
|
-
|
50
|
+
fail Pavlov::AccessDenied, message
|
51
51
|
end
|
52
52
|
|
53
53
|
def check_validation
|
54
|
-
|
54
|
+
fail Pavlov::ValidationError, "Missing arguments: #{missing_arguments.inspect}" if missing_arguments.any?
|
55
55
|
validate
|
56
56
|
end
|
57
57
|
|
data/lib/pavlov/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pavlov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2013-10-
|
16
|
+
date: 2013-10-08 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: virtus
|