analytics-ruby 0.4.0 → 0.5.0
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 +1 -1
- data/History.md +5 -0
- data/analytics-ruby-0.4.0.gem +0 -0
- data/lib/analytics-ruby.rb +1 -4
- data/lib/analytics-ruby/version.rb +1 -1
- data/spec/client_spec.rb +16 -16
- data/spec/consumer_spec.rb +12 -12
- data/spec/module_spec.rb +16 -16
- data/spec/spec_helper.rb +1 -1
- metadata +90 -119
- data/analytics-ruby-0.3.4.gem +0 -0
data/Gemfile.lock
CHANGED
data/History.md
CHANGED
Binary file
|
data/lib/analytics-ruby.rb
CHANGED
data/spec/client_spec.rb
CHANGED
@@ -2,27 +2,27 @@ require 'analytics-ruby'
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe AnalyticsRuby::Client do
|
6
6
|
|
7
7
|
describe '#init' do
|
8
8
|
|
9
9
|
it 'should error if no secret is supplied' do
|
10
|
-
expect {
|
10
|
+
expect { AnalyticsRuby::Client.new }.to raise_error(RuntimeError)
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'should not error if a secret is supplied' do
|
14
|
-
|
14
|
+
AnalyticsRuby::Client.new :secret => AnalyticsRubyHelpers::SECRET
|
15
15
|
end
|
16
16
|
|
17
17
|
it 'should not error if a secret is supplied as a string' do
|
18
|
-
|
18
|
+
AnalyticsRuby::Client.new 'secret' => AnalyticsRubyHelpers::SECRET
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
describe '#track' do
|
23
23
|
|
24
24
|
before(:all) do
|
25
|
-
@client =
|
25
|
+
@client = AnalyticsRuby::Client.new :secret => AnalyticsRubyHelpers::SECRET
|
26
26
|
@client.instance_variable_get(:@thread).kill
|
27
27
|
@queue = @client.instance_variable_get :@queue
|
28
28
|
end
|
@@ -46,12 +46,12 @@ describe Analytics::Client do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should not error with the required options' do
|
49
|
-
@client.track
|
49
|
+
@client.track AnalyticsRubyHelpers::Queued::TRACK
|
50
50
|
@queue.pop
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'should not error when given string keys' do
|
54
|
-
@client.track Util.stringify_keys(
|
54
|
+
@client.track Util.stringify_keys(AnalyticsRubyHelpers::Queued::TRACK)
|
55
55
|
@queue.pop
|
56
56
|
end
|
57
57
|
|
@@ -74,7 +74,7 @@ describe Analytics::Client do
|
|
74
74
|
describe '#identify' do
|
75
75
|
|
76
76
|
before(:all) do
|
77
|
-
@client =
|
77
|
+
@client = AnalyticsRuby::Client.new :secret => AnalyticsRubyHelpers::SECRET
|
78
78
|
@client.instance_variable_get(:@thread).kill
|
79
79
|
@queue = @client.instance_variable_get :@queue
|
80
80
|
end
|
@@ -84,12 +84,12 @@ describe Analytics::Client do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'should not error with the required options' do
|
87
|
-
@client.identify
|
87
|
+
@client.identify AnalyticsRubyHelpers::Queued::IDENTIFY
|
88
88
|
@queue.pop
|
89
89
|
end
|
90
90
|
|
91
91
|
it 'should not error with the required options as strings' do
|
92
|
-
@client.identify Util.stringify_keys(
|
92
|
+
@client.identify Util.stringify_keys(AnalyticsRubyHelpers::Queued::IDENTIFY)
|
93
93
|
@queue.pop
|
94
94
|
end
|
95
95
|
|
@@ -109,7 +109,7 @@ describe Analytics::Client do
|
|
109
109
|
|
110
110
|
describe '#alias' do
|
111
111
|
before :all do
|
112
|
-
@client =
|
112
|
+
@client = AnalyticsRuby::Client.new :secret => AnalyticsRubyHelpers::SECRET
|
113
113
|
end
|
114
114
|
|
115
115
|
it 'should error without from' do
|
@@ -121,22 +121,22 @@ describe Analytics::Client do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
it 'should not error with the required options' do
|
124
|
-
@client.alias
|
124
|
+
@client.alias AnalyticsRubyHelpers::ALIAS
|
125
125
|
end
|
126
126
|
|
127
127
|
it 'should not error with the required options as strings' do
|
128
|
-
@client.alias Util.stringify_keys(
|
128
|
+
@client.alias Util.stringify_keys(AnalyticsRubyHelpers::ALIAS)
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
132
|
describe '#flush' do
|
133
133
|
before(:all) do
|
134
|
-
@client =
|
134
|
+
@client = AnalyticsRuby::Client.new :secret => AnalyticsRubyHelpers::SECRET
|
135
135
|
end
|
136
136
|
|
137
137
|
it 'should wait for the queue to finish on a flush' do
|
138
|
-
@client.identify
|
139
|
-
@client.track
|
138
|
+
@client.identify AnalyticsRubyHelpers::Queued::IDENTIFY
|
139
|
+
@client.track AnalyticsRubyHelpers::Queued::TRACK
|
140
140
|
@client.flush
|
141
141
|
@client.queued_messages.should == 0
|
142
142
|
end
|
data/spec/consumer_spec.rb
CHANGED
@@ -2,12 +2,12 @@ require 'analytics-ruby'
|
|
2
2
|
require 'thread'
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
|
-
describe
|
5
|
+
describe AnalyticsRuby::Consumer do
|
6
6
|
|
7
7
|
describe "#init" do
|
8
8
|
it 'accepts string keys' do
|
9
9
|
queue = Queue.new
|
10
|
-
consumer =
|
10
|
+
consumer = AnalyticsRuby::Consumer.new(queue, 'secret', 'batch_size' => 100)
|
11
11
|
consumer.instance_variable_get(:@batch_size).should == 100
|
12
12
|
end
|
13
13
|
end
|
@@ -20,7 +20,7 @@ describe Analytics::Consumer do
|
|
20
20
|
|
21
21
|
queue = Queue.new
|
22
22
|
queue << {}
|
23
|
-
consumer =
|
23
|
+
consumer = AnalyticsRuby::Consumer.new(queue, 'secret')
|
24
24
|
consumer.flush
|
25
25
|
|
26
26
|
queue.should be_empty
|
@@ -30,8 +30,8 @@ describe Analytics::Consumer do
|
|
30
30
|
|
31
31
|
it 'should execute the error handler if the request is invalid' do
|
32
32
|
|
33
|
-
|
34
|
-
|
33
|
+
AnalyticsRuby::Request.any_instance.stub(:post).and_return(
|
34
|
+
AnalyticsRuby::Response.new(400, "Some error"))
|
35
35
|
|
36
36
|
on_error = Proc.new do |status, error|
|
37
37
|
puts "#{status}, #{error}"
|
@@ -41,10 +41,10 @@ describe Analytics::Consumer do
|
|
41
41
|
|
42
42
|
queue = Queue.new
|
43
43
|
queue << {}
|
44
|
-
consumer =
|
44
|
+
consumer = AnalyticsRuby::Consumer.new queue, 'secret', :on_error => on_error
|
45
45
|
consumer.flush
|
46
46
|
|
47
|
-
|
47
|
+
AnalyticsRuby::Request::any_instance.unstub(:post)
|
48
48
|
|
49
49
|
queue.should be_empty
|
50
50
|
end
|
@@ -58,8 +58,8 @@ describe Analytics::Consumer do
|
|
58
58
|
on_error.should_receive(:call).at_most(0).times
|
59
59
|
|
60
60
|
queue = Queue.new
|
61
|
-
queue <<
|
62
|
-
consumer =
|
61
|
+
queue << AnalyticsRubyHelpers::Requested::TRACK
|
62
|
+
consumer = AnalyticsRuby::Consumer.new queue, 'testsecret', :on_error => on_error
|
63
63
|
consumer.flush
|
64
64
|
|
65
65
|
queue.should be_empty
|
@@ -71,7 +71,7 @@ describe Analytics::Consumer do
|
|
71
71
|
it 'should not return true if there isn\'t a current batch' do
|
72
72
|
|
73
73
|
queue = Queue.new
|
74
|
-
consumer =
|
74
|
+
consumer = AnalyticsRuby::Consumer.new(queue, 'testsecret')
|
75
75
|
|
76
76
|
consumer.is_requesting?.should == false
|
77
77
|
end
|
@@ -79,8 +79,8 @@ describe Analytics::Consumer do
|
|
79
79
|
it 'should return true if there is a current batch' do
|
80
80
|
|
81
81
|
queue = Queue.new
|
82
|
-
queue <<
|
83
|
-
consumer =
|
82
|
+
queue << AnalyticsRubyHelpers::Requested::TRACK
|
83
|
+
consumer = AnalyticsRuby::Consumer.new(queue, 'testsecret')
|
84
84
|
|
85
85
|
Thread.new {
|
86
86
|
consumer.flush
|
data/spec/module_spec.rb
CHANGED
@@ -1,45 +1,45 @@
|
|
1
1
|
require 'analytics-ruby'
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe
|
4
|
+
describe AnalyticsRuby do
|
5
5
|
|
6
6
|
describe '#not-initialized' do
|
7
7
|
it 'should ignore calls to track if not initialized' do
|
8
|
-
expect {
|
8
|
+
expect { AnalyticsRuby.track({}) }.not_to raise_error
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'should return false on track if not initialized' do
|
12
|
-
|
12
|
+
AnalyticsRuby.track({}).should == false
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should ignore calls to identify if not initialized' do
|
16
|
-
expect {
|
16
|
+
expect { AnalyticsRuby.identify({}) }.not_to raise_error
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'should return false on identify if not initialized' do
|
20
|
-
|
20
|
+
AnalyticsRuby.identify({}).should == false
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
describe '#init' do
|
25
25
|
|
26
26
|
it 'should successfully init' do
|
27
|
-
|
27
|
+
AnalyticsRuby.init :secret => AnalyticsRubyHelpers::SECRET
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
describe '#track' do
|
32
32
|
|
33
33
|
it 'should error without an event' do
|
34
|
-
expect {
|
34
|
+
expect { AnalyticsRuby.track :user_id => 'user' }.to raise_error(ArgumentError)
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'should error without a user_id' do
|
38
|
-
expect {
|
38
|
+
expect { AnalyticsRuby.track :event => 'Event' }.to raise_error(ArgumentError)
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'should not error with the required options' do
|
42
|
-
|
42
|
+
AnalyticsRuby.track AnalyticsRubyHelpers::Queued::TRACK
|
43
43
|
sleep(1)
|
44
44
|
end
|
45
45
|
end
|
@@ -47,26 +47,26 @@ describe Analytics do
|
|
47
47
|
|
48
48
|
describe '#identify' do
|
49
49
|
it 'should error without a user_id' do
|
50
|
-
expect {
|
50
|
+
expect { AnalyticsRuby.identify :traits => {} }.to raise_error(ArgumentError)
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'should not error with the required options' do
|
54
|
-
|
54
|
+
AnalyticsRuby.identify AnalyticsRubyHelpers::Queued::IDENTIFY
|
55
55
|
sleep(1)
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
59
|
describe '#alias' do
|
60
60
|
it 'should error without from' do
|
61
|
-
expect {
|
61
|
+
expect { AnalyticsRuby.alias :to => 1234 }.to raise_error(ArgumentError)
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'should error without to' do
|
65
|
-
expect {
|
65
|
+
expect { AnalyticsRuby.alias :from => 1234 }.to raise_error(ArgumentError)
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'should not error with the required options' do
|
69
|
-
|
69
|
+
AnalyticsRuby.alias AnalyticsRubyHelpers::ALIAS
|
70
70
|
sleep(1)
|
71
71
|
end
|
72
72
|
end
|
@@ -74,8 +74,8 @@ describe Analytics do
|
|
74
74
|
describe '#flush' do
|
75
75
|
|
76
76
|
it 'should flush without error' do
|
77
|
-
|
78
|
-
|
77
|
+
AnalyticsRuby.identify AnalyticsRubyHelpers::Queued::IDENTIFY
|
78
|
+
AnalyticsRuby.flush
|
79
79
|
end
|
80
80
|
end
|
81
81
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,134 +1,115 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytics-ruby
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 0.4.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Segment.io
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-10-04 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: faraday
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 8
|
32
|
-
version: "0.8"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.8'
|
33
22
|
- - <
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
|
36
|
-
segments:
|
37
|
-
- 0
|
38
|
-
- 10
|
39
|
-
version: "0.10"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '0.10'
|
40
25
|
type: :runtime
|
41
|
-
version_requirements: *id001
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: faraday_middleware
|
44
26
|
prerelease: false
|
45
|
-
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.8'
|
33
|
+
- - <
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0.10'
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: faraday_middleware
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
46
39
|
none: false
|
47
|
-
requirements:
|
48
|
-
- -
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
|
51
|
-
segments:
|
52
|
-
- 0
|
53
|
-
- 8
|
54
|
-
version: "0.8"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0.8'
|
55
44
|
- - <
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
- 10
|
61
|
-
version: "0.10"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.10'
|
62
47
|
type: :runtime
|
63
|
-
version_requirements: *id002
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: multi_json
|
66
48
|
prerelease: false
|
67
|
-
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.8'
|
55
|
+
- - <
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0.10'
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: multi_json
|
60
|
+
requirement: !ruby/object:Gem::Requirement
|
68
61
|
none: false
|
69
|
-
requirements:
|
62
|
+
requirements:
|
70
63
|
- - ~>
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 0
|
76
|
-
version: "1.0"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '1.0'
|
77
66
|
type: :runtime
|
78
|
-
version_requirements: *id003
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: json
|
81
67
|
prerelease: false
|
82
|
-
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
69
|
none: false
|
84
|
-
requirements:
|
70
|
+
requirements:
|
85
71
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
|
89
|
-
- 1
|
90
|
-
- 7
|
91
|
-
version: "1.7"
|
92
|
-
type: :runtime
|
93
|
-
version_requirements: *id004
|
94
|
-
- !ruby/object:Gem::Dependency
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '1.0'
|
74
|
+
- !ruby/object:Gem::Dependency
|
95
75
|
name: rake
|
96
|
-
|
97
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
98
77
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
segments:
|
104
|
-
- 0
|
105
|
-
version: "0"
|
78
|
+
requirements:
|
79
|
+
- - ! '>='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
106
82
|
type: :development
|
107
|
-
version_requirements: *id005
|
108
|
-
- !ruby/object:Gem::Dependency
|
109
|
-
name: rspec
|
110
83
|
prerelease: false
|
111
|
-
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
112
85
|
none: false
|
113
|
-
requirements:
|
114
|
-
- -
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: rspec
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ! '>='
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
120
98
|
type: :development
|
121
|
-
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ! '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
122
106
|
description: The Segment.io ruby analytics library
|
123
107
|
email: friends@segment.io
|
124
108
|
executables: []
|
125
|
-
|
126
109
|
extensions: []
|
127
|
-
|
128
110
|
extra_rdoc_files: []
|
129
|
-
|
130
|
-
|
131
|
-
- analytics-ruby-0.3.4.gem
|
111
|
+
files:
|
112
|
+
- analytics-ruby-0.4.0.gem
|
132
113
|
- analytics-ruby.gemspec
|
133
114
|
- Gemfile
|
134
115
|
- Gemfile.lock
|
@@ -151,36 +132,26 @@ files:
|
|
151
132
|
- spec/spec_helper.rb
|
152
133
|
homepage: https://github.com/segmentio/analytics-ruby
|
153
134
|
licenses: []
|
154
|
-
|
155
135
|
post_install_message:
|
156
136
|
rdoc_options: []
|
157
|
-
|
158
|
-
require_paths:
|
137
|
+
require_paths:
|
159
138
|
- lib
|
160
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
140
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
|
166
|
-
|
167
|
-
- 0
|
168
|
-
version: "0"
|
169
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
146
|
none: false
|
171
|
-
requirements:
|
172
|
-
- -
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
version: "0"
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
178
151
|
requirements: []
|
179
|
-
|
180
152
|
rubyforge_project:
|
181
153
|
rubygems_version: 1.8.25
|
182
154
|
signing_key:
|
183
155
|
specification_version: 3
|
184
156
|
summary: Segment.io analytics library
|
185
157
|
test_files: []
|
186
|
-
|
data/analytics-ruby-0.3.4.gem
DELETED
Binary file
|