performify 0.2.0 → 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: c4e16b9f54a462104c0d2851bbbb75d30a36ae4d
4
- data.tar.gz: 4788ceeb7f37d2210c400afdbc628497386d2d9a
3
+ metadata.gz: 7085550353873788be4efd8f4392e452552241ef
4
+ data.tar.gz: 393c77cba7e60a2e5bf26f083782b1896a6df9f8
5
5
  SHA512:
6
- metadata.gz: a08337228b009943e7995b4384c30724f7685264bcea0ba1afda47643e5790924a8b84f6971cb4be0a5d071e882096b4516595a80b8bee10c78f6e5db4a7d7ec
7
- data.tar.gz: 2516c4e62c09d77ed0681a46c06ca2650f906d480a57f61bd4f5091e02bf0753a8005622c6dcad49a8cfba20b6d76de3ce30cd1063f2d2694bfed3767d3b30cc
6
+ metadata.gz: e9e118380656264e77d7785383e53c32fed6114cd184111e2d82a95cf3090e74ccb3ccd5eead974efcfc281e6e5fa7d0806812d379229248f0dd68643db65d49
7
+ data.tar.gz: 5526665b6e8ac153390a79d07e88566e4392a30e5d32fa77afe39608edf6f11a41ccfe859b5da2deea6ad3c36914f797a233c98d0d8db11273e905f60db0baa4
@@ -11,6 +11,11 @@ module Performify
11
11
  def initialize(current_user = nil, **args)
12
12
  @current_user = current_user
13
13
 
14
+ define_singleton_method(:execute!) do |&block|
15
+ return if defined?(@result)
16
+ super(&block)
17
+ end
18
+
14
19
  return if args.empty?
15
20
 
16
21
  validate(args).each do |arg_name, arg_value|
@@ -21,8 +26,6 @@ module Performify
21
26
  end
22
27
 
23
28
  def execute!
24
- return if defined?(@result)
25
-
26
29
  block_result = nil
27
30
 
28
31
  ActiveRecord::Base.transaction do
@@ -58,8 +61,9 @@ module Performify
58
61
  @result
59
62
  end
60
63
 
61
- def fail!(with_callbacks: true)
64
+ def fail!(with_callbacks: true, errors: nil)
62
65
  @result = false
66
+ errors!(errors) unless errors.nil?
63
67
  execute_callbacks if with_callbacks
64
68
  @result
65
69
  end
@@ -27,7 +27,8 @@ module Performify
27
27
  end
28
28
 
29
29
  def errors!(new_errors)
30
- errors.merge!(new_errors)
30
+ raise ArgumentError, 'Errors should be a hash' if new_errors.nil? || !new_errors.respond_to?(:to_h)
31
+ errors.merge!(new_errors.to_h)
31
32
  end
32
33
 
33
34
  def errors
@@ -1,3 +1,3 @@
1
1
  module Performify
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: performify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Tsvetkov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-21 00:00:00.000000000 Z
11
+ date: 2017-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord