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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8dabb7b8252e7bb3a3377316678e3b85b480b3dc
4
- data.tar.gz: cb16034a271c1e02ba0a4d3040be03f75e0b2d40
3
+ metadata.gz: 8a4e05cf8d2d6d40c3e987b8d11a38a95e3eb1a1
4
+ data.tar.gz: c3982ed383e534acf243439a2e16bce2bce8d670
5
5
  SHA512:
6
- metadata.gz: 2c3b8fa03098c2cb4e40673d8c9f2865fb9aa5304f2ea0778979dac386d27c8240a3ce59bd99e8053bce87cd2ec0f8273ee140c995bb7f792dd18ffd02e56e09
7
- data.tar.gz: e04ce7edd4845f6ac7c14df8a91bbeb059e808121ab2506550a05c71d199a278d75e293abb50b4126bed22eb472a16b1f9042ecd3668a706f0eb0d85fd2a19fa
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
- raise "Could not find a parent event!"
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 && parent_event.processed
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
- raise "Parent was not processed yet!"
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.result = res.get_response
132
- self.processed = true
133
- save!
141
+ self.set :processed, true
134
142
  else
135
- raise "Tracking failed with result: #{res.get_error}"
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
@@ -1,3 +1,3 @@
1
1
  module TrafficMansion
2
- VERSION = "0.0.15"
2
+ VERSION = "0.0.16"
3
3
  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.15
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-01 00:00:00.000000000 Z
11
+ date: 2013-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler