performify 0.2.0 → 0.3.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 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