analytics-ruby 1.1.0 → 2.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.
- 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
|