analytics-ruby 1.1.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +47 -0
- data/analytics-ruby.gemspec +5 -7
- data/lib/segment.rb +1 -0
- data/lib/segment/analytics.rb +31 -0
- data/lib/segment/analytics/client.rb +335 -0
- data/lib/segment/analytics/defaults.rb +20 -0
- data/lib/segment/analytics/logging.rb +35 -0
- data/lib/segment/analytics/request.rb +80 -0
- data/lib/segment/analytics/response.rb +16 -0
- data/lib/segment/analytics/utils.rb +85 -0
- data/lib/segment/analytics/version.rb +6 -0
- data/lib/segment/analytics/worker.rb +59 -0
- data/spec/segment/analytics/client_spec.rb +248 -0
- data/spec/segment/analytics/worker_spec.rb +96 -0
- data/spec/segment/analytics_spec.rb +103 -0
- data/spec/spec_helper.rb +60 -55
- data/tags +135 -0
- metadata +34 -31
- data/analytics-ruby-0.6.0.gem +0 -0
- data/analytics-ruby-1.0.0.gem +0 -0
- data/lib/analytics-ruby.rb +0 -51
- data/lib/analytics-ruby/client.rb +0 -311
- data/lib/analytics-ruby/consumer.rb +0 -76
- data/lib/analytics-ruby/defaults.rb +0 -21
- data/lib/analytics-ruby/request.rb +0 -61
- data/lib/analytics-ruby/response.rb +0 -17
- data/lib/analytics-ruby/util.rb +0 -42
- data/lib/analytics-ruby/version.rb +0 -3
- data/spec/client_spec.rb +0 -212
- data/spec/consumer_spec.rb +0 -103
- data/spec/module_spec.rb +0 -136
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Segment
|
4
|
+
class Analytics
|
5
|
+
describe Worker do
|
6
|
+
describe "#init" do
|
7
|
+
it 'accepts string keys' do
|
8
|
+
queue = Queue.new
|
9
|
+
worker = Segment::Analytics::Worker.new(queue, 'secret', 'batch_size' => 100)
|
10
|
+
worker.instance_variable_get(:@batch_size).should == 100
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#flush' do
|
15
|
+
before :all do
|
16
|
+
Segment::Analytics::Defaults::Request::BACKOFF = 0.1
|
17
|
+
end
|
18
|
+
|
19
|
+
after :all do
|
20
|
+
Segment::Analytics::Defaults::Request::BACKOFF = 30.0
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not error if the endpoint is unreachable' do
|
24
|
+
Net::HTTP.any_instance.stub(:post).and_raise(Exception)
|
25
|
+
|
26
|
+
queue = Queue.new
|
27
|
+
queue << {}
|
28
|
+
worker = Segment::Analytics::Worker.new(queue, 'secret')
|
29
|
+
worker.run
|
30
|
+
|
31
|
+
queue.should be_empty
|
32
|
+
|
33
|
+
Net::HTTP.any_instance.unstub(:post)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should execute the error handler if the request is invalid' do
|
37
|
+
Segment::Analytics::Request.any_instance.stub(:post).and_return(Segment::Analytics::Response.new(400, "Some error"))
|
38
|
+
|
39
|
+
on_error = Proc.new do |status, error|
|
40
|
+
puts "#{status}, #{error}"
|
41
|
+
end
|
42
|
+
|
43
|
+
on_error.should_receive(:call).once
|
44
|
+
|
45
|
+
queue = Queue.new
|
46
|
+
queue << {}
|
47
|
+
worker = Segment::Analytics::Worker.new queue, 'secret', :on_error => on_error
|
48
|
+
worker.run
|
49
|
+
|
50
|
+
Segment::Analytics::Request::any_instance.unstub(:post)
|
51
|
+
|
52
|
+
queue.should be_empty
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should not call on_error if the request is good' do
|
56
|
+
|
57
|
+
on_error = Proc.new do |status, error|
|
58
|
+
puts "#{status}, #{error}"
|
59
|
+
end
|
60
|
+
|
61
|
+
on_error.should_receive(:call).at_most(0).times
|
62
|
+
|
63
|
+
queue = Queue.new
|
64
|
+
queue << Requested::TRACK
|
65
|
+
worker = Segment::Analytics::Worker.new queue, 'testsecret', :on_error => on_error
|
66
|
+
worker.run
|
67
|
+
|
68
|
+
queue.should be_empty
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '#is_requesting?' do
|
73
|
+
it 'should not return true if there isn\'t a current batch' do
|
74
|
+
|
75
|
+
queue = Queue.new
|
76
|
+
worker = Segment::Analytics::Worker.new(queue, 'testsecret')
|
77
|
+
|
78
|
+
worker.is_requesting?.should == false
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should return true if there is a current batch' do
|
82
|
+
queue = Queue.new
|
83
|
+
queue << Requested::TRACK
|
84
|
+
worker = Segment::Analytics::Worker.new(queue, 'testsecret')
|
85
|
+
|
86
|
+
Thread.new do
|
87
|
+
worker.run
|
88
|
+
worker.is_requesting?.should == false
|
89
|
+
end
|
90
|
+
|
91
|
+
eventually { worker.is_requesting?.should be_true }
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Segment
|
4
|
+
class Analytics
|
5
|
+
describe Analytics do
|
6
|
+
let(:analytics) { Segment::Analytics.new :write_key => WRITE_KEY, :stub => true }
|
7
|
+
|
8
|
+
describe '#track' do
|
9
|
+
it 'should error without an event' do
|
10
|
+
expect { analytics.track(:user_id => 'user') }.to raise_error(ArgumentError)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should error without a user_id' do
|
14
|
+
expect { analytics.track(:event => 'Event') }.to raise_error(ArgumentError)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should not error with the required options' do
|
18
|
+
analytics.track Queued::TRACK
|
19
|
+
sleep(1)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
describe '#identify' do
|
25
|
+
it 'should error without a user_id' do
|
26
|
+
expect { analytics.identify :traits => {} }.to raise_error(ArgumentError)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should not error with the required options' do
|
30
|
+
analytics.identify Queued::IDENTIFY
|
31
|
+
sleep(1)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#alias' do
|
36
|
+
it 'should error without from' do
|
37
|
+
expect { analytics.alias :user_id => 1234 }.to raise_error(ArgumentError)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should error without to' do
|
41
|
+
expect { analytics.alias :previous_id => 1234 }.to raise_error(ArgumentError)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should not error with the required options' do
|
45
|
+
analytics.alias ALIAS
|
46
|
+
sleep(1)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#group' do
|
51
|
+
it 'should error without group_id' do
|
52
|
+
expect { analytics.group :user_id => 'foo' }.to raise_error(ArgumentError)
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should error without user_id or anonymous_id' do
|
56
|
+
expect { analytics.group :group_id => 'foo' }.to raise_error(ArgumentError)
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should not error with the required options' do
|
60
|
+
analytics.group Queued::GROUP
|
61
|
+
sleep(1)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe '#page' do
|
66
|
+
it 'should error without user_id or anonymous_id' do
|
67
|
+
expect { analytics.page :name => 'foo' }.to raise_error(ArgumentError)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should error without name' do
|
71
|
+
expect { analytics.page :user_id => 1 }.to raise_error(ArgumentError)
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should not error with the required options' do
|
75
|
+
analytics.page Queued::PAGE
|
76
|
+
sleep(1)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#screen' do
|
81
|
+
it 'should error without user_id or anonymous_id' do
|
82
|
+
expect { analytics.screen :name => 'foo' }.to raise_error(ArgumentError)
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should error without name' do
|
86
|
+
expect { analytics.screen :user_id => 1 }.to raise_error(ArgumentError)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should not error with the required options' do
|
90
|
+
analytics.screen Queued::SCREEN
|
91
|
+
sleep(1)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
describe '#flush' do
|
96
|
+
it 'should flush without error' do
|
97
|
+
analytics.identify Queued::IDENTIFY
|
98
|
+
analytics.flush
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,72 +1,77 @@
|
|
1
|
+
require 'segment/analytics'
|
2
|
+
require 'wrong'
|
1
3
|
|
2
|
-
|
4
|
+
include Wrong
|
3
5
|
|
4
|
-
|
6
|
+
module Segment
|
7
|
+
class Analytics
|
8
|
+
WRITE_KEY = 'testsecret'
|
5
9
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
TRACK = {
|
11
|
+
:event => 'Ruby Library test event',
|
12
|
+
:properties => {
|
13
|
+
:type => 'Chocolate',
|
14
|
+
:is_a_lie => true,
|
15
|
+
:layers => 20,
|
16
|
+
:created => Time.new
|
17
|
+
}
|
13
18
|
}
|
14
|
-
}
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
IDENTIFY = {
|
21
|
+
:traits => {
|
22
|
+
:likes_animals => true,
|
23
|
+
:instrument => 'Guitar',
|
24
|
+
:age => 25
|
25
|
+
}
|
21
26
|
}
|
22
|
-
}
|
23
27
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
+
ALIAS = {
|
29
|
+
:previous_id => 1234,
|
30
|
+
:user_id => 'abcd'
|
31
|
+
}
|
28
32
|
|
29
|
-
|
33
|
+
GROUP = {}
|
30
34
|
|
31
|
-
|
32
|
-
|
33
|
-
|
35
|
+
PAGE = {
|
36
|
+
:name => 'home'
|
37
|
+
}
|
34
38
|
|
35
|
-
|
36
|
-
|
37
|
-
|
39
|
+
SCREEN = {
|
40
|
+
:name => 'main'
|
41
|
+
}
|
38
42
|
|
39
|
-
|
40
|
-
|
43
|
+
USER_ID = 1234
|
44
|
+
GROUP_ID = 1234
|
41
45
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
46
|
+
# Hashes sent to the client, snake_case
|
47
|
+
module Queued
|
48
|
+
TRACK = TRACK.merge :user_id => USER_ID
|
49
|
+
IDENTIFY = IDENTIFY.merge :user_id => USER_ID
|
50
|
+
GROUP = GROUP.merge :group_id => GROUP_ID, :user_id => USER_ID
|
51
|
+
PAGE = PAGE.merge :user_id => USER_ID
|
52
|
+
SCREEN = SCREEN.merge :user_id => USER_ID
|
53
|
+
end
|
50
54
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
# Hashes which are sent from the worker, camel_cased
|
56
|
+
module Requested
|
57
|
+
TRACK = TRACK.merge({
|
58
|
+
:userId => USER_ID,
|
59
|
+
:type => 'track'
|
60
|
+
})
|
57
61
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
+
IDENTIFY = IDENTIFY.merge({
|
63
|
+
:userId => USER_ID,
|
64
|
+
:type => 'identify'
|
65
|
+
})
|
62
66
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
67
|
+
GROUP = GROUP.merge({
|
68
|
+
:groupId => GROUP_ID,
|
69
|
+
:userId => USER_ID,
|
70
|
+
:type => 'group'
|
71
|
+
})
|
68
72
|
|
69
|
-
|
70
|
-
|
73
|
+
PAGE = PAGE.merge :userId => USER_ID
|
74
|
+
SCREEN = SCREEN.merge :userId => USER_ID
|
75
|
+
end
|
71
76
|
end
|
72
|
-
end
|
77
|
+
end
|
data/tags
ADDED
@@ -0,0 +1,135 @@
|
|
1
|
+
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
|
2
|
+
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
|
3
|
+
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
|
4
|
+
!_TAG_PROGRAM_NAME Exuberant Ctags //
|
5
|
+
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
|
6
|
+
!_TAG_PROGRAM_VERSION 5.8 //
|
7
|
+
ALIAS spec/spec_helper.rb /^ ALIAS = {$/;" c line:25
|
8
|
+
Analytics lib/segment/analytics.rb /^ class Analytics$/;" c line:11 class:Segment
|
9
|
+
Analytics lib/segment/analytics/client.rb /^ class Analytics$/;" c line:8 class:Segment
|
10
|
+
Analytics lib/segment/analytics/defaults.rb /^ class Analytics$/;" c line:2 class:Segment
|
11
|
+
Analytics lib/segment/analytics/logging.rb /^ class Analytics$/;" c line:4 class:Segment
|
12
|
+
Analytics lib/segment/analytics/request.rb /^ class Analytics$/;" c line:10 class:Segment
|
13
|
+
Analytics lib/segment/analytics/response.rb /^ class Analytics$/;" c line:2 class:Segment
|
14
|
+
Analytics lib/segment/analytics/utils.rb /^ class Analytics$/;" c line:4 class:Segment
|
15
|
+
Analytics lib/segment/analytics/version.rb /^ class Analytics$/;" c line:2 class:Segment
|
16
|
+
Analytics lib/segment/analytics/worker.rb /^ class Analytics$/;" c line:7 class:Segment
|
17
|
+
Analytics spec/segment/analytics/client_spec.rb /^ class Analytics$/;" c line:4 class:Segment
|
18
|
+
Analytics spec/segment/analytics/worker_spec.rb /^ class Analytics$/;" c line:4 class:Segment
|
19
|
+
Analytics spec/segment/analytics_spec.rb /^ class Analytics$/;" c line:4 class:Segment
|
20
|
+
Analytics spec/spec_helper.rb /^ class Analytics$/;" c line:4 class:Segment
|
21
|
+
BACKOFF lib/segment/analytics/defaults.rb /^ BACKOFF = 30.0$/;" c line:11
|
22
|
+
BACKOFF spec/segment/analytics/worker_spec.rb /^ Segment::Analytics::Defaults::Request::BACKOFF = 0.1$/;" c line:16
|
23
|
+
BACKOFF spec/segment/analytics/worker_spec.rb /^ Segment::Analytics::Defaults::Request::BACKOFF = 30.0$/;" c line:20
|
24
|
+
BATCH_SIZE lib/segment/analytics/defaults.rb /^ BATCH_SIZE = 100$/;" c line:15
|
25
|
+
Client lib/segment/analytics/client.rb /^ class Client$/;" c line:9 class:Segment.Analytics
|
26
|
+
Defaults lib/segment/analytics/defaults.rb /^ module Defaults$/;" m line:3 class:Segment.Analytics
|
27
|
+
GROUP spec/spec_helper.rb /^ GROUP = GROUP.merge :group_id => GROUP_ID, :user_id => USER_ID$/;" c line:47
|
28
|
+
GROUP spec/spec_helper.rb /^ GROUP = GROUP.merge({$/;" c line:64
|
29
|
+
GROUP spec/spec_helper.rb /^ GROUP = {}$/;" c line:30
|
30
|
+
GROUP_ID spec/spec_helper.rb /^ GROUP_ID = 1234$/;" c line:41
|
31
|
+
HEADERS lib/segment/analytics/defaults.rb /^ HEADERS = { :accept => 'application\/json' }$/;" c line:9
|
32
|
+
HOST lib/segment/analytics/defaults.rb /^ HOST = 'api.segment.io'$/;" c line:5
|
33
|
+
IDENTIFY spec/spec_helper.rb /^ IDENTIFY = IDENTIFY.merge :user_id => USER_ID$/;" c line:46
|
34
|
+
IDENTIFY spec/spec_helper.rb /^ IDENTIFY = IDENTIFY.merge({$/;" c line:59
|
35
|
+
IDENTIFY spec/spec_helper.rb /^ IDENTIFY = {$/;" c line:17
|
36
|
+
Logging lib/segment/analytics/logging.rb /^ module Logging$/;" m line:5 class:Segment.Analytics
|
37
|
+
MAX_SIZE lib/segment/analytics/defaults.rb /^ MAX_SIZE = 10000$/;" c line:16
|
38
|
+
Makefile Makefile 1;" F line:1
|
39
|
+
PAGE spec/spec_helper.rb /^ PAGE = PAGE.merge :userId => USER_ID$/;" c line:70
|
40
|
+
PAGE spec/spec_helper.rb /^ PAGE = PAGE.merge :user_id => USER_ID$/;" c line:48
|
41
|
+
PAGE spec/spec_helper.rb /^ PAGE = {$/;" c line:32
|
42
|
+
PATH lib/segment/analytics/defaults.rb /^ PATH = '\/v1\/import'$/;" c line:7
|
43
|
+
PORT lib/segment/analytics/defaults.rb /^ PORT = 443$/;" c line:6
|
44
|
+
Queue lib/segment/analytics/defaults.rb /^ module Queue$/;" m line:14 class:Segment.Analytics.Defaults
|
45
|
+
Queued spec/spec_helper.rb /^ module Queued$/;" m line:44 class:Segment.Analytics
|
46
|
+
RETRIES lib/segment/analytics/defaults.rb /^ RETRIES = 4$/;" c line:10
|
47
|
+
Request lib/segment/analytics/defaults.rb /^ module Request$/;" m line:4 class:Segment.Analytics.Defaults
|
48
|
+
Request lib/segment/analytics/request.rb /^ class Request$/;" c line:11 class:Segment.Analytics
|
49
|
+
Requested spec/spec_helper.rb /^ module Requested$/;" m line:53 class:Segment.Analytics
|
50
|
+
Response lib/segment/analytics/response.rb /^ class Response$/;" c line:3 class:Segment.Analytics
|
51
|
+
SCREEN spec/spec_helper.rb /^ SCREEN = SCREEN.merge :userId => USER_ID$/;" c line:71
|
52
|
+
SCREEN spec/spec_helper.rb /^ SCREEN = SCREEN.merge :user_id => USER_ID$/;" c line:49
|
53
|
+
SCREEN spec/spec_helper.rb /^ SCREEN = {$/;" c line:36
|
54
|
+
SSL lib/segment/analytics/defaults.rb /^ SSL = true$/;" c line:8
|
55
|
+
Segment lib/segment/analytics.rb /^module Segment$/;" m line:10
|
56
|
+
Segment lib/segment/analytics/client.rb /^module Segment$/;" m line:7
|
57
|
+
Segment lib/segment/analytics/defaults.rb /^module Segment$/;" m line:1
|
58
|
+
Segment lib/segment/analytics/logging.rb /^module Segment$/;" m line:3
|
59
|
+
Segment lib/segment/analytics/request.rb /^module Segment$/;" m line:9
|
60
|
+
Segment lib/segment/analytics/response.rb /^module Segment$/;" m line:1
|
61
|
+
Segment lib/segment/analytics/utils.rb /^module Segment$/;" m line:3
|
62
|
+
Segment lib/segment/analytics/version.rb /^module Segment$/;" m line:1
|
63
|
+
Segment lib/segment/analytics/worker.rb /^module Segment$/;" m line:6
|
64
|
+
Segment spec/segment/analytics/client_spec.rb /^module Segment$/;" m line:3
|
65
|
+
Segment spec/segment/analytics/worker_spec.rb /^module Segment$/;" m line:3
|
66
|
+
Segment spec/segment/analytics_spec.rb /^module Segment$/;" m line:3
|
67
|
+
Segment spec/spec_helper.rb /^module Segment$/;" m line:3
|
68
|
+
TRACK spec/spec_helper.rb /^ TRACK = TRACK.merge :user_id => USER_ID$/;" c line:45
|
69
|
+
TRACK spec/spec_helper.rb /^ TRACK = TRACK.merge({$/;" c line:54
|
70
|
+
TRACK spec/spec_helper.rb /^ TRACK = {$/;" c line:7
|
71
|
+
USER_ID spec/spec_helper.rb /^ USER_ID = 1234$/;" c line:40
|
72
|
+
UTC_OFFSET_WITHOUT_COLON lib/segment/analytics/utils.rb /^ UTC_OFFSET_WITHOUT_COLON = UTC_OFFSET_WITH_COLON.sub(':', '')$/;" c line:82
|
73
|
+
UTC_OFFSET_WITH_COLON lib/segment/analytics/utils.rb /^ UTC_OFFSET_WITH_COLON = '%s%02d:%02d'$/;" c line:81
|
74
|
+
Utils lib/segment/analytics/utils.rb /^ module Utils$/;" m line:5 class:Segment.Analytics
|
75
|
+
VERSION lib/segment/analytics/version.rb /^ VERSION = '2.0.0'$/;" c line:3
|
76
|
+
WRITE_KEY spec/spec_helper.rb /^ WRITE_KEY = 'testsecret'$/;" c line:5
|
77
|
+
Worker lib/segment/analytics/worker.rb /^ class Worker$/;" c line:8 class:Segment.Analytics
|
78
|
+
add_context lib/segment/analytics/client.rb /^ def add_context(context)$/;" f line:277 class:Segment.Analytics.Client
|
79
|
+
alias lib/segment/analytics/client.rb /^ def alias(options)$/;" f line:119 class:Segment.Analytics.Client
|
80
|
+
analytics.rb lib/segment/analytics.rb 1;" F line:1
|
81
|
+
analytics_spec.rb spec/segment/analytics_spec.rb 1;" F line:1
|
82
|
+
check_non_empty_string! lib/segment/analytics/client.rb /^ def check_non_empty_string!(str, name)$/;" f line:270 class:Segment.Analytics.Client
|
83
|
+
check_timestamp! lib/segment/analytics/client.rb /^ def check_timestamp!(timestamp)$/;" f line:287 class:Segment.Analytics.Client
|
84
|
+
check_user_id! lib/segment/analytics/client.rb /^ def check_user_id! options$/;" f line:304 class:Segment.Analytics.Client
|
85
|
+
check_write_key! lib/segment/analytics/client.rb /^ def check_write_key!$/;" f line:282 class:Segment.Analytics.Client
|
86
|
+
client.rb lib/segment/analytics/client.rb 1;" F line:1
|
87
|
+
client_spec.rb spec/segment/analytics/client_spec.rb 1;" F line:1
|
88
|
+
date_in_iso8601 lib/segment/analytics/utils.rb /^ def date_in_iso8601 date$/;" f line:69 class:Segment.Analytics
|
89
|
+
datetime_in_iso8601 lib/segment/analytics/utils.rb /^ def datetime_in_iso8601 datetime$/;" f line:51 class:Segment.Analytics.Utils
|
90
|
+
defaults.rb lib/segment/analytics/defaults.rb 1;" F line:1
|
91
|
+
enqueue lib/segment/analytics/client.rb /^ def enqueue(action)$/;" f line:255 class:Segment.Analytics.Client
|
92
|
+
ensure_worker_running lib/segment/analytics/client.rb /^ def ensure_worker_running$/;" f line:308 class:Segment.Analytics.Client
|
93
|
+
event lib/segment/analytics/client.rb /^ def event attrs$/;" f line:291 class:Segment.Analytics.Client
|
94
|
+
flush lib/segment/analytics/client.rb /^ def flush$/;" f line:34 class:Segment.Analytics.Client
|
95
|
+
formatted_offset lib/segment/analytics/utils.rb /^ def formatted_offset time, colon = true, alternate_utc_string = nil$/;" f line:73 class:Segment.Analytics
|
96
|
+
group lib/segment/analytics/client.rb /^ def group(options)$/;" f line:148 class:Segment.Analytics.Client
|
97
|
+
identify lib/segment/analytics/client.rb /^ def identify options$/;" f line:87 class:Segment.Analytics.Client
|
98
|
+
included lib/segment/analytics/logging.rb /^ def self.included base$/;" F line:22 class:Segment
|
99
|
+
initialize lib/segment/analytics.rb /^ def initialize options = {}$/;" f line:12 class:Segment.Analytics
|
100
|
+
initialize lib/segment/analytics/client.rb /^ def initialize options = {}$/;" f line:18 class:Segment.Analytics.Client
|
101
|
+
initialize lib/segment/analytics/request.rb /^ def initialize(options = {})$/;" f line:18 class:Segment.Analytics.Request
|
102
|
+
initialize lib/segment/analytics/response.rb /^ def initialize(status = 200, error = nil)$/;" f line:9 class:Segment.Analytics.Response
|
103
|
+
initialize lib/segment/analytics/worker.rb /^ def initialize(queue, write_key, options = {})$/;" f line:23 class:Segment.Analytics.Worker
|
104
|
+
is_requesting? lib/segment/analytics/worker.rb /^ def is_requesting?$/;" f line:54 class:Segment.Analytics
|
105
|
+
isoify_dates lib/segment/analytics/utils.rb /^ def isoify_dates(hash)$/;" f line:29 class:Segment.Analytics.Utils
|
106
|
+
isoify_dates! lib/segment/analytics/utils.rb /^ def isoify_dates!(hash)$/;" f line:38 class:Segment.Analytics.Utils
|
107
|
+
logger lib/segment/analytics/logging.rb /^ def logger$/;" f line:24 class:Segment.included
|
108
|
+
logger lib/segment/analytics/logging.rb /^ def logger$/;" f line:7 class:Segment.Analytics.Logging
|
109
|
+
logger lib/segment/analytics/logging.rb /^ def logger$/;" f line:30
|
110
|
+
logger= lib/segment/analytics/logging.rb /^ def logger= logger$/;" f line:17 class:Segment.Analytics
|
111
|
+
logging.rb lib/segment/analytics/logging.rb 1;" F line:1
|
112
|
+
method_missing lib/segment/analytics.rb /^ def method_missing message, *args, &block$/;" f line:17 class:Segment.Analytics
|
113
|
+
page lib/segment/analytics/client.rb /^ def page(options)$/;" f line:182 class:Segment.Analytics.Client
|
114
|
+
post lib/segment/analytics/request.rb /^ def post(write_key, batch)$/;" f line:38 class:Segment.Analytics.Request
|
115
|
+
queued_messages lib/segment/analytics/client.rb /^ def queued_messages$/;" f line:246 class:Segment.Analytics.Client
|
116
|
+
request.rb lib/segment/analytics/request.rb 1;" F line:1
|
117
|
+
respond_to? lib/segment/analytics.rb /^ def respond_to? method_name, include_private = false$/;" f line:25 class:Segment.Analytics
|
118
|
+
response.rb lib/segment/analytics/response.rb 1;" F line:1
|
119
|
+
run lib/segment/analytics/worker.rb /^ def run$/;" f line:35 class:Segment.Analytics.Worker
|
120
|
+
screen lib/segment/analytics/client.rb /^ def screen(options)$/;" f line:216 class:Segment.Analytics.Client
|
121
|
+
seconds_to_utc_offset lib/segment/analytics/utils.rb /^ def seconds_to_utc_offset(seconds, colon = true)$/;" f line:77 class:Segment.Analytics
|
122
|
+
segment.rb lib/segment.rb 1;" F line:1
|
123
|
+
spec_helper.rb spec/spec_helper.rb 1;" F line:1
|
124
|
+
stringify_keys lib/segment/analytics/utils.rb /^ def stringify_keys(hash)$/;" f line:22 class:Segment.Analytics.Utils
|
125
|
+
symbolize_keys lib/segment/analytics/utils.rb /^ def symbolize_keys(hash)$/;" f line:10 class:Segment.Analytics.Utils
|
126
|
+
symbolize_keys! lib/segment/analytics/utils.rb /^ def symbolize_keys!(hash)$/;" f line:16 class:Segment.Analytics.Utils
|
127
|
+
test.rb test.rb 1;" F line:1
|
128
|
+
time_in_iso8601 lib/segment/analytics/utils.rb /^ def time_in_iso8601 time, fraction_digits = 0$/;" f line:61 class:Segment.Analytics.Utils
|
129
|
+
track lib/segment/analytics/client.rb /^ def track options$/;" f line:49 class:Segment.Analytics.Client
|
130
|
+
uid lib/segment/analytics/utils.rb /^ def uid$/;" f line:44 class:Segment.Analytics.Utils
|
131
|
+
utils.rb lib/segment/analytics/utils.rb 1;" F line:1
|
132
|
+
version.rb lib/segment/analytics/version.rb 1;" F line:1
|
133
|
+
worker.rb lib/segment/analytics/worker.rb 1;" F line:1
|
134
|
+
worker_running? lib/segment/analytics/client.rb /^ def worker_running?$/;" f line:319 class:Segment.Analytics.Client
|
135
|
+
worker_spec.rb spec/segment/analytics/worker_spec.rb 1;" F line:1
|