evnt 3.0 → 3.0.1
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/README.md +5 -0
- data/lib/evnt.rb +1 -1
- data/lib/evnt/command.rb +12 -5
- data/lib/evnt/event.rb +14 -1
- data/lib/evnt/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: 63694dd6640e60116fa220f26d2c5c534434f488
|
4
|
+
data.tar.gz: b8a2784a560444babd7ac31a9d43d4cf73b4be91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c1381e123afa1b6dfac53d92086102a5d57167d90dbfbaa5e72c59af1aff1bf71ccd48766d33841e265c8875db73812a582600eb192e2d35ea0cb324559c795
|
7
|
+
data.tar.gz: e1baebd245175ff2034607294c4e4836579d6f03148de64cbbc36b60211da29066dec7623263408799c5afbe1296d468f78c24628d614cf139a79ce2fb802252
|
data/README.md
CHANGED
@@ -34,6 +34,7 @@ Commands are used to run single tasks on the system. It's like a controller on a
|
|
34
34
|
|
35
35
|
Every command has three steps to execute:
|
36
36
|
|
37
|
+
- The params normalization which normalize the parameters used to run the command.
|
37
38
|
- The params validation which validates the parameters used to run the command.
|
38
39
|
- The logic validation which checks the command can be executed in compliance with the system rules.
|
39
40
|
- The event intialization which initializes an event object used to save the command.
|
@@ -43,6 +44,10 @@ An example of command should be:
|
|
43
44
|
```ruby
|
44
45
|
class CreateOrderCommand < Evnt::Command
|
45
46
|
|
47
|
+
to_normalize_params do
|
48
|
+
params[:quantity] = params[:quantity].to_i
|
49
|
+
end
|
50
|
+
|
46
51
|
to_validate_params do
|
47
52
|
# check params presence
|
48
53
|
err 'User should be present' if params[:user_id].blank?
|
data/lib/evnt.rb
CHANGED
@@ -7,7 +7,7 @@ require 'evnt/handler'
|
|
7
7
|
require 'evnt/validator'
|
8
8
|
|
9
9
|
##
|
10
|
-
# Evnt is a gem developed to integrate a
|
10
|
+
# Evnt is a gem developed to integrate a event driven development
|
11
11
|
# and CQRS pattern inside a ruby project.
|
12
12
|
# Evnt is developed to be used over all kinds of projects and
|
13
13
|
# frameworks (like Ruby on Rails or Sinatra), so it contains
|
data/lib/evnt/command.rb
CHANGED
@@ -26,8 +26,8 @@ module Evnt
|
|
26
26
|
#
|
27
27
|
# * +exceptions+ - Boolean value used to activate the throw of excetions.
|
28
28
|
##
|
29
|
-
def initialize(params
|
30
|
-
_init_command_data(params
|
29
|
+
def initialize(params)
|
30
|
+
_init_command_data(params)
|
31
31
|
_run_command_steps
|
32
32
|
end
|
33
33
|
|
@@ -105,14 +105,15 @@ module Evnt
|
|
105
105
|
private
|
106
106
|
|
107
107
|
# This function initializes the command required data.
|
108
|
-
def _init_command_data(params
|
108
|
+
def _init_command_data(params)
|
109
109
|
# set state
|
110
110
|
@state = {
|
111
111
|
result: true,
|
112
112
|
errors: []
|
113
113
|
}
|
114
|
-
|
114
|
+
|
115
115
|
# set options
|
116
|
+
options = params[:_options] || {}
|
116
117
|
@options = {
|
117
118
|
exceptions: options[:exceptions] || false
|
118
119
|
}
|
@@ -124,6 +125,7 @@ module Evnt
|
|
124
125
|
# This function calls requested steps (callback) for the command.
|
125
126
|
def _run_command_steps
|
126
127
|
_validate_single_params
|
128
|
+
_normalize_params if @state[:result] && defined?(_normalize_params)
|
127
129
|
_validate_params if @state[:result] && defined?(_validate_params)
|
128
130
|
_validate_logic if @state[:result] && defined?(_validate_logic)
|
129
131
|
_initialize_events if @state[:result] && defined?(_initialize_events)
|
@@ -144,7 +146,7 @@ module Evnt
|
|
144
146
|
end
|
145
147
|
end
|
146
148
|
|
147
|
-
@params
|
149
|
+
@params
|
148
150
|
end
|
149
151
|
|
150
152
|
# Class functions:
|
@@ -162,6 +164,11 @@ module Evnt
|
|
162
164
|
instance_variable_set(:@_validations, validations)
|
163
165
|
end
|
164
166
|
|
167
|
+
# This function sets the normalize params function for the command.
|
168
|
+
def to_normalize_params(&block)
|
169
|
+
define_method('_normalize_params', &block)
|
170
|
+
end
|
171
|
+
|
165
172
|
# This function sets the validate params function for the command.
|
166
173
|
def to_validate_params(&block)
|
167
174
|
define_method('_validate_params', &block)
|
data/lib/evnt/event.rb
CHANGED
@@ -38,7 +38,13 @@ module Evnt
|
|
38
38
|
#
|
39
39
|
# ==== Attributes
|
40
40
|
#
|
41
|
-
# * +params+ - The list of parameters for the
|
41
|
+
# * +params+ - The list of parameters for the event.
|
42
|
+
# * +_options+ - The list of options for the event.
|
43
|
+
#
|
44
|
+
# ==== Options
|
45
|
+
#
|
46
|
+
# * +silent+ - Boolean value used to avoid the call of the notify method of
|
47
|
+
# handlers.
|
42
48
|
##
|
43
49
|
def initialize(params)
|
44
50
|
_init_event_data(params)
|
@@ -71,6 +77,12 @@ module Evnt
|
|
71
77
|
reloaded: !params[:evnt].nil?
|
72
78
|
}
|
73
79
|
|
80
|
+
# set options
|
81
|
+
options = params[:_options] || {}
|
82
|
+
@options = {
|
83
|
+
silent: options[:silent] || false
|
84
|
+
}
|
85
|
+
|
74
86
|
# set payload
|
75
87
|
payload = params.reject { |k, _v| k[0] == '_' }
|
76
88
|
@payload = @state[:reloaded] ? payload : _generate_payload(payload)
|
@@ -113,6 +125,7 @@ module Evnt
|
|
113
125
|
# This function notify all handlers for the event.
|
114
126
|
def _notify_handlers
|
115
127
|
return unless self.class._handlers
|
128
|
+
return if @options[:silent]
|
116
129
|
|
117
130
|
# notify every handler
|
118
131
|
self.class._handlers.each do |handler|
|
data/lib/evnt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evnt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ideonetwork
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|