dalliance 0.2.2 → 0.2.3
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/dalliance/version.rb
CHANGED
data/lib/dalliance.rb
CHANGED
@@ -79,12 +79,14 @@ module Dalliance
|
|
79
79
|
#BEGIN state_machine(s)
|
80
80
|
scope :pending, where(:dalliance_status => 'pending')
|
81
81
|
scope :processing, where(:dalliance_status => 'processing')
|
82
|
+
scope :validation_error, where(:dalliance_status => 'validation_error')
|
82
83
|
scope :processing_error, where(:dalliance_status => 'processing_error')
|
83
84
|
scope :completed, where(:dalliance_status => 'completed')
|
84
85
|
|
85
86
|
state_machine :dalliance_status, :initial => :pending do
|
86
87
|
state :pending
|
87
88
|
state :processing
|
89
|
+
state :validation_error
|
88
90
|
state :processing_error
|
89
91
|
state :completed
|
90
92
|
|
@@ -96,6 +98,10 @@ module Dalliance
|
|
96
98
|
transition :pending => :processing
|
97
99
|
end
|
98
100
|
|
101
|
+
event :validation_error_dalliance do
|
102
|
+
transition :processing => :validation_error
|
103
|
+
end
|
104
|
+
|
99
105
|
event :error_dalliance do
|
100
106
|
transition :processing => :processing_error
|
101
107
|
end
|
@@ -129,8 +135,19 @@ module Dalliance
|
|
129
135
|
end
|
130
136
|
end
|
131
137
|
|
138
|
+
def store_dalliance_validation_error!
|
139
|
+
self.dalliance_error_hash = {}
|
140
|
+
|
141
|
+
self.errors.each do |attribute, error|
|
142
|
+
self.dalliance_error_hash[attribute] ||= []
|
143
|
+
self.dalliance_error_hash[attribute] << error
|
144
|
+
end
|
145
|
+
|
146
|
+
validation_error_dalliance!
|
147
|
+
end
|
148
|
+
|
132
149
|
def error_or_completed?
|
133
|
-
processing_error? || completed?
|
150
|
+
validation_error? || processing_error? || completed?
|
134
151
|
end
|
135
152
|
|
136
153
|
def pending_or_processing?
|
@@ -159,7 +176,7 @@ module Dalliance
|
|
159
176
|
|
160
177
|
self.send(self.class.dalliance_options[:dalliance_method])
|
161
178
|
|
162
|
-
finish_dalliance!
|
179
|
+
finish_dalliance! unless validation_error?
|
163
180
|
rescue StandardError => e
|
164
181
|
#Save the error for future analysis...
|
165
182
|
self.dalliance_error_hash = {:error => e.class.name, :message => e.message, :backtrace => e.backtrace}
|
@@ -143,4 +143,37 @@ describe DallianceModel do
|
|
143
143
|
subject.dalliance_progress.should == 0
|
144
144
|
end
|
145
145
|
end
|
146
|
+
|
147
|
+
context "validation error" do
|
148
|
+
before(:all) do
|
149
|
+
DallianceModel.dalliance_options[:dalliance_method] = :dalliance_validation_error_method
|
150
|
+
DallianceModel.dalliance_options[:worker_class] = Dalliance::Workers::DelayedJob
|
151
|
+
DallianceModel.dalliance_options[:queue] = 'dalliance'
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should store the error" do
|
155
|
+
subject.dalliance_background_process
|
156
|
+
Delayed::Worker.new(:queues => [:dalliance]).work_off
|
157
|
+
subject.reload
|
158
|
+
|
159
|
+
subject.dalliance_error_hash.should_not be_empty
|
160
|
+
subject.dalliance_error_hash[:successful].should == ['is invalid']
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should set the dalliance_status to validation_error" do
|
164
|
+
subject.dalliance_background_process
|
165
|
+
Delayed::Worker.new(:queues => [:dalliance]).work_off
|
166
|
+
subject.reload
|
167
|
+
|
168
|
+
subject.should be_validation_error
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should set the dalliance_progress to 0" do
|
172
|
+
subject.dalliance_background_process
|
173
|
+
Delayed::Worker.new(:queues => [:dalliance]).work_off
|
174
|
+
subject.reload
|
175
|
+
|
176
|
+
subject.dalliance_progress.should == 0
|
177
|
+
end
|
178
|
+
end
|
146
179
|
end
|
@@ -159,4 +159,37 @@ describe DallianceModel do
|
|
159
159
|
subject.dalliance_progress.should == 0
|
160
160
|
end
|
161
161
|
end
|
162
|
+
|
163
|
+
context "validation error" do
|
164
|
+
before(:all) do
|
165
|
+
DallianceModel.dalliance_options[:dalliance_method] = :dalliance_validation_error_method
|
166
|
+
DallianceModel.dalliance_options[:worker_class] = Dalliance::Workers::Resque
|
167
|
+
DallianceModel.dalliance_options[:queue] = 'dalliance'
|
168
|
+
end
|
169
|
+
|
170
|
+
it "should store the error" do
|
171
|
+
subject.dalliance_background_process
|
172
|
+
Resque::Worker.new(:dalliance).process
|
173
|
+
subject.reload
|
174
|
+
|
175
|
+
subject.dalliance_error_hash.should_not be_empty
|
176
|
+
subject.dalliance_error_hash[:successful].should == ['is invalid']
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should set the dalliance_status to validation_error" do
|
180
|
+
subject.dalliance_background_process
|
181
|
+
Resque::Worker.new(:dalliance).process
|
182
|
+
subject.reload
|
183
|
+
|
184
|
+
subject.should be_validation_error
|
185
|
+
end
|
186
|
+
|
187
|
+
it "should set the dalliance_progress to 0" do
|
188
|
+
subject.dalliance_background_process
|
189
|
+
Resque::Worker.new(:dalliance).process
|
190
|
+
subject.reload
|
191
|
+
|
192
|
+
subject.dalliance_progress.should == 0
|
193
|
+
end
|
194
|
+
end
|
162
195
|
end
|
@@ -65,4 +65,27 @@ describe DallianceModel do
|
|
65
65
|
subject.dalliance_progress.should == 0
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
context "validation error" do
|
70
|
+
before(:all) do
|
71
|
+
DallianceModel.dalliance_options[:dalliance_method] = :dalliance_validation_error_method
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should store the error" do
|
75
|
+
subject.dalliance_background_process
|
76
|
+
|
77
|
+
subject.dalliance_error_hash.should_not be_empty
|
78
|
+
subject.dalliance_error_hash[:successful].should == ['is invalid']
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should set the dalliance_status to validation_error" do
|
82
|
+
lambda { subject.dalliance_background_process }.should change(subject, :dalliance_status).from('pending').to('validation_error')
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should set the dalliance_progress to 0" do
|
86
|
+
subject.dalliance_background_process
|
87
|
+
|
88
|
+
subject.dalliance_progress.should == 0
|
89
|
+
end
|
90
|
+
end
|
68
91
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dalliance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-02-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -193,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
193
|
version: '0'
|
194
194
|
requirements: []
|
195
195
|
rubyforge_project: dalliance
|
196
|
-
rubygems_version: 1.8.
|
196
|
+
rubygems_version: 1.8.23
|
197
197
|
signing_key:
|
198
198
|
specification_version: 3
|
199
199
|
summary: Wrapper for an ActiveRecord model with a single ascynhronous method
|