traffic_mansion 0.0.16 → 0.0.17
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 +22 -1
- data/lib/traffic_mansion/version.rb +1 -1
- data/spec/queue_spec.rb +67 -12
- 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: 6437be2faa31736634daf27280d51bdf320565f8
|
4
|
+
data.tar.gz: ab887e60ee77d25a7ecaeb0eb41c23d4d2f6addf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a4676cb050c6539846aa0996278aa54db7a7ccc5754e92e969bfca92cea412647aef0c5214772bf0f408edafe0042d779099c6606372ba70f3cc3f7914e4a32
|
7
|
+
data.tar.gz: 36908c2d01215069578f34d45af73314430a5648c79f2b6c70377d28515e6a3e5ad37302498094cc1bca26e6c1bbe6c963c333dce8acde4b4645e9b8d8247732
|
@@ -35,7 +35,9 @@ module TrafficMansion
|
|
35
35
|
"remote_addr" => remote_ip,
|
36
36
|
"http_referer" => referer
|
37
37
|
}
|
38
|
-
TrafficMansion::Queue::add "signup", parent_event_id, event_data
|
38
|
+
event = TrafficMansion::Queue::add "signup", parent_event_id, event_data
|
39
|
+
TrafficMansion::Queue::update_user_id_for_visit parent_event_id, user_id
|
40
|
+
event
|
39
41
|
end
|
40
42
|
|
41
43
|
def self.add_sale user_id, payment_id, amount, product_code, remote_ip, referer, timestamp = Time.now.to_i
|
@@ -91,6 +93,25 @@ module TrafficMansion
|
|
91
93
|
TrafficMansion::Queue.where(:user_id => user_id, :type => "signup").first
|
92
94
|
end
|
93
95
|
|
96
|
+
def self.update_user_id_for_visit visit_event_id, user_id
|
97
|
+
visit = TrafficMansion::Queue.where(:id => visit_event_id).first
|
98
|
+
if visit
|
99
|
+
visit.set :user_id, user_id
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def self.find_user_tracked_data user_id
|
104
|
+
visit = TrafficMansion::Queue.where(:type => "visit", :user_id => user_id, :processed => true).first
|
105
|
+
if visit && visit.result.present?
|
106
|
+
return visit.result
|
107
|
+
end
|
108
|
+
nil
|
109
|
+
end
|
110
|
+
|
111
|
+
def self.find_not_processed
|
112
|
+
where(:processed => false)
|
113
|
+
end
|
114
|
+
|
94
115
|
def process
|
95
116
|
if !parent? && parent_event_id.nil?
|
96
117
|
update_parent_event_id
|
data/spec/queue_spec.rb
CHANGED
@@ -34,45 +34,51 @@ describe TrafficMansion::Queue do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
describe "self.add_signup" do
|
37
|
-
let(:
|
38
|
-
let(:user_id)
|
39
|
-
let(:remote_ip)
|
40
|
-
let(:referer)
|
37
|
+
let!(:parent_event) { TrafficMansion::Queue.add "visit" }
|
38
|
+
let(:user_id) { "user_id" }
|
39
|
+
let(:remote_ip) { "remote_ip" }
|
40
|
+
let(:referer) { "referer" }
|
41
41
|
|
42
42
|
it "persists the signup" do
|
43
|
-
TrafficMansion::Queue.add_signup
|
43
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
44
44
|
TrafficMansion::Queue.last.type.should eql "signup"
|
45
45
|
end
|
46
46
|
|
47
47
|
it "persists the parent event id" do
|
48
|
-
TrafficMansion::Queue.add_signup
|
49
|
-
TrafficMansion::Queue.last.parent_event_id.should eql
|
48
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
49
|
+
TrafficMansion::Queue.last.parent_event_id.should eql parent_event.id.to_s
|
50
50
|
end
|
51
51
|
|
52
52
|
it "persists the user id" do
|
53
|
-
TrafficMansion::Queue.add_signup
|
53
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
54
54
|
TrafficMansion::Queue.last.user_id.should eql user_id
|
55
55
|
end
|
56
56
|
|
57
57
|
it "persists the user id" do
|
58
|
-
TrafficMansion::Queue.add_signup
|
58
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
59
59
|
TrafficMansion::Queue.last.data["user_id"].should eql user_id
|
60
60
|
end
|
61
61
|
|
62
62
|
it "persists the remote ip" do
|
63
|
-
TrafficMansion::Queue.add_signup
|
63
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
64
64
|
TrafficMansion::Queue.last.data["remote_addr"].should eql remote_ip
|
65
65
|
end
|
66
66
|
|
67
67
|
it "persists the referer" do
|
68
|
-
TrafficMansion::Queue.add_signup
|
68
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer
|
69
69
|
TrafficMansion::Queue.last.data["http_referer"].should eql referer
|
70
70
|
end
|
71
71
|
|
72
72
|
it "persists the timestamp" do
|
73
|
-
TrafficMansion::Queue.add_signup
|
73
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer, 69
|
74
74
|
TrafficMansion::Queue.last.data["timestamp"].should eql 69
|
75
75
|
end
|
76
|
+
|
77
|
+
it "updates the user id of the parent visit" do
|
78
|
+
TrafficMansion::Queue.add_signup parent_event.id, user_id, remote_ip, referer, 69
|
79
|
+
parent_event.reload
|
80
|
+
parent_event.user_id.should eql user_id
|
81
|
+
end
|
76
82
|
end
|
77
83
|
|
78
84
|
describe "self.add_sale" do
|
@@ -258,6 +264,55 @@ describe TrafficMansion::Queue do
|
|
258
264
|
end
|
259
265
|
end
|
260
266
|
|
267
|
+
describe "self.update_user_id_for_visit" do
|
268
|
+
let!(:event) { TrafficMansion::Queue.add "visit"}
|
269
|
+
|
270
|
+
it "updates the event's user id with the given one" do
|
271
|
+
TrafficMansion::Queue.update_user_id_for_visit event.id, "user_id"
|
272
|
+
event.reload
|
273
|
+
event.user_id.should eql "user_id"
|
274
|
+
end
|
275
|
+
end
|
276
|
+
|
277
|
+
describe "self.find_user_tracked_data" do
|
278
|
+
context "when there is a processed visit event that contains a successful TM result" do
|
279
|
+
let(:result) { {"result" => "result"} }
|
280
|
+
|
281
|
+
before :each do
|
282
|
+
TrafficMansion::Queue.create :type => "visit", :user_id => "user_id", :processed => true, :result => result
|
283
|
+
end
|
284
|
+
|
285
|
+
it "returns the TM result" do
|
286
|
+
TrafficMansion::Queue.find_user_tracked_data("user_id").should eql result
|
287
|
+
end
|
288
|
+
end
|
289
|
+
context "when there is a processed visit event that does not contain a successful TM result" do
|
290
|
+
let(:result) { {} }
|
291
|
+
|
292
|
+
before :each do
|
293
|
+
TrafficMansion::Queue.create :type => "visit", :user_id => "user_id", :processed => true, :result => result
|
294
|
+
end
|
295
|
+
|
296
|
+
it "returns nil" do
|
297
|
+
TrafficMansion::Queue.find_user_tracked_data("user_id").should be_nil
|
298
|
+
end
|
299
|
+
end
|
300
|
+
context "when there is no processed visit event" do
|
301
|
+
it "returns nil" do
|
302
|
+
TrafficMansion::Queue.find_user_tracked_data("user_id").should be_nil
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
describe "self.find_not_processed" do
|
308
|
+
let!(:processed_event) { TrafficMansion::Queue.create :type => "visit", :processed => true }
|
309
|
+
let!(:not_processed_event) { TrafficMansion::Queue.add "visit"}
|
310
|
+
|
311
|
+
it "returns the non processed events back" do
|
312
|
+
TrafficMansion::Queue.find_not_processed.to_a.should eql [not_processed_event]
|
313
|
+
end
|
314
|
+
end
|
315
|
+
|
261
316
|
describe :process do
|
262
317
|
context "when it is a visit event" do
|
263
318
|
let!(:event) { TrafficMansion::Queue.add "visit"}
|
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.17
|
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-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|