analytics-ruby 2.0.3 → 2.0.5

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.
data/Gemfile.lock CHANGED
@@ -1,12 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- analytics-ruby (2.0.2)
4
+ analytics-ruby (2.0.5)
5
+ json (~> 1.7)
5
6
 
6
7
  GEM
7
8
  remote: http://rubygems.org/
8
9
  specs:
10
+ activesupport (3.2.18)
11
+ i18n (~> 0.6, >= 0.6.4)
12
+ multi_json (~> 1.0)
9
13
  diff-lcs (1.2.5)
14
+ i18n (0.6.9)
15
+ json (1.8.1)
16
+ multi_json (1.10.1)
10
17
  predicated (0.2.6)
11
18
  rake (10.3.1)
12
19
  rspec (2.14.1)
@@ -23,6 +30,10 @@ GEM
23
30
  ruby_parser (3.6.1)
24
31
  sexp_processor (~> 4.1)
25
32
  sexp_processor (4.4.3)
33
+ thread_safe (0.3.4)
34
+ thread_safe (0.3.4-java)
35
+ tzinfo (1.2.1)
36
+ thread_safe (~> 0.1)
26
37
  wrong (0.7.1)
27
38
  diff-lcs (~> 1.2.5)
28
39
  predicated (~> 0.2.6)
@@ -41,7 +52,9 @@ PLATFORMS
41
52
  ruby
42
53
 
43
54
  DEPENDENCIES
55
+ activesupport (>= 3.0.0, < 4.0.0)
44
56
  analytics-ruby!
45
57
  rake (~> 10.3)
46
58
  rspec (~> 2.0)
59
+ tzinfo (= 1.2.1)
47
60
  wrong (~> 0.0)
data/History.md CHANGED
@@ -1,3 +1,7 @@
1
+ 2.0.4 / 2014-06-11
2
+ ==================
3
+ * fix: isofying trait dates in #group
4
+
1
5
  2.0.3 / 2014-06-04
2
6
  ==================
3
7
  * fix: undefined method `is_requesting?' for nil:NilClass when calling flush (#51)
@@ -18,4 +18,6 @@ Gem::Specification.new do |spec|
18
18
  spec.add_development_dependency 'rake', '~> 10.3'
19
19
  spec.add_development_dependency 'wrong', '~> 0.0'
20
20
  spec.add_development_dependency 'rspec', '~> 2.0'
21
+ spec.add_development_dependency 'tzinfo', '1.2.1'
22
+ spec.add_development_dependency 'activesupport', '>= 3.0.0', '<4.0.0'
21
23
  end
@@ -162,6 +162,7 @@ module Segment
162
162
  context = options[:context] || {}
163
163
 
164
164
  fail ArgumentError, '.traits must be a hash' unless traits.is_a? Hash
165
+ isoify_dates! traits
165
166
 
166
167
  check_presence! group_id, 'group_id'
167
168
  check_timestamp! timestamp
@@ -49,10 +49,11 @@ module Segment
49
49
  end
50
50
 
51
51
  def datetime_in_iso8601 datetime
52
- if datetime.is_a? Date
52
+ case datetime
53
+ when Time, DateTime
54
+ time_in_iso8601 datetime
55
+ when Date
53
56
  date_in_iso8601 datetime
54
- elsif datetime.is_a? Time
55
- time_in_iso8601 datetime
56
57
  else
57
58
  datetime
58
59
  end
@@ -1,5 +1,5 @@
1
1
  module Segment
2
2
  class Analytics
3
- VERSION = '2.0.3'
3
+ VERSION = '2.0.5'
4
4
  end
5
5
  end
@@ -65,17 +65,23 @@ module Segment
65
65
  @queue.pop
66
66
  end
67
67
 
68
- it 'should convert Time properties into iso8601 format' do
68
+ it 'should convert time and date traits into iso8601 format' do
69
69
  @client.track({
70
70
  :user_id => 'user',
71
71
  :event => 'Event',
72
72
  :properties => {
73
73
  :time => Time.utc(2013),
74
+ :time_with_zone => Time.zone.parse('2013-01-01'),
75
+ :date_time => DateTime.new(2013,1,1),
76
+ :date => Date.new(2013,1,1),
74
77
  :nottime => 'x'
75
78
  }
76
79
  })
77
80
  message = @queue.pop
78
81
  message[:properties][:time].should == '2013-01-01T00:00:00Z'
82
+ message[:properties][:time_with_zone].should == '2013-01-01T00:00:00Z'
83
+ message[:properties][:date_time].should == '2013-01-01T00:00:00Z'
84
+ message[:properties][:date].should == '2013-01-01'
79
85
  message[:properties][:nottime].should == 'x'
80
86
  end
81
87
  end
@@ -101,16 +107,22 @@ module Segment
101
107
  @queue.pop
102
108
  end
103
109
 
104
- it 'should convert Time traits into iso8601 format' do
110
+ it 'should convert time and date traits into iso8601 format' do
105
111
  @client.identify({
106
112
  :user_id => 'user',
107
113
  :traits => {
108
114
  :time => Time.utc(2013),
115
+ :time_with_zone => Time.zone.parse('2013-01-01'),
116
+ :date_time => DateTime.new(2013,1,1),
117
+ :date => Date.new(2013,1,1),
109
118
  :nottime => 'x'
110
119
  }
111
120
  })
112
121
  message = @queue.pop
113
122
  message[:traits][:time].should == '2013-01-01T00:00:00Z'
123
+ message[:traits][:time_with_zone].should == '2013-01-01T00:00:00Z'
124
+ message[:traits][:date_time].should == '2013-01-01T00:00:00Z'
125
+ message[:traits][:date].should == '2013-01-01'
114
126
  message[:traits][:nottime].should == 'x'
115
127
  end
116
128
  end
@@ -140,6 +152,11 @@ module Segment
140
152
  describe '#group' do
141
153
  before :all do
142
154
  @client = Client.new :write_key => WRITE_KEY
155
+ @queue = @client.instance_variable_get :@queue
156
+ end
157
+
158
+ after :each do
159
+ @client.flush
143
160
  end
144
161
 
145
162
  it 'should error without group_id' do
@@ -157,6 +174,26 @@ module Segment
157
174
  it 'should not error with the required options as strings' do
158
175
  @client.group Utils.stringify_keys(Queued::GROUP)
159
176
  end
177
+
178
+ it 'should convert time and date traits into iso8601 format' do
179
+ @client.identify({
180
+ :user_id => 'user',
181
+ :group_id => 'group',
182
+ :traits => {
183
+ :time => Time.utc(2013),
184
+ :time_with_zone => Time.zone.parse('2013-01-01'),
185
+ :date_time => DateTime.new(2013,1,1),
186
+ :date => Date.new(2013,1,1),
187
+ :nottime => 'x'
188
+ }
189
+ })
190
+ message = @queue.pop
191
+ message[:traits][:time].should == '2013-01-01T00:00:00Z'
192
+ message[:traits][:time_with_zone].should == '2013-01-01T00:00:00Z'
193
+ message[:traits][:date_time].should == '2013-01-01T00:00:00Z'
194
+ message[:traits][:date].should == '2013-01-01'
195
+ message[:traits][:nottime].should == 'x'
196
+ end
160
197
  end
161
198
 
162
199
  describe '#page' do
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,12 @@
1
1
  require 'segment/analytics'
2
2
  require 'wrong'
3
+ require 'active_support/time'
3
4
 
4
5
  include Wrong
5
6
 
7
+ # Setting timezone for ActiveSupport::TimeWithZone to UTC
8
+ Time.zone = 'UTC'
9
+
6
10
  module Segment
7
11
  class Analytics
8
12
  WRITE_KEY = 'testsecret'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: analytics-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-05 00:00:00.000000000 Z
12
+ date: 2014-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &13866940 !ruby/object:Gem::Requirement
16
+ requirement: &18470280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '10.3'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *13866940
24
+ version_requirements: *18470280
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: wrong
27
- requirement: &13866440 !ruby/object:Gem::Requirement
27
+ requirement: &18469780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *13866440
35
+ version_requirements: *18469780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &13865980 !ruby/object:Gem::Requirement
38
+ requirement: &18469320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,14 +43,39 @@ dependencies:
43
43
  version: '2.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *13865980
46
+ version_requirements: *18469320
47
+ - !ruby/object:Gem::Dependency
48
+ name: tzinfo
49
+ requirement: &18468860 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 1.2.1
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *18468860
58
+ - !ruby/object:Gem::Dependency
59
+ name: activesupport
60
+ requirement: &18468380 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 3.0.0
66
+ - - <
67
+ - !ruby/object:Gem::Version
68
+ version: 4.0.0
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: *18468380
47
72
  description: The Segment.io ruby analytics library
48
73
  email: friends@segment.io
49
74
  executables: []
50
75
  extensions: []
51
76
  extra_rdoc_files: []
52
77
  files:
53
- - analytics-ruby-2.0.3.gem
78
+ - analytics-ruby-2.0.5.gem
54
79
  - analytics-ruby.gemspec
55
80
  - Gemfile
56
81
  - Gemfile.lock