piko_transaction 3.0.0 → 3.0.5

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: 1fb92d89b2652b73d375601b371f4e455bb288a2
4
- data.tar.gz: 2aedbe5d5503fd358d82bc407a8f5f572d14c066
3
+ metadata.gz: 1576d38fce4625c421d0285b2448092bce7eb73e
4
+ data.tar.gz: 1501f8f4072e9cf41b562876c70ffbadffc403d3
5
5
  SHA512:
6
- metadata.gz: d007f9c884d25c6028e8e790239be5d2b2886970963d9df4b91cab56e0927dd4cab49f628d20cfb8675b988a92e457e5aa387b96f9be42ee3976f6745628f6af
7
- data.tar.gz: 29a8c4244b32c2e9de4f03b724116bee83472b5bc2630391bd74e82eef1128a2f76f8393d365eecd588983c4cb9500e22cbfc43dd624470fe8ab3636e656a6b4
6
+ metadata.gz: 66673e9a68a8aea8aaf476b739962622a5aaa835c7fe96f9e67eb343117ab7cca64b5fa64642bea2e4005ddda44c1e18bf636cbfbbd0059af1290df43abf12bc
7
+ data.tar.gz: b4e7b4296c20c517f707b53c19a9b818216f69911db52e506a139d799207f972d1aad8b11d42b8c7feefc1c708d76e0017a66c52a37fbe91614783d8d599ae05
@@ -1,3 +1,11 @@
1
+ ### 3.0.2 - 3.0.5 (2017.07.04)
2
+
3
+ * fix travis build
4
+
5
+ ### 3.0.1 (2017.07.04)
6
+
7
+ * extract Command class to reuse some code
8
+
1
9
  ### 3.0.0 (2017.06.13)
2
10
 
3
11
  * allow to register success and failure observers in commands
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (C) 2017 Szymon Kopciewski
4
+ #
5
+ # This file is part of PikoTransaction.
6
+ #
7
+ # This program is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU General Public License as published by
9
+ # the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # This program is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU General Public License
18
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
+
20
+ require "piko_transaction/logger"
21
+
22
+ module PikoTransaction
23
+ class Command
24
+ include Logger
25
+
26
+ def initialize()
27
+ @name = nil
28
+ @success_callbacks = []
29
+ @failure_callbacks = []
30
+ @done = false
31
+ end
32
+
33
+ def to_s
34
+ format "[%s]", @name || self.class.name.split("::").last
35
+ end
36
+
37
+ def name(value)
38
+ @name = value.to_s
39
+ end
40
+
41
+ def add_success_callback(callback)
42
+ @success_callbacks << callback if callback.respond_to?(:call)
43
+ logger.debug { format "%s Registered success callbacks: %i", to_s, @success_callbacks.count }
44
+ end
45
+
46
+ def add_failure_callback(callback)
47
+ @failure_callbacks << callback if callback.respond_to?(:call)
48
+ logger.debug { format "%s Registered failure callbacks: %i", to_s, @failure_callbacks.count }
49
+ end
50
+
51
+ private
52
+
53
+ def terminate(msg)
54
+ logger.warn { format "%s %s", to_s, msg }
55
+ false
56
+ end
57
+
58
+ def mark_as_done
59
+ @done = true
60
+ end
61
+
62
+ def mark_as_undone
63
+ @done = false
64
+ true
65
+ end
66
+
67
+ def can_do?
68
+ !@done
69
+ end
70
+
71
+ def can_undo?
72
+ @done
73
+ end
74
+
75
+ def call_failure_callbacks
76
+ @failure_callbacks.each_with_index do |callback, i|
77
+ logger.debug { format "%s Run %i failure callback", to_s, i + 1 }
78
+ callback.call
79
+ end
80
+ false
81
+ end
82
+ end
83
+ end
@@ -17,19 +17,14 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
- require "piko_transaction/logger"
20
+ require "piko_transaction/command"
21
21
 
22
22
  module PikoTransaction
