batchy 0.2.5 → 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 861de001bcca1c24812db299eb7807a426e7c630
4
+ data.tar.gz: ecdc1a63d144b2eac0e26bad7cbc556eadfa2b3b
5
+ SHA512:
6
+ metadata.gz: 8b083a3ad267c2687b5e391c4be3f4fe0e58c45032343f34e54602883b20f9ca36ac19c82930b15fbe92ad0435c60139bb537ed33d83b8410ba6f7c8ba549139
7
+ data.tar.gz: 97b8c7fe34bb27e5e73ea23ee9e0867e791581a6de20495f35d025d374f5e798dccf62eff981a765f6720c80e278f0de938b52737aa12d3284545ecf092bd7ca
@@ -5,7 +5,7 @@ require 'andand'
5
5
  require 'state_machine/core'
6
6
  require 'sys/proctable'
7
7
  require 'socket'
8
-
8
+ require 'batchy/stopped_error'
9
9
  require 'batchy/batch'
10
10
  require 'batchy/configuration'
11
11
  require 'batchy/version'
@@ -43,9 +43,10 @@ module Batchy
43
43
 
44
44
  event :finish do
45
45
  transition :running => :success, :unless => :has_errors
46
+ transition :running => :stopped, :if => :was_stopped
46
47
  transition :running => :errored
47
48
  end
48
- after_transition :running => [:success, :errored] do | batch, transition |
49
+ after_transition :running => [:success, :errored, :stopped] do | batch, transition |
49
50
  batch.finished_at = DateTime.now
50
51
  batch.save!
51
52
  end
@@ -139,6 +140,13 @@ module Batchy
139
140
  def has_errors
140
141
  error?
141
142
  end
143
+
144
+ # Was this errored through a StoppedError?
145
+ # See StoppedError for example uses
146
+ def was_stopped
147
+ has_errors and error.class == StoppedError
148
+ end
149
+
142
150
 
143
151
  # Is this an unwanted duplicate process?
144
152
  def invalid_duplication
@@ -0,0 +1,12 @@
1
+ module Batchy
2
+ # The StoppedError can be thrown in a batch's run to signify that
3
+ # the batch was stopped, but not errored.
4
+ #
5
+ # An example use for this would be as part of a Data Recency Check -
6
+ # which runs a SQL Statement to ensure the existance of data.
7
+ # If data is not found, a StoppedError can be raised, which signifies
8
+ # that it and any following batches were explicitly halted.
9
+ class StoppedError < StandardError
10
+
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Batchy
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,137 +1,169 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: batchy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Bob Briski
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-07-31 00:00:00.000000000 Z
11
+ date: 2013-08-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
- requirement: &2152877960 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *2152877960
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: activesupport
27
- requirement: &2152877180 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ~>
31
32
  - !ruby/object:Gem::Version
32
33
  version: '3.0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *2152877180
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: addressable
38
- requirement: &2152876680 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
47
  version: '2.2'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *2152876680
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.2'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: andand
49
- requirement: &2152876060 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '1.3'
55
62
  type: :runtime
56
63
  prerelease: false
57
- version_requirements: *2152876060
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: state_machine
60
- requirement: &2152875560 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
73
  - - ! '>='
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :runtime
67
77
  prerelease: false
68
- version_requirements: *2152875560
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
- requirement: &2152875060 !ruby/object:Gem::Requirement
72
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
73
86
  requirements:
74
87
  - - ! '>='
75
88
  - !ruby/object:Gem::Version
76
89
  version: '0'
77
90
  type: :runtime
78
91
  prerelease: false
79
- version_requirements: *2152875060
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
80
97
  - !ruby/object:Gem::Dependency
81
98
  name: sys-proctable
82
- requirement: &2152874620 !ruby/object:Gem::Requirement
83
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
84
100
  requirements:
85
101
  - - ! '>='
86
102
  - !ruby/object:Gem::Version
87
103
  version: '0'
88
104
  type: :runtime
89
105
  prerelease: false
90
- version_requirements: *2152874620
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
91
111
  - !ruby/object:Gem::Dependency
92
112
  name: rspec
93
- requirement: &2152874200 !ruby/object:Gem::Requirement
94
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
95
114
  requirements:
96
115
  - - ! '>='
97
116
  - !ruby/object:Gem::Version
98
117
  version: '0'
99
118
  type: :development
100
119
  prerelease: false
101
- version_requirements: *2152874200
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
102
125
  - !ruby/object:Gem::Dependency
103
126
  name: factory_girl
104
- requirement: &2152873760 !ruby/object:Gem::Requirement
105
- none: false
127
+ requirement: !ruby/object:Gem::Requirement
106
128
  requirements:
107
129
  - - ! '>='
108
130
  - !ruby/object:Gem::Version
109
131
  version: '0'
110
132
  type: :development
111
133
  prerelease: false
112
- version_requirements: *2152873760
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
113
139
  - !ruby/object:Gem::Dependency
114
140
  name: sqlite3
115
- requirement: &2152873260 !ruby/object:Gem::Requirement
116
- none: false
141
+ requirement: !ruby/object:Gem::Requirement
117
142
  requirements:
118
143
  - - ! '>='
119
144
  - !ruby/object:Gem::Version
120
145
  version: '0'
121
146
  type: :development
122
147
  prerelease: false
123
- version_requirements: *2152873260
124
- - !ruby/object:Gem::Dependency
125
- name: database_cleaner
126
- requirement: &2152872780 !ruby/object:Gem::Requirement
127
- none: false
148
+ version_requirements: !ruby/object:Gem::Requirement
128
149
  requirements:
129
150
  - - ! '>='
130
151
  - !ruby/object:Gem::Version
131
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: database_cleaner
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 1.0.1
132
160
  type: :development
133
161
  prerelease: false
134
- version_requirements: *2152872780
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 1.0.1
135
167
  description: For handling all of the exceptions, states, timeouts, etc of batch processes
136
168
  email:
137
169
  - bbriski@raybeam.com
@@ -141,6 +173,7 @@ extra_rdoc_files: []
141
173
  files:
142
174
  - lib/batchy/batch.rb
143
175
  - lib/batchy/configuration.rb
176
+ - lib/batchy/stopped_error.rb
144
177
  - lib/batchy/version.rb
145
178
  - lib/batchy.rb
146
179
  - lib/generators/batchy/active_record_generator.rb
@@ -153,32 +186,25 @@ files:
153
186
  - README.rdoc
154
187
  homepage: https://github.com/Raybeam/batchy
155
188
  licenses: []
189
+ metadata: {}
156
190
  post_install_message:
157
191
  rdoc_options: []
158
192
  require_paths:
159
193
  - lib
160
194
  required_ruby_version: !ruby/object:Gem::Requirement
161
- none: false
162
195
  requirements:
163
196
  - - ! '>='
164
197
  - !ruby/object:Gem::Version
165
198
  version: '0'
166
- segments:
167
- - 0
168
- hash: -1084013697829719075
169
199
  required_rubygems_version: !ruby/object:Gem::Requirement
170
- none: false
171
200
  requirements:
172
201
  - - ! '>='
173
202
  - !ruby/object:Gem::Version
174
203
  version: '0'
175
- segments:
176
- - 0
177
- hash: -1084013697829719075
178
204
  requirements: []
179
205
  rubyforge_project:
180
- rubygems_version: 1.8.11
206
+ rubygems_version: 2.0.7
181
207
  signing_key:
182
- specification_version: 3
208
+ specification_version: 4
183
209
  summary: Set up and tear down a batch
184
210
  test_files: []