mixpanel-ruby 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Readme.rdoc CHANGED
@@ -38,6 +38,10 @@ For more information please visit:
38
38
 
39
39
  == Changes
40
40
 
41
+ == 1.2.0
42
+ * All objects with a "strftime" method will be formatted as dates in
43
+ people updates.
44
+
41
45
  == 1.1.0
42
46
  * The default consumer now sends requests (and expects responses) in
43
47
  verbose, JSON mode, which may improve error reporting.
@@ -244,27 +244,9 @@ module Mixpanel
244
244
 
245
245
  def fix_property_dates(h)
246
246
  h.inject({}) do |ret,(k,v)|
247
- ret[k] = PeopleDate.asPeopleDate(v)
247
+ ret[k] = v.respond_to?(:strftime) ? v.strftime('%Y-%m-%dT%H:%M:%S') : v
248
248
  ret
249
249
  end
250
250
  end
251
-
252
- class PeopleDate
253
- def initialize(date)
254
- @date = date
255
- end
256
-
257
- def to_json(*a)
258
- @date.strftime('%Y-%m-%dT%H:%M:%S').to_json(*a)
259
- end
260
-
261
- def self.asPeopleDate(thing)
262
- if thing.is_a?(Date)
263
- PeopleDate.new(thing)
264
- else
265
- thing
266
- end
267
- end
268
- end
269
251
  end
270
252
  end
@@ -1,3 +1,3 @@
1
1
  module Mixpanel
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
@@ -6,7 +6,7 @@ require 'time'
6
6
  describe Mixpanel::Events do
7
7
  before(:each) do
8
8
  @time_now = Time.parse('Jun 6 1972, 16:23:04')
9
- Time.stub!(:now).and_return(@time_now)
9
+ Time.stub(:now).and_return(@time_now)
10
10
 
11
11
  @log = []
12
12
  @events = Mixpanel::Events.new('TEST TOKEN') do |type, message|
@@ -1,12 +1,10 @@
1
1
  require 'spec_helper'
2
- require 'date'
3
- require 'json'
4
- require 'mixpanel-ruby/people.rb'
2
+ require 'mixpanel-ruby/people'
5
3
 
6
4
  describe Mixpanel::People do
7
5
  before(:each) do
8
6
  @time_now = Time.parse('Jun 6 1972, 16:23:04')
9
- Time.stub!(:now).and_return(@time_now)
7
+ Time.stub(:now).and_return(@time_now)
10
8
 
11
9
  @log = []
12
10
  @people = Mixpanel::People.new('TEST TOKEN') do |type, message|
@@ -30,6 +28,20 @@ describe Mixpanel::People do
30
28
  }]])
31
29
  end
32
30
 
31
+ it 'should properly cast dates' do
32
+ @people.set("TEST ID", {
33
+ 'created_at' => DateTime.new(2013, 1, 2, 3, 4, 5)
34
+ })
35
+ @log.should eq([[ :profile_update, 'data' => {
36
+ '$token' => 'TEST TOKEN',
37
+ '$distinct_id' => 'TEST ID',
38
+ '$time' => @time_now.to_i * 1000,
39
+ '$set' => {
40
+ 'created_at' => '2013-01-02T03:04:05'
41
+ }
42
+ }]])
43
+ end
44
+
33
45
  it 'should send a well formed engage/set_once message' do
34
46
  @people.set_once("TEST ID", {
35
47
  '$firstname' => 'David',
@@ -63,7 +75,7 @@ describe Mixpanel::People do
63
75
  @log.should eq([[ :profile_update, 'data' => {
64
76
  '$token' => 'TEST TOKEN',
65
77
  '$distinct_id' => 'TEST ID',
66
- '$time' => 76695784000,
78
+ '$time' => @time_now.to_i * 1000,
67
79
  '$add' => {
68
80
  'Albums Released' => 1
69
81
  }
@@ -6,7 +6,7 @@ require 'uri'
6
6
  describe Mixpanel::Tracker do
7
7
  before(:each) do
8
8
  @time_now = Time.parse('Jun 6 1972, 16:23:04')
9
- Time.stub!(:now).and_return(@time_now)
9
+ Time.stub(:now).and_return(@time_now)
10
10
  end
11
11
 
12
12
  it 'should send an alias message to mixpanel no matter what the consumer is' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mixpanel-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-14 00:00:00.000000000 Z
12
+ date: 2013-10-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake