mix_tape 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -72,6 +72,14 @@ If you are in a dev or test environment and don't want to send events to MixPane
72
72
  config.console_logging = true
73
73
  end
74
74
 
75
+ If you want Mixpanel to use your request variables to track user's location etc, then add this to your application controller:
76
+
77
+ before_filter :update_mixtape_request
78
+
79
+ def update_mixtape_request
80
+ MixTape.request = request
81
+ end
82
+
75
83
  And then execute:
76
84
 
77
85
  $ bundle
@@ -1,10 +1,10 @@
1
1
  module MixTape
2
2
 
3
3
  class << self
4
- attr_accessor :token, :fake, :console_logging
4
+ attr_accessor :token, :fake, :console_logging, :request
5
5
 
6
6
  def client
7
- raise(ArgumentError, %{MixPanel token is undefined.}) if token.empty? && !fake
7
+ raise(ArgumentError, %{MixPanel token is undefined.}) if (token.nil? || token.empty?) && !fake
8
8
  @client = mix_client
9
9
  end
10
10
 
@@ -18,8 +18,18 @@ module MixTape
18
18
  if !!fake
19
19
  FakeTracker.new(console_logging)
20
20
  else
21
- Mixpanel::Tracker.new(token, async: true)
21
+ Mixpanel::Tracker.new(token, async: true, env: @request ? env : {})
22
22
  end
23
23
  end
24
+
25
+ def env
26
+ e = @request.is_a?(Hash) ? @request : @request.env
27
+ {
28
+ 'REMOTE_ADDR' => e['REMOTE_ADDR'],
29
+ 'HTTP_X_FORWARDED_FOR' => e['HTTP_X_FORWARDED_FOR'],
30
+ 'rack.session' => e['rack.session'],
31
+ 'mixpanel_events' => e['mixpanel_events']
32
+ }
33
+ end
24
34
  end
25
35
  end
@@ -1,3 +1,3 @@
1
1
  module MixTape
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -24,8 +24,25 @@ describe 'Configuraton' do
24
24
  end
25
25
 
26
26
  it "uses FakeTracker if we set it up" do
27
- MixTape.config{ |config| config.fake = true }
27
+ MixTape.config{ |config| config.fake = true; config.token = nil }
28
28
 
29
29
  expect(MixTape.client).to be_a MixTape::FakeTracker
30
30
  end
31
+
32
+ it "can use request.env information" do
33
+ MixTape.config{ |config| config.token = '1234'; config.fake = false }
34
+ MixTape.request = double(:http_request, env: { 'REMOTE_ADDR' => '127.0.0.1' })
35
+
36
+ Mixpanel::Tracker.should_receive(:new).with('1234', {
37
+ async: true,
38
+ env: {
39
+ 'REMOTE_ADDR' => '127.0.0.1',
40
+ 'HTTP_X_FORWARDED_FOR' => nil,
41
+ 'rack.session' => nil,
42
+ 'mixpanel_events' => nil
43
+ }
44
+ })
45
+
46
+ MixTape.client
47
+ end
31
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mix_tape
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: