mixpanel-client 0.0.1
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 +15 -0
- data/README.md +31 -0
- data/lib/mixpanel-client.rb +47 -0
- data/spec/mixpanel_spec.rb +15 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZmI0MTcyY2RjNWQxYWQxMWQwYTMxOWFhZDNkNzUwYzBkNGZjMDlhNA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NzdlODIyYzNjYzM1OTM3Yjk5Mjc1NjcyYmRlMjkzNjIxZThhMDA5Ng==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OWI2MzVmNjNiMDE0MDI5ZjM2NWIyOGZjNTI1OTE0NmY1ZTgxMTQzYzU4OTZh
|
10
|
+
YmJlMzg0NGI5NWRmNzgyY2U2NTdmZTE0NzM2YWNhY2VlNDFlNjU5ZDdmNTIz
|
11
|
+
MDBlNTZjZWJlNjgzZGQ4ZTM3Yzc1MTVlMTlmMDRlMDNmZDg0Y2E=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZGY0Mjc5MzM2OGFmNWVkZmY5N2M5NmFhYjVkNTczZWNjY2RlMjI4Y2Y2MWIy
|
14
|
+
NmE1ZGU2YzA4ODVjZjY2MWRhNDYyOGZlYWI1NjRiMTE4YTdhNGVlYmYyOTJh
|
15
|
+
NTc5ZjMzNGFiODQ2ZDhlODUwNzIyNGExNDhhNmQxNzQ3ZGZiZTA=
|
data/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
Mixpanel API Client
|
2
|
+
===================
|
3
|
+
|
4
|
+
A simple API client for tracking data in Mixpanel
|
5
|
+
|
6
|
+
Installation
|
7
|
+
------------
|
8
|
+
|
9
|
+
Installation is a piece of cake:
|
10
|
+
|
11
|
+
```bash
|
12
|
+
$ gem install mixpanel-client
|
13
|
+
```
|
14
|
+
|
15
|
+
Usage
|
16
|
+
-----
|
17
|
+
|
18
|
+
Usage is pretty straightforward:
|
19
|
+
|
20
|
+
``` ruby
|
21
|
+
|
22
|
+
client = Mixpanel.new('YOUR API KEY')
|
23
|
+
client.track('event', :some => 'data')
|
24
|
+
|
25
|
+
```
|
26
|
+
|
27
|
+
Copyright
|
28
|
+
---------
|
29
|
+
See [LICENSE][] for details.
|
30
|
+
|
31
|
+
[license]: LICENSE
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'base64'
|
3
|
+
require 'faraday'
|
4
|
+
require 'faraday/middleware'
|
5
|
+
|
6
|
+
class Mixpanel < Hash
|
7
|
+
|
8
|
+
URL = 'http://api.mixpanel.com'
|
9
|
+
|
10
|
+
# Require token at instantiation
|
11
|
+
#
|
12
|
+
# @param [string] project token
|
13
|
+
def initialize(key)
|
14
|
+
@key = key
|
15
|
+
end
|
16
|
+
|
17
|
+
# Assemble data for request
|
18
|
+
#
|
19
|
+
# @param [string] tracking event
|
20
|
+
# @param [hash] additional data points
|
21
|
+
def get_data(event, data={})
|
22
|
+
self['event'] = event
|
23
|
+
self['properties'] = data
|
24
|
+
self['properties']['token'] = @key
|
25
|
+
self['properties']['time'] = Time.now.to_i
|
26
|
+
|
27
|
+
Base64.encode64(JSON.generate(self))
|
28
|
+
end
|
29
|
+
|
30
|
+
# Get data and make HTTP request
|
31
|
+
#
|
32
|
+
# @param [string] tracking event
|
33
|
+
# @param [hash] additional data points
|
34
|
+
def track(event, data={})
|
35
|
+
params = self.get_data(event, data)
|
36
|
+
r = self.conn.get '/track', {:data => params}
|
37
|
+
r.body.to_i
|
38
|
+
end
|
39
|
+
|
40
|
+
# Create Faraday connection
|
41
|
+
def conn
|
42
|
+
Faraday.new(:url => URL) do |c|
|
43
|
+
c.adapter Faraday.default_adapter
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'mixpanel')
|
4
|
+
|
5
|
+
describe Mixpanel do
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
@track = Mixpanel.new('YOUR API KEY')
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'Should respond with 1' do
|
12
|
+
result = @track.track('nom', :foo => 'bar')
|
13
|
+
result.should == 1
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mixpanel-client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Travis Tillotson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.8.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.8.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday_middleware
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.9.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.9.0
|
41
|
+
description: Provides a simple interface for loading data to Mixpanel
|
42
|
+
email:
|
43
|
+
- tillotson.travis@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files:
|
47
|
+
- README.md
|
48
|
+
files:
|
49
|
+
- lib/mixpanel-client.rb
|
50
|
+
- README.md
|
51
|
+
- spec/mixpanel_spec.rb
|
52
|
+
homepage: https://github.com/Opus1no2/mixpanel-client
|
53
|
+
licenses:
|
54
|
+
- MIT
|
55
|
+
metadata: {}
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options: []
|
58
|
+
require_paths:
|
59
|
+
- lib
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
requirements: []
|
71
|
+
rubyforge_project:
|
72
|
+
rubygems_version: 2.0.4
|
73
|
+
signing_key:
|
74
|
+
specification_version: 4
|
75
|
+
summary: Simple API client for Mixpanel
|
76
|
+
test_files:
|
77
|
+
- spec/mixpanel_spec.rb
|