traffic_mansion 0.0.15 → 0.0.16
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 +4 -4
- data/lib/traffic_mansion/queue.rb +21 -7
- data/lib/traffic_mansion/version.rb +1 -1
- data/spec/queue_spec.rb +47 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a4e05cf8d2d6d40c3e987b8d11a38a95e3eb1a1
|
4
|
+
data.tar.gz: c3982ed383e534acf243439a2e16bce2bce8d670
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8943f9f2c4901ae0d748dbf76869db31151151f3caa59a2144e7c1e9c7f94e62be70ac78c259ac067a6b24115d40d285aef63b11ecb15d2ba51f314b68cfff15
|
7
|
+
data.tar.gz: 1e202381df9c51c6e3618f0f4d5eb4c9f0afbdc414098f9a6599f76bc43b560bb23e34944e1fca317e468695d2902ebc538ab4d3f83a16fd220d13dbcf8f7f96
|
@@ -9,6 +9,7 @@ module TrafficMansion
|
|
9
9
|
field :parent_event_id, :type => String
|
10
10
|
field :user_id, :type => String
|
11
11
|
field :data, :type => Hash
|
12
|
+
field :last_error, :type => String
|
12
13
|
field :result, :type => Hash
|
13
14
|
field :processed, :type => Boolean, :default => false
|
14
15
|
|
@@ -110,30 +111,43 @@ module TrafficMansion
|
|
110
111
|
self.parent_event_id = parent_event.id
|
111
112
|
save!
|
112
113
|
else
|
113
|
-
|
114
|
+
error = "Could not find a parent event!"
|
115
|
+
update_error error
|
116
|
+
raise error
|
114
117
|
end
|
115
118
|
end
|
116
119
|
|
117
120
|
def update_from_parent
|
118
121
|
parent_event = TrafficMansion::Queue.find_by_id parent_event_id
|
119
|
-
if parent_event
|
122
|
+
if !parent_event
|
123
|
+
error = "Could not find a parent event!"
|
124
|
+
raise error
|
125
|
+
end
|
126
|
+
if parent_event.processed
|
120
127
|
self.data["visit_id"] = parent_event.data["visit_id"].present? ? parent_event.data["visit_id"] : parent_event.result["visit_id"]
|
121
128
|
save!
|
122
129
|
else
|
123
|
-
|
130
|
+
error = "Parent was not processed yet!"
|
131
|
+
update_error error
|
132
|
+
raise error
|
124
133
|
end
|
125
134
|
end
|
126
135
|
|
127
136
|
def track
|
128
137
|
tracker = TrafficMansion::Tracker.new data
|
129
138
|
res = tracker.send type, data
|
139
|
+
self.set :result, res.get_response
|
130
140
|
if res.success?
|
131
|
-
self.
|
132
|
-
self.processed = true
|
133
|
-
save!
|
141
|
+
self.set :processed, true
|
134
142
|
else
|
135
|
-
|
143
|
+
error = "Tracking failed with result: #{res.get_error}"
|
144
|
+
update_error error
|
145
|
+
raise error
|
136
146
|
end
|
137
147
|
end
|
148
|
+
|
149
|
+
def update_error error
|
150
|
+
self.set :last_error, error.to_s
|
151
|
+
end
|
138
152
|
end
|
139
153
|
end
|
data/spec/queue_spec.rb
CHANGED
@@ -276,7 +276,7 @@ describe TrafficMansion::Queue do
|
|
276
276
|
end
|
277
277
|
|
278
278
|
context "when the repsonse is not success" do
|
279
|
-
let(:result) { mock("TMResult", :success? => false, :get_error => "error text") }
|
279
|
+
let(:result) { mock("TMResult", :success? => false, :get_error => "error text", :get_response => nil) }
|
280
280
|
|
281
281
|
before :each do
|
282
282
|
TrafficMansion::Tracker.any_instance.stub(:send => result)
|
@@ -344,7 +344,7 @@ describe TrafficMansion::Queue do
|
|
344
344
|
end
|
345
345
|
|
346
346
|
context "when the repsonse is not success" do
|
347
|
-
let(:result) { mock("TMResult", :success? => false, :get_error => "error text") }
|
347
|
+
let(:result) { mock("TMResult", :success? => false, :get_error => "error text", :get_response => nil) }
|
348
348
|
|
349
349
|
before :each do
|
350
350
|
TrafficMansion::Tracker.any_instance.stub(:send => result)
|
@@ -360,4 +360,49 @@ describe TrafficMansion::Queue do
|
|
360
360
|
end
|
361
361
|
end
|
362
362
|
end
|
363
|
+
|
364
|
+
describe :track do
|
365
|
+
let!(:event) { TrafficMansion::Queue.add "visit"}
|
366
|
+
let(:response) { {:code => "1"} }
|
367
|
+
let(:result) { mock("TMResult", :success? => true, :get_error => "error text", :get_response => response) }
|
368
|
+
|
369
|
+
before :each do
|
370
|
+
TrafficMansion::Tracker.any_instance.stub(:send => result)
|
371
|
+
end
|
372
|
+
|
373
|
+
it "saves the TM result" do
|
374
|
+
event.track
|
375
|
+
event.result.should be response
|
376
|
+
end
|
377
|
+
|
378
|
+
context "when the result is success" do
|
379
|
+
let(:result) { mock("TMResult", :success? => true, :get_error => "error text", :get_response => response) }
|
380
|
+
|
381
|
+
before :each do
|
382
|
+
TrafficMansion::Tracker.any_instance.stub(:send => result)
|
383
|
+
end
|
384
|
+
|
385
|
+
it "sets the event as processed" do
|
386
|
+
event.track
|
387
|
+
event.processed.should be true
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
context "when the result is not success" do
|
392
|
+
let(:result) { mock("TMResult", :success? => false, :get_error => "error text", :get_response => response) }
|
393
|
+
|
394
|
+
before :each do
|
395
|
+
TrafficMansion::Tracker.any_instance.stub(:send => result)
|
396
|
+
end
|
397
|
+
|
398
|
+
it "sets the event as not processed" do
|
399
|
+
lambda{ event.track }
|
400
|
+
event.processed.should be false
|
401
|
+
end
|
402
|
+
|
403
|
+
it "raises an error" do
|
404
|
+
lambda{ event.track }.should raise_error("Tracking failed with result: error text")
|
405
|
+
end
|
406
|
+
end
|
407
|
+
end
|
363
408
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: traffic_mansion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AgileWings
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|