batchy 0.1.1 → 0.2.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.
data/lib/batchy/batch.rb CHANGED
@@ -14,6 +14,7 @@ module Batchy
14
14
  has_many :children, :primary_key => :id, :foreign_key => :parent_id, :class_name => 'Batchy::Batch'
15
15
 
16
16
  serialize :error
17
+ serialize :backtrace
17
18
 
18
19
  state_machine :state, :initial => :new do
19
20
  event :start do
@@ -79,6 +80,25 @@ module Batchy
79
80
  rel.where("id <> ?", id)
80
81
  end
81
82
 
83
+ # When serializing an exception, the YAML library does not save the
84
+ # backtrace. To fix this, we're saving both the error and backtrace
85
+ # when the error is saved
86
+ def error=(err)
87
+ write_attribute(:error, err)
88
+ write_attribute(:backtrace, err.backtrace)
89
+ end
90
+
91
+ # Conversely, the backtrace is added to the error after a read
92
+ def error
93
+ err = read_attribute(:error)
94
+ return err if err.blank?
95
+
96
+ backtrace = read_attribute(:backtrace)
97
+ err.set_backtrace(backtrace)
98
+
99
+ err
100
+ end
101
+
82
102
  # Is this batch expired
83
103
  def expired?
84
104
  expire_at < DateTime.now && state == 'running'
@@ -1,3 +1,3 @@
1
1
  module Batchy
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -10,7 +10,8 @@ class CreateBatchyBatches < ActiveRecord::Migration
10
10
  table.integer :pid # Process ID of the current batch
11
11
  table.string :name # Name of the batch job
12
12
  table.string :guid # Field to be used for unique identification of the calling job
13
- table.integer :parent_id # Self-referential ID for identifying parent batches
13
+ table.integer :parent_id # Self-referential ID for identifying parent batches
14
+ table.text :backtrace # Backtrace for an error, if there is one
14
15
  table.timestamps
15
16
  end
16
17
 
@@ -0,0 +1,9 @@
1
+ class AddBacktraceToBatchy < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :batchy_batches, :backtrace, :text
4
+ end
5
+
6
+ def self.down
7
+ remove_column :batchy_batches, :backtrace
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+ require 'rails/generators/active_record/migration'
4
+
5
+ module Batchy
6
+ class UpgradeGenerator < Rails::Generators::Base
7
+ include Rails::Generators::Migration
8
+ extend ActiveRecord::Generators::Migration
9
+
10
+ self.source_paths << File.join(File.dirname(__FILE__), 'templates')
11
+
12
+ def create_migration_file
13
+ migration_template 'upgrade_migration.rb', 'db/migrate/add_backtrace_to_batchy.rb'
14
+ end
15
+ end
16
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: batchy
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.1
5
+ version: 0.2.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Bob Briski
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-03-31 00:00:00 Z
13
+ date: 2012-04-03 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -149,6 +149,8 @@ files:
149
149
  - lib/batchy.rb
150
150
  - lib/generators/batchy/active_record_generator.rb
151
151
  - lib/generators/batchy/templates/migration.rb
152
+ - lib/generators/batchy/templates/upgrade_migration.rb
153
+ - lib/generators/batchy/upgrade_generator.rb
152
154
  - lib/tasks/batchy_tasks.rake
153
155
  - MIT-LICENSE
154
156
  - Rakefile
@@ -166,7 +168,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
168
  requirements:
167
169
  - - ">="
168
170
  - !ruby/object:Gem::Version
169
- hash: 2357857860950339398
171
+ hash: 4457839131585176911
170
172
  segments:
171
173
  - 0
172
174
  version: "0"
@@ -175,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
177
  requirements:
176
178
  - - ">="
177
179
  - !ruby/object:Gem::Version
178
- hash: 2357857860950339398
180
+ hash: 4457839131585176911
179
181
  segments:
180
182
  - 0
181
183
  version: "0"