ldclient-rb 0.0.8 → 0.0.9
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.
- checksums.yaml +4 -4
- data/lib/ldclient-rb/config.rb +2 -2
- data/lib/ldclient-rb/ldclient.rb +36 -25
- data/lib/ldclient-rb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb529ae4cee84dc59dc337679aefcc43c30387f1
|
4
|
+
data.tar.gz: 289912147c41778bda0bfe4782c79c0c5aa1db49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2c63e0292ad05fba2a4751f70f900816a4fac97d73d8dcb81602465aa461c1fa08df5cfbb0fecff659a9827c22c07d57f36be63053845f13a3f0c13aaea11dc
|
7
|
+
data.tar.gz: f1379084fc8edc81b3355b68fb8eb17b5ab31f39fda1b37ba1a4052f3cfa157c956924950a8c0275f1fc621957c544c795308e994c641036c8e7cd36ff7b7df0
|
data/lib/ldclient-rb/config.rb
CHANGED
@@ -20,7 +20,7 @@ module LaunchDarkly
|
|
20
20
|
#
|
21
21
|
# @return [type] [description]
|
22
22
|
def initialize(opts = {})
|
23
|
-
@base_uri = opts[:base_uri] || Config.default_base_uri
|
23
|
+
@base_uri = (opts[:base_uri] || Config.default_base_uri).chomp("/")
|
24
24
|
@capacity = opts[:capacity] || Config.default_capacity
|
25
25
|
@logger = opts[:logger] || Config.default_logger
|
26
26
|
@store = opts[:store] || Config.default_store
|
@@ -91,7 +91,7 @@ module LaunchDarkly
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def self.default_flush_interval
|
94
|
-
|
94
|
+
10
|
95
95
|
end
|
96
96
|
|
97
97
|
def self.default_logger
|
data/lib/ldclient-rb/ldclient.rb
CHANGED
@@ -32,31 +32,38 @@ module LaunchDarkly
|
|
32
32
|
builder.adapter Faraday.default_adapter
|
33
33
|
end
|
34
34
|
|
35
|
+
@worker = create_worker()
|
36
|
+
end
|
37
|
+
|
38
|
+
def create_worker()
|
35
39
|
Thread.new do
|
36
40
|
while true do
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if !events.empty?()
|
44
|
-
res =
|
45
|
-
@client.post (@config.base_uri + "/api/events/bulk") do |req|
|
46
|
-
req.headers['Authorization'] = 'api_key ' + @api_key
|
47
|
-
req.headers['User-Agent'] = 'RubyClient/' + LaunchDarkly::VERSION
|
48
|
-
req.headers['Content-Type'] = 'application/json'
|
49
|
-
req.body = events.to_json
|
41
|
+
begin
|
42
|
+
events = []
|
43
|
+
num_events = @queue.length()
|
44
|
+
num_events.times do
|
45
|
+
events << @queue.pop()
|
50
46
|
end
|
51
|
-
|
52
|
-
|
47
|
+
|
48
|
+
if !events.empty?()
|
49
|
+
res =
|
50
|
+
@client.post (@config.base_uri + "/api/events/bulk") do |req|
|
51
|
+
req.headers['Authorization'] = 'api_key ' + @api_key
|
52
|
+
req.headers['User-Agent'] = 'RubyClient/' + LaunchDarkly::VERSION
|
53
|
+
req.headers['Content-Type'] = 'application/json'
|
54
|
+
req.body = events.to_json
|
55
|
+
end
|
56
|
+
if res.status != 200
|
57
|
+
@config.logger.error("[LDClient] Unexpected status code while processing events: #{res.status}")
|
58
|
+
end
|
53
59
|
end
|
54
|
-
end
|
55
60
|
|
56
|
-
|
61
|
+
sleep(@config.flush_interval)
|
62
|
+
rescue Exception => exn
|
63
|
+
@config.logger.error("[LDClient] Unexpected exception in create_worker: #{exn.message}")
|
64
|
+
end
|
57
65
|
end
|
58
66
|
end
|
59
|
-
|
60
67
|
end
|
61
68
|
|
62
69
|
#
|
@@ -95,7 +102,7 @@ module LaunchDarkly
|
|
95
102
|
add_event({:kind => 'feature', :key => key, :user => user, :value => value})
|
96
103
|
return value
|
97
104
|
rescue StandardError => error
|
98
|
-
@config.logger.error("Unhandled exception in get_flag:
|
105
|
+
@config.logger.error("[LDClient] Unhandled exception in get_flag: #{error.message}")
|
99
106
|
default
|
100
107
|
end
|
101
108
|
end
|
@@ -104,8 +111,12 @@ module LaunchDarkly
|
|
104
111
|
if @queue.length() < @config.capacity
|
105
112
|
event[:creationDate] = (Time.now.to_f * 1000).to_i
|
106
113
|
@queue.push(event)
|
114
|
+
|
115
|
+
if ! @worker.alive?
|
116
|
+
@worker = create_worker()
|
117
|
+
end
|
107
118
|
else
|
108
|
-
@config.logger.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")
|
119
|
+
@config.logger.warn("[LDClient] Exceeded event queue capacity. Increase capacity to avoid dropping events.")
|
109
120
|
end
|
110
121
|
end
|
111
122
|
|
@@ -124,7 +135,7 @@ module LaunchDarkly
|
|
124
135
|
def get_flag_int(key, user, default)
|
125
136
|
|
126
137
|
unless user
|
127
|
-
@config.logger.error("Must specify user")
|
138
|
+
@config.logger.error("[LDClient] Must specify user")
|
128
139
|
return default
|
129
140
|
end
|
130
141
|
|
@@ -135,17 +146,17 @@ module LaunchDarkly
|
|
135
146
|
end
|
136
147
|
|
137
148
|
if res.status == 401
|
138
|
-
@config.logger.error("Invalid API key")
|
149
|
+
@config.logger.error("[LDClient] Invalid API key")
|
139
150
|
return default
|
140
151
|
end
|
141
152
|
|
142
153
|
if res.status == 404
|
143
|
-
@config.logger.error("Unknown feature key: "
|
154
|
+
@config.logger.error("[LDClient] Unknown feature key: #{key}")
|
144
155
|
return default
|
145
156
|
end
|
146
157
|
|
147
158
|
if res.status != 200
|
148
|
-
@config.logger.error("Unexpected status code
|
159
|
+
@config.logger.error("[LDClient] Unexpected status code #{res.status}")
|
149
160
|
return default
|
150
161
|
end
|
151
162
|
|
@@ -242,7 +253,7 @@ module LaunchDarkly
|
|
242
253
|
|
243
254
|
end
|
244
255
|
|
245
|
-
private :add_event, :get_flag_int, :param_for_user, :match_target?, :match_variation?, :evaluate
|
256
|
+
private :add_event, :get_flag_int, :param_for_user, :match_target?, :match_variation?, :evaluate, :create_worker
|
246
257
|
|
247
258
|
|
248
259
|
end
|
data/lib/ldclient-rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ldclient-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Catamorphic Co
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|