ldclient-rb 2.1.5 → 2.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: '02280955049e36b131e2390244c8325ac209518a'
4
- data.tar.gz: 93822c18a0c63b943b076ca3487709c4ede818dd
3
+ metadata.gz: 8e80f005cb0e766f2b7bc67ae26b9d33ef9f8df3
4
+ data.tar.gz: 42ce3fee3713a80d14e0f250b8e541918a50fcf0
5
5
  SHA512:
6
- metadata.gz: 71009492321ac882b0daf211f0ed6f802bf9816d570e1224c08c5ccac86f8f7ecae08a1f54b8ed53aae9a8f061a9401299df0e7cd0b11074cd522085c821c5e2
7
- data.tar.gz: bfe06e169dea4d8f786b916b7924ed3a903283b6594c6a3ccac99a34d2a556dcc3ae2f4a00b180e606bf7eccb7a531324b4057c50fd2f80fcf7867e7b618ccbb
6
+ metadata.gz: 3c40490932b362914b7383a651f1fe36736eefbcacb1c1be72018420d917bf47606d21b40da8fde3033bd645a26d2c00426dba38f6a37596006625d952f96982
7
+ data.tar.gz: 1fd96aa5d3c37eeb0dd6f17a69b075a300f546b1fee31ecbd82971cdf3d81ae7537b0e99c58cc41444f3e135a133f464f32d891c37d264e1b7c1cfd36b97d489
data/ldclient-rb.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_runtime_dependency "net-http-persistent", "~> 2.9"
32
32
  spec.add_runtime_dependency "concurrent-ruby", "~> 1.0.4"
33
33
  spec.add_runtime_dependency "hashdiff", "~> 0.2"
34
- spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.9.0"
34
+ spec.add_runtime_dependency "ld-celluloid-eventsource", "~> 0.10.0"
35
35
  spec.add_runtime_dependency "celluloid", "~> 0.18.0.pre" # transitive dep; specified here for more control
36
36
 
37
37
  if RUBY_VERSION >= '2.2.2'
@@ -56,6 +56,7 @@ module LaunchDarkly
56
56
  @stream = opts.has_key?(:stream) ? opts[:stream] : Config.default_stream
57
57
  @offline = opts.has_key?(:offline) ? opts[:offline] : Config.default_offline
58
58
  @poll_interval = opts.has_key?(:poll_interval) && opts[:poll_interval] > 1 ? opts[:poll_interval] : Config.default_poll_interval
59
+ @proxy = opts[:proxy] || Config.default_proxy
59
60
  end
60
61
 
61
62
  #
@@ -143,6 +144,11 @@ module LaunchDarkly
143
144
  #
144
145
  attr_reader :feature_store
145
146
 
147
+
148
+ # The proxy configuration string
149
+ #
150
+ attr_reader :proxy
151
+
146
152
  #
147
153
  # The default LaunchDarkly client configuration. This configuration sets
148
154
  # reasonable defaults for most users.
@@ -184,6 +190,10 @@ module LaunchDarkly
184
190
  2
185
191
  end
186
192
 
193
+ def self.default_proxy
194
+ nil
195
+ end
196
+
187
197
  def self.default_logger
188
198
  if defined?(Rails) && Rails.respond_to?(:logger)
189
199
  Rails.logger
@@ -30,6 +30,9 @@ module LaunchDarkly
30
30
  req.headers["User-Agent"] = "RubyClient/" + LaunchDarkly::VERSION
31
31
  req.options.timeout = @config.read_timeout
32
32
  req.options.open_timeout = @config.connect_timeout
33
+ if @config.proxy
34
+ req.options.proxy = Faraday::ProxyOptions.from @config.proxy
35
+ end
33
36
  end
34
37
 
35
38
  @config.logger.debug("[LDClient] Got response from uri: #{uri}\n\tstatus code: #{res.status}\n\theaders: #{res.headers}\n\tbody: #{res.body}")
@@ -33,7 +33,7 @@ module LaunchDarkly
33
33
  'Authorization' => @sdk_key,
34
34
  'User-Agent' => 'RubyClient/' + LaunchDarkly::VERSION