23
- class CustomCommand
24
- include Logger
25
-
23
+ class CustomCommand < Command
26
24
  def initialize(do_action = nil, undo_action = nil, &alternative_do_action)
27
- @name = nil
25
+ super()
28
26
  @do_action = choose_do_action(do_action, alternative_do_action)
29
27
  @undo_action = undo_action
30
- @success_callbacks = []
31
- @failure_callbacks = []
32
- @done = false
33
28
  end
34
29
 
35
30
  def do
@@ -40,52 +35,12 @@ module PikoTransaction
40
35
  execute_undo_action
41
36
  end
42
37
 
43
- def to_s
44
- format "[%s]", @name || "custom_cmd"
45
- end
46
-
47
- def name(value)
48
- @name = value.to_s
49
- end
50
-
51
- def add_success_callback(callback)
52
- @success_callbacks << callback if callback.respond_to?(:call)
53
- logger.debug { format "%s Registered success callbacks: %i", to_s, @success_callbacks.count }
54
- end
55
-
56
- def add_failure_callback(callback)
57
- @failure_callbacks << callback if callback.respond_to?(:call)
58
- logger.debug { format "%s Registered failure callbacks: %i", to_s, @failure_callbacks.count }
59
- end
60
-
61
38
  private
62
39
 
63
40
  def choose_do_action(action, alternative_action)
64
41
  action || alternative_action
65
42
  end
66
43
 
67
- def terminate(msg)
68
- logger.warn { format "%s %s", to_s, msg }
69
- false
70
- end
71
-
72
- def mark_as_done
73
- @done = true
74
- end
75
-
76
- def mark_as_undone
77
- @done = false
78
- true
79
- end
80
-
81
- def can_do?
82
- !@done
83
- end
84
-
85
- def can_undo?
86
- @done
87
- end
88
-
89
44
  def execute_do_action
90
45
  return terminate("Command already done") unless can_do?
91
46
  return terminate("'Do' action do not responds to :call") unless \
@@ -134,13 +89,5 @@ module PikoTransaction
134
89
  end
135
90
  true
136
91
  end
137
-
138
- def call_failure_callbacks
139
- @failure_callbacks.each_with_index do |callback, i|
140
- logger.debug { format "%s Run %i failure callback", to_s, i + 1 }
141
- callback.call
142
- end
143
- false
144
- end
145
92
  end
146
93
  end
@@ -17,21 +17,16 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
- require "piko_transaction/logger"
20
+ require "piko_transaction/command"
21
21
 
22
22
  module PikoTransaction
23
- class DeleteCommand
24
- include Logger
25
-
23
+ class DeleteCommand < Command
26
24
  def initialize(document_id, collection, &success_action)
27
- @name = nil
25
+ super()
28
26
  @document_id = document_id
29
27
  @collection = collection
30
28
  @success_action = success_action
31
- @success_callbacks = []
32
- @failure_callbacks = []
33
29
  @deleted_doc = nil
34
- @done = false
35
30
  end
36
31
 
37
32
  def do
@@ -43,48 +38,8 @@ module PikoTransaction
43
38
  store_document
44
39
  end
45
40
 
46
- def to_s
47
- format "[%s]", @name || "delete_cmd"
48
- end
49
-
50
- def name(value)
51
- @name = value.to_s
52
- end
53
-
54
- def add_success_callback(callback)
55
- @success_callbacks << callback if callback.respond_to?(:call)
56
- logger.debug { format "%s Registered success callbacks: %s", to_s, @success_callbacks.count }
57
- end
58
-
59
- def add_failure_callback(callback)
60
- @failure_callbacks << callback if callback.respond_to?(:call)
61
- logger.debug { format "%s Registered failure callbacks: %s", to_s, @failure_callbacks.count }
62
- end
63
-
64
41
  private
65
42
 
66
- def terminate(msg)
67
- logger.warn { format "%s %s", to_s, msg }
68
- false
69
- end
70
-
71
- def mark_as_done
72
- @done = true
73
- end
74
-
75
- def mark_as_undone
76
- @done = false
77
- true
78
- end
79
-
80
- def can_do?
81
- !@done
82
- end
83
-
84
- def can_undo?
85
- @done
86
- end
87
-
88
43
  def remove_document
