performify 0.4.1 → 0.4.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
  SHA1:
3
- metadata.gz: a683e8557fe63bce6b47dc99f35e9df354f1df02
4
- data.tar.gz: 6ccd6d959c82eddae847f73c531e1fc8bd8f8d89
3
+ metadata.gz: 367bfe01f77286f482805897593ecc737774a018
4
+ data.tar.gz: 2c3c2ea399f9ada30d3bea8816fea838e0808dde
5
5
  SHA512:
6
- metadata.gz: ab7e975a64c0877e3e7fccb9e1fff3669288621c92d84f2007b6e34c110e672f089ba771581726ffcfcb919909e86b9b480797e0808c396b37ace33b6f8a133e
7
- data.tar.gz: d911869f274a6e69d26f29ffd5998bad0ffe4bdbbf811f1837204768665f68d44b26b221e5d36c4fd4d7c10222997d80990d9fe3f89629e3b43e3d401fe1e417
6
+ metadata.gz: 3a2447ad50e473e7d49c49c94f633d0f269286a5aaa96e502d8e184491dc3281ac40cfd89037abd6904291f7a8e138c8e7df3aae4c6317fd854bcb92420f3be7
7
+ data.tar.gz: e850cd17689446b5ba68e58d91829b46896370a8976c83439d7a3596c07a60098af758d3659fe924bbfe274e8427a6b65936bdc63eb6acf4ef8875eb5a888558
@@ -7,17 +7,13 @@ module Performify
7
7
  extend Performify::Validation
8
8
 
9
9
  attr_reader :current_user
10
+ attr_reader :args
10
11
 
11
12
  def initialize(current_user = nil, **args)
12
13
  @current_user = current_user
14
+ @args = args
13
15
 
14
- define_singleton_method(:execute!) do |&block|
15
- return if defined?(@result)
16
- super(&block)
17
- end
18
-
19
- validate(args)
20
- define_singleton_methods(args)
16
+ prepare_instance
21
17
 
22
18
  fail!(with_callbacks: true) if errors?
23
19
  end
@@ -73,7 +69,17 @@ module Performify
73
69
  @result.blank?
74
70
  end
75
71
 
76
- private def define_singleton_methods(args)
72
+ private def prepare_instance
73
+ define_singleton_method(:execute!) do |&block|
74
+ return if defined?(@result)
75
+ super(&block)
76
+ end
77
+
78
+ validate
79
+ define_singleton_methods
80
+ end
81
+
82
+ private def define_singleton_methods
77
83
  param_names = schema ? schema.rules.keys : args.keys
78
84
  param_names.each do |param_name|
79
85
  define_singleton_method(param_name) { args[param_name] }
@@ -24,7 +24,7 @@ module Performify
24
24
  raise UnknownTypeOfCallbackError, "Type #{type_of_callback} is not allowed"
25
25
  end
26
26
  cbs = (@service_callbacks || {}).fetch(type_of_callback, [])
27
- cbs.each { |cb| instance.instance_eval(&cb) }
27
+ cbs.each { |cb| cb.is_a?(Proc) ? instance.instance_eval(&cb) : instance.send(cb) }
28
28
  nil
29
29
  end
30
30
 
@@ -19,7 +19,7 @@ module Performify
19
19
  self.class.schema
20
20
  end
21
21
 
22
- def validate(args)
22
+ def validate
23
23
  return args if schema.nil?
24
24
  result = schema.call(args)
25
25
  errors!(result.errors) unless result.success?
@@ -1,3 +1,3 @@
1
1
  module Performify
2
- VERSION = '0.4.1'.freeze
2
+ VERSION = '0.4.2'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: performify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Tsvetkov