35
35
  }
36
- opts = {:headers => headers, :with_credentials => true}
36
+ opts = {:headers => headers, :with_credentials => true, :proxy => @config.proxy}
37
37
  @es = Celluloid::EventSource.new(@config.stream_uri + "/flags", opts) do |conn|
38
38
  conn.on(PUT) { |message| process_message(message, PUT) }
39
39
  conn.on(PATCH) { |message| process_message(message, PATCH) }
@@ -1,3 +1,3 @@
1
1
  module LaunchDarkly
2
- VERSION = "2.1.5"
2
+ VERSION = "2.2.5"
3
3
  end
@@ -0,0 +1,53 @@
1
+ require "spec_helper"
2
+ require "faraday"
3
+
4
+ describe LaunchDarkly::Requestor do
5
+ describe ".request_all_flags" do
6
+ describe "with a proxy" do
7
+ let(:requestor) {
8
+ LaunchDarkly::Requestor.new(
9
+ "key",
10
+ LaunchDarkly::Config.new({
11
+ :proxy => "http://proxy.com",
12
+ :base_uri => "http://ld.com"
13
+ })
14
+ )
15
+ }
16
+ it "converts the proxy option" do
17
+ faraday = Faraday.new
18
+ requestor.instance_variable_set(:@client, faraday)
19
+ allow(faraday).to receive(:get) do |*args, &block|
20
+ req = double(Faraday::Request, :headers => {}, :options => Faraday::RequestOptions.new)
21
+ block.call(req)
22
+ expect(args).to eq ['http://ld.com/sdk/latest-flags']
23
+ expect(req.options.proxy[:uri]).to eq URI("http://proxy.com")
24
+ double(body: '{"foo": "bar"}', status: 200, headers: {})
25
+ end
26
+
27
+ requestor.request_all_flags()
28
+ end
29
+ end
30
+ describe "without a proxy" do
31
+ let(:requestor) {
32
+ LaunchDarkly::Requestor.new(
33
+ "key",
34
+ LaunchDarkly::Config.new({
35
+ :base_uri => "http://ld.com"
36
+ })
37
+ )
38
+ }
39
+ it "converts the proxy option" do
40
+ faraday = Faraday.new
41
+ requestor.instance_variable_set(:@client, faraday)
42
+ allow(faraday).to receive(:get) do |*args, &block|
43
+ req = double(Faraday::Request, :headers => {}, :options => Faraday::RequestOptions.new)
44
+ block.call(req)
45
+ expect(args).to eq ['http://ld.com/sdk/latest-flags']
46
+ expect(req.options.proxy).to eq nil
47
+ double(body: '{"foo": "bar"}', status: 200, headers: {})
48
+ end
49
+ requestor.request_all_flags()
50
+ end
51
+ end
52
+ end
53
+ end
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: 2.1.5
4
+ version: 2.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - LaunchDarkly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-28 00:00:00.000000000 Z
11
+ date: 2017-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.9.0
173
+ version: 0.10.0
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.9.0
180
+ version: 0.10.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: celluloid
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -261,6 +261,7 @@ files:
261
261
  - spec/fixtures/user.json
262
262
  - spec/ldclient_spec.rb
263
263
  - spec/newrelic_spec.rb
264
+ - spec/requestor_spec.rb
264
265
  - spec/spec_helper.rb
265
266
  - spec/store_spec.rb
266
267
  - spec/stream_spec.rb
@@ -285,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
286
  version: '0'
286
287
  requirements: []
287
288
  rubyforge_project:
288
- rubygems_version: 2.6.10
289
+ rubygems_version: 2.6.11
289
290
  signing_key:
290
291
  specification_version: 4
291
292
  summary: LaunchDarkly SDK for Ruby
@@ -297,6 +298,7 @@ test_files:
297
298
  - spec/fixtures/user.json
298
299
  - spec/ldclient_spec.rb
299
300
  - spec/newrelic_spec.rb
301
+ - spec/requestor_spec.rb
300
302
  - spec/spec_helper.rb
301
303
  - spec/store_spec.rb
302
304
  - spec/stream_spec.rb