89
44
  return terminate("Command already done") unless can_do?
90
45
  return terminate("Error during deleting document") unless delete_document_from_collection
@@ -116,13 +71,5 @@ module PikoTransaction
116
71
  end
117
72
  true
118
73
  end
119
-
120
- def call_failure_callbacks
121
- @failure_callbacks.each_with_index do |callback, i|
122
- logger.debug { format "%s Run %i failure callback", to_s, i + 1 }
123
- callback.call
124
- end
125
- false
126
- end
127
74
  end
128
75
  end
@@ -17,21 +17,16 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
- require "piko_transaction/logger"
20
+ require "piko_transaction/command"
21
21
 
22
22
  module PikoTransaction
23
- class InsertCommand
24
- include Logger
25
-
23
+ class InsertCommand < Command
26
24
  def initialize(document, collection, &success_action)
27
- @name = nil
25
+ super()
28
26
  @document = document
29
27
  @collection = collection
30
28
  @success_action = success_action
31
- @success_callbacks = []
32
- @failure_callbacks = []
33
29
  @inserted_id = nil
34
- @done = false
35
30
  end
36
31
 
37
32
  def do
@@ -43,48 +38,8 @@ module PikoTransaction
43
38
  remove_document
44
39
  end
45
40
 
46
- def to_s
47
- format "[%s]", @name || "insert_cmd"
48
- end
49
-
50
- def name(value)
51
- @name = value.to_s
52
- end
53
-
54
- def add_success_callback(callback)
55
- @success_callbacks << callback if callback.respond_to?(:call)
56
- logger.debug { format "%s Registered success callbacks: %i", to_s, @success_callbacks.count }
57
- end
58
-
59
- def add_failure_callback(callback)
60
- @failure_callbacks << callback if callback.respond_to?(:call)
61
- logger.debug { format "%s Registered failure callbacks: %i", to_s, @failure_callbacks.count }
62
- end
63
-
64
41
  private
65
42
 
66
- def terminate(msg)
67
- logger.warn { format "%s %s", to_s, msg }
68
- false
69
- end
70
-
71
- def mark_as_done
72
- @done = true
73
- end
74
-
75
- def mark_as_undone
76
- @done = false
77
- true
78
- end
79
-
80
- def can_do?
81
- !@done
82
- end
83
-
84
- def can_undo?
85
- @done
86
- end
87
-
88
43
  def store_document
89
44
  return terminate("Command already done") unless can_do?
90
45
  return terminate("Error during inserting document") unless insert_document_into_collection
@@ -116,13 +71,5 @@ module PikoTransaction
116
71
  end
117
72
  true
118
73
  end
119
-
120
- def call_failure_callbacks
121
- @failure_callbacks.each_with_index do |callback, i|
122
- logger.debug { format "%s Run %i failure callback", to_s, i + 1 }
123
- callback.call
124
- end
125
- false
126
- end
127
74
  end
128
75
  end
@@ -18,5 +18,5 @@
18
18
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
20
  module PikoTransaction
21
- VERSION = "3.0.0"
21
+ VERSION = "3.0.5"
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piko_transaction
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Szymon Kopciewski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-13 00:00:00.000000000 Z
11
+ date: 2017-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logger2r
@@ -120,6 +120,7 @@ files:
120
120
  - LICENSE
121
121
  - README.md
122
122
  - lib/piko_transaction.rb
123
+ - lib/piko_transaction/command.rb
123
124
  - lib/piko_transaction/custom_command.rb
124
125
  - lib/piko_transaction/delete_command.rb
125
126
  - lib/piko_transaction/insert_command.rb
@@ -147,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
148
  version: '0'
148
149
  requirements: []
149
150
  rubyforge_project:
150
- rubygems_version: 2.4.8
151
+ rubygems_version: 2.6.12
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: Abstraction layer for storage