nxt_http_client 0.2.5 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a9156afeb06fcba2f57308d7a0ef33582d4e14dd2f1673fdec05fd4173fdd73
4
- data.tar.gz: f39565c9ab124f24ca55df92c5664037c7a116bf749f8d4acc0ccc502a0e9a54
3
+ metadata.gz: 22aa2f16ec7170133779ae75097fdd0c164a3a3a793a98f8d565d6ddfd2ca96c
4
+ data.tar.gz: c21b929937fe483cd7d56754d50ba37ae9d83b10bb120e5b772b425f3a04e559
5
5
  SHA512:
6
- metadata.gz: af06d4cbc5dfa2aa713e70f8e93bdff96f0e8669691b14d75e194306019d1e5f879f77f894d0d6afe673419a548d41faf4fbf34c5fb0ea704f6c6dc5b6408712
7
- data.tar.gz: 73d399f7d6ceb3ed38312f7b98d0f825e697be53920a177dad2558fc2a4066146d5eb6413ec1b56957cee08b50b374d7cc8238f70827faaef823d52e4b81f355
6
+ metadata.gz: be208ed0c5e3b617d48dcca068c8c588e9748ab34f23a538d9039f6b7ed1649dd96f54ec0dbb716de3c823b5f6ff452b06eadfd79a85514f97106d4fef0d7fd4
7
+ data.tar.gz: 0743b9d3371ff51381c8a0f5b45547bc86302f0282e8064fe7a93f268e195361ca055ed7a085df38b82653909542488cd6de02a2d5b95abcf547068215097278
@@ -0,0 +1,57 @@
1
+ # Ruby CircleCI 2.0 configuration file
2
+ #
3
+ # Check https://circleci.com/docs/2.0/language-ruby/ for more details
4
+ #
5
+ version: 2
6
+ jobs:
7
+ build:
8
+ docker:
9
+ - image: circleci/ruby:2.7.0-node
10
+ - image: circleci/redis:5.0.4
11
+ environment:
12
+ BUNDLER_VERSION: 2.1.4
13
+
14
+ working_directory: ~/repo
15
+
16
+ steps:
17
+ - checkout
18
+
19
+ # Download and cache dependencies
20
+ - restore_cache:
21
+ keys:
22
+ - v1-dependencies-{{ checksum "Gemfile.lock" }}
23
+
24
+ - run: gem install bundler --version $BUNDLER_VERSION
25
+
26
+ - run:
27
+ name: install dependencies
28
+ command: |
29
+ bundle install --jobs=4 --retry=3 --path vendor/bundle
30
+
31
+ - save_cache:
32
+ paths:
33
+ - ./vendor/bundle
34
+ key: v1-dependencies-{{ checksum "Gemfile.lock" }}
35
+
36
+ # run tests!
37
+ - run:
38
+ name: run tests
39
+ command: |
40
+ mkdir /tmp/test-results
41
+ TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
42
+ circleci tests split --split-by=timings)"
43
+
44
+ bundle exec rspec \
45
+ --format progress \
46
+ --format RspecJunitFormatter \
47
+ --out /tmp/test-results/rspec.xml \
48
+ --format progress \
49
+ $TEST_FILES
50
+
51
+ # collect reports
52
+ - store_artifacts:
53
+ path: /tmp/rspec/
54
+ destination: rspec
55
+
56
+ - store_test_results:
57
+ path: /tmp/rspec/
@@ -0,0 +1,8 @@
1
+ # v0.2.10 2020-03-10
2
+
3
+ ### Refactored
4
+
5
+ - [internal] Added CHANGELOG.MD
6
+ - Refactored a bit
7
+
8
+ [Compare v0.2.9...v0.2.10](https://github.com/nxt-insurance/nxt_http_client/compare/v0.2.9...v0.2.10)
@@ -1,66 +1,73 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nxt_http_client (0.2.5)
5
- activesupport (~> 5.2)
4
+ nxt_http_client (0.3.0)
5
+ activesupport (~> 6.0.0)
6
+ nxt_registry
6
7
  typhoeus
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- activesupport (5.2.3)
12
+ activesupport (6.0.3.2)
12
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
14
  i18n (>= 0.7, < 2)
14
15
  minitest (~> 5.1)
15
16
  tzinfo (~> 1.1)
16
- addressable (2.6.0)
17
- public_suffix (>= 2.0.2, < 4.0)
17
+ zeitwerk (~> 2.2, >= 2.2.2)
18
+ addressable (2.7.0)
19
+ public_suffix (>= 2.0.2, < 5.0)
18
20
  coderay (1.1.2)
19
- concurrent-ruby (1.1.5)
21
+ concurrent-ruby (1.1.6)
20
22
  crack (0.4.3)
21
23
  safe_yaml (~> 1.0.0)
22
24
  diff-lcs (1.3)
23
25
  ethon (0.12.0)
24
26
  ffi (>= 1.3.0)
25
- ffi (1.11.1)
26
- hashdiff (1.0.0)
27
- i18n (1.6.0)
27
+ ffi (1.12.2)
28
+ hashdiff (1.0.1)
29
+ i18n (1.8.5)
28
30
  concurrent-ruby (~> 1.0)
29
- method_source (0.9.2)
30
- minitest (5.11.3)
31
+ method_source (1.0.0)
32
+ minitest (5.14.1)
33
+ nxt_registry (0.2.0)
34
+ activesupport
31
35
  nxt_vcr_harness (0.1.3)
32
36
  rspec (~> 3.0)
33
37
  vcr (~> 5.0)
34
- pry (0.12.2)
35
- coderay (~> 1.1.0)
36
- method_source (~> 0.9.0)
37
- public_suffix (3.1.1)
38
- rake (10.5.0)
39
- redis (4.1.2)
40
- rspec (3.8.0)
41
- rspec-core (~> 3.8.0)
42
- rspec-expectations (~> 3.8.0)
43
- rspec-mocks (~> 3.8.0)
44
- rspec-core (3.8.2)
45
- rspec-support (~> 3.8.0)
46
- rspec-expectations (3.8.4)
38
+ pry (0.13.1)
39
+ coderay (~> 1.1)
40
+ method_source (~> 1.0)
41
+ public_suffix (4.0.3)
42
+ rake (13.0.1)
43
+ redis (4.2.1)
44
+ rspec (3.9.0)
45
+ rspec-core (~> 3.9.0)
46
+ rspec-expectations (~> 3.9.0)
47
+ rspec-mocks (~> 3.9.0)
48
+ rspec-core (3.9.0)
49
+ rspec-support (~> 3.9.0)
50
+ rspec-expectations (3.9.0)
47
51
  diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-mocks (3.8.1)
52
+ rspec-support (~> 3.9.0)
53
+ rspec-mocks (3.9.0)
50
54
  diff-lcs (>= 1.2.0, < 2.0)
51
- rspec-support (~> 3.8.0)
52
- rspec-support (3.8.2)
55
+ rspec-support (~> 3.9.0)
56
+ rspec-support (3.9.0)
57
+ rspec_junit_formatter (0.4.1)
58
+ rspec-core (>= 2, < 4, != 2.12.0)
53
59
  safe_yaml (1.0.5)
54
60
  thread_safe (0.3.6)
55
- typhoeus (1.3.1)
61
+ typhoeus (1.4.0)
56
62
  ethon (>= 0.9.0)
57
- tzinfo (1.2.5)
63
+ tzinfo (1.2.7)
58
64
  thread_safe (~> 0.1)
59
- vcr (5.0.0)
60
- webmock (3.6.0)
65
+ vcr (5.1.0)
66
+ webmock (3.8.3)
61
67
  addressable (>= 2.3.6)
62
68
  crack (>= 0.3.2)
63
69
  hashdiff (>= 0.4.0, < 2.0.0)
70
+ zeitwerk (2.4.0)
64
71
 
65
72
  PLATFORMS
66
73
  ruby
@@ -70,11 +77,12 @@ DEPENDENCIES
70
77
  nxt_http_client!
71
78
  nxt_vcr_harness
72
79
  pry
73
- rake (~> 10.0)
80
+ rake (~> 13.0)
74
81
  redis
75
82
  rspec (~> 3.0)
83
+ rspec_junit_formatter
76
84
  vcr
77
85
  webmock
78
86
 
79
87
  BUNDLED WITH
80
- 1.17.2
88
+ 1.17.3
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # NxtHttpClient
2
2
 
3
- Build http clients with ease. NxtHttpClient is a simple DSL on top of the typhoeus gem.
4
- The idea is that you can configure a client on the class level and then adjust or further configure
5
- request options on an instance level. All http interactions are handled by typhoeus. If you need to
3
+ Build http clients with ease. NxtHttpClient is a simple DSL on top of the awesome typhoeus gem.
4
+ The idea is that you can configure your http clients on the class level and then adjust or further configure
5
+ request options on the instance level. All http interactions are handled by typhoeus. If you need to
6
6
  access the original `Typhoeus::Request` in your instance, you can do that.
7
7
 
8
8
  ## Installation
@@ -43,6 +43,7 @@ class MyClient < NxtHttpClient
43
43
 
44
44
  register_response_handler do |handler|
45
45
  handler.on(:error) do |response|
46
+ Raven.extra_context(error_details: error.to_h) # call error.to_h to inspect request and response
46
47
  raise StandardError, "I can't handle this: #{response.code}"
47
48
  end
48
49
  end
@@ -1,5 +1,6 @@
1
1
  require 'active_support/all'
2
2
  require 'typhoeus'
3
+ require 'nxt_registry'
3
4
 
4
5
  require 'nxt_http_client/version'
5
6
  require 'nxt_http_client/response_handler'
@@ -1,51 +1,22 @@
1
1
  module NxtHttpClient
2
2
  class Client
3
3
  extend ClientDsl
4
- CACHE_STRATEGIES = %w[global thread]
4
+ CACHE_STRATEGIES = %w[global thread].freeze
5
+ HTTP_METHODS = %w[get post patch put delete head].freeze
5
6
 
6
7
  def build_request(url, **opts)
7
- base_url = opts.delete(:base_url) || default_config.base_url
8
- url = [base_url, url].reject(&:blank?).join('/')
9
-
10
- duplicated_slashes = url.match(/([^:]\/{2,})/)
11
- duplicated_slashes && duplicated_slashes.captures.each do |capture|
12
- url.gsub!(capture, "#{capture[0]}/")
13
- end
14
-
15
- opts = default_config.request_options.with_indifferent_access.deep_merge(opts.with_indifferent_access)
16
- opts[:headers] ||= {}
17
-
18
- if default_config.x_request_id_proc
19
- opts[:headers]['X-Request-ID'] ||= default_config.x_request_id_proc.call
20
- end
21
-
22
- if opts[:cache] ||= false
23
- strategy = opts.delete(:cache)
24
-
25
- case strategy.to_s
26
- when 'thread'
27
- cache_key = Thread.current[:nxt_http_client_cache_key] ||= "#{SecureRandom.base58}::#{DateTime.current}"
28
- opts[:headers].reverse_merge!(cache_key: cache_key)
29
- when 'global'
30
- opts[:headers].delete(:cache_key)
31
- else
32
- raise ArgumentError, "Cache strategy unknown: #{strategy}. Options are #{CACHE_STRATEGIES}"
33
- end
34
- end
8
+ url = build_url(opts, url)
9
+ opts = build_headers(opts)
35
10
 
36
11
  Typhoeus::Request.new(url, **opts.symbolize_keys)
37
12
  end
38
13
 
39
- def fire(url = '', **opts, &block)
40
- # calling_method = caller_locations(1,1)[0].label
41
- response_handler = opts.fetch(:response_handler) do
42
- dup_handler_from_class || NxtHttpClient::ResponseHandler.new
43
- end
14
+ delegate :before_fire_callback, :after_fire_callback, to: :class
44
15
 
16
+ def fire(url = '', **opts, &block)
17
+ response_handler = opts.fetch(:response_handler) { dup_handler_from_class || NxtHttpClient::ResponseHandler.new }
45
18
  response_handler.configure(&block) if block_given?
46
- request = build_request(url, opts.except(:response_handler))
47
-
48
- before_fire_callback = self.class.before_fire_callback
19
+ request = build_request(url, **opts.except(:response_handler))
49
20
  before_fire_callback && instance_exec(self, request, response_handler, &before_fire_callback)
50
21
 
51
22
  if response_handler.callbacks['headers']
@@ -61,20 +32,17 @@ module NxtHttpClient
61
32
  end
62
33
 
63
34
  result = nil
64
- error = nil
35
+ current_error = nil
65
36
 
66
37
  request.on_complete do |response|
67
- callback = response_handler.callback_for_response(response)
68
- result = callback && instance_exec(response, &callback) || response
69
- rescue StandardError => e
70
- error = e
38
+ result = callback_or_response(response, response_handler)
39
+ rescue StandardError => error
40
+ current_error = error
71
41
  ensure
72
- after_fire_callback = self.class.after_fire_callback
73
-
74
42
  if after_fire_callback
75
- result = instance_exec(self, request, response, result, error, &after_fire_callback)
43
+ result = instance_exec(self, request, response, result, current_error, &after_fire_callback)
76
44
  else
77
- result || (raise error)
45
+ result || (raise current_error)
78
46
  end
79
47
  end
80
48
 
@@ -83,10 +51,32 @@ module NxtHttpClient
83
51
  result
84
52
  end
85
53
 
86
- %w[get post patch put delete head].each do |method|
54
+ HTTP_METHODS.each do |method|
87
55
  define_method method do |url = '', **opts, &block|
88
- fire(url, opts.reverse_merge(method: method), &block)
56
+ fire(url, **opts.reverse_merge(method: method), &block)
57
+ end
58
+ end
59
+
60
+ private
61
+
62
+ def build_url(opts, url)
63
+ base_url = opts.delete(:base_url) || default_config.base_url
64
+ url = [base_url, url].reject(&:blank?).join('/')
65
+
66
+ url_without_duplicated_hashes(url)
67
+ url
68
+ end
69
+
70
+ def build_headers(opts)
71
+ opts = default_config.request_options.with_indifferent_access.deep_merge(opts.with_indifferent_access)
72
+ opts[:headers] ||= {}
73
+
74
+ if default_config.x_request_id_proc
75
+ opts[:headers]['X-Request-ID'] ||= default_config.x_request_id_proc.call
89
76
  end
77
+
78
+ build_cache_header(opts)
79
+ opts
90
80
  end
91
81
 
92
82
  def dup_handler_from_class
@@ -96,5 +86,35 @@ module NxtHttpClient
96
86
  def default_config
97
87
  self.class.default_config
98
88
  end
89
+
90
+ def build_cache_header(opts)
91
+ if opts[:cache] ||= false
92
+ strategy = opts.delete(:cache)
93
+
94
+ case strategy.to_s
95
+ when 'thread'
96
+ cache_key = Thread.current[:nxt_http_client_cache_key] ||= "#{SecureRandom.base58}::#{DateTime.current}"
97
+ opts[:headers].reverse_merge!(cache_key: cache_key)
98
+ when 'global'
99
+ opts[:headers].delete(:cache_key)
100
+ else
101
+ raise ArgumentError, "Cache strategy unknown: #{strategy}. Options are #{CACHE_STRATEGIES}"
102
+ end
103
+ end
104
+ end
105
+
106
+ def url_without_duplicated_hashes(url)
107
+ duplicated_slashes = url.match(/([^:]\/{2,})/)
108
+ duplicated_slashes && duplicated_slashes.captures.each do |capture|
109
+ url.gsub!(capture, "#{capture[0]}/")
110
+ end
111
+
112
+ url
113
+ end
114
+
115
+ def callback_or_response(response, response_handler)
116
+ callback = response_handler.callback_for_response(response)
117
+ callback && instance_exec(response, &callback) || response
118
+ end
99
119
  end
100
120
  end
@@ -1,9 +1,7 @@
1
1
  module NxtHttpClient
2
2
  module ClientDsl
3
3
  def configure(opts = {}, &block)
4
- opts.each do |k,v|
5
- default_config.send(k, v)
6
- end
4
+ opts.each { |k, v| default_config.send(k, v) }
7
5
  default_config.tap { |d| block.call(d) }
8
6
  default_config
9
7
  end
@@ -13,7 +11,7 @@ module NxtHttpClient
13
11
  end
14
12
 
15
13
  def before_fire_callback
16
- @before_fire ||= dup_instance_variable_from_ancestor_chain(:@before_fire_callback)
14
+ @before_fire_callback ||= dup_instance_variable_from_ancestor_chain(:@before_fire_callback)
17
15
  end
18
16
 
19
17
  def after_fire(&block)
@@ -44,21 +42,16 @@ module NxtHttpClient
44
42
  end
45
43
 
46
44
  def instance_variable_from_ancestor_chain(instance_variable_name)
47
- client = client_ancestors.find do |client|
48
- client.instance_variable_get(instance_variable_name)
49
- end
45
+ client = client_ancestors.find { |c| c.instance_variable_get(instance_variable_name) }
50
46
 
51
47
  client.instance_variable_get(instance_variable_name)
52
48
  end
53
49
 
54
50
  def dup_instance_variable_from_ancestor_chain(instance_variable_name)
55
51
  result = instance_variable_from_ancestor_chain(instance_variable_name).dup
52
+ return result unless block_given?
56
53
 
57
- if block_given?
58
- result || yield
59
- else
60
- result
61
- end
54
+ result || yield
62
55
  end
63
56
  end
64
57
  end
@@ -1,5 +1,5 @@
1
1
  module NxtHttpClient
2
- CONFIGURABLE_OPTIONS = %i[request_options base_url x_request_id_proc]
2
+ CONFIGURABLE_OPTIONS = %i[request_options base_url x_request_id_proc].freeze
3
3
 
4
4
  DefaultConfig = Struct.new('DefaultConfig', *CONFIGURABLE_OPTIONS) do
5
5
  def initialize(request_options: ActiveSupport::HashWithIndifferentAccess.new, base_url: '', x_request_id_proc: nil)
@@ -7,5 +7,9 @@ module NxtHttpClient
7
7
  self.base_url = base_url
8
8
  self.x_request_id_proc = x_request_id_proc
9
9
  end
10
+
11
+ def dup
12
+ self.class.new(**to_h.deep_dup)
13
+ end
10
14
  end
11
15
  end
@@ -2,9 +2,10 @@ module NxtHttpClient
2
2
  class Error < StandardError
3
3
  def initialize(response)
4
4
  @response = response.blank? ? Typhoeus::Response.new : response
5
+ @id = SecureRandom.uuid
5
6
  end
6
7
 
7
- attr_reader :response
8
+ attr_reader :response, :id
8
9
 
9
10
  def to_s
10
11
  "NxtHttpClient::Error::#{response_code}"
@@ -12,6 +13,7 @@ module NxtHttpClient
12
13
 
13
14
  def to_h
14
15
  {
16
+ id: id,
15
17
  url: url,
16
18
  response_code: response_code,
17
19
  request_options: request_options,
@@ -1,18 +1,18 @@
1
1
  module NxtHttpClient
2
2
  class ResponseHandler
3
3
  CallbackAlreadyRegistered = Class.new(StandardError)
4
+ include NxtRegistry
4
5
 
5
6
  def initialize
6
- @callbacks = {}
7
7
  @result = nil
8
8
  end
9
9
 
10
10
  attr_accessor :result
11
- attr_reader :callbacks
12
11
 
13
12
  def eval_callback(target, key, response)
14
- return unless callbacks[key]
15
- target.instance_exec(response, &callbacks[key])
13
+ return unless callbacks.resolve!(key)
14
+
15
+ target.instance_exec(response, &callbacks.resolve(key))
16
16
  end
17
17
 
18
18
  def configure(&block)
@@ -20,21 +20,19 @@ module NxtHttpClient
20
20
  end
21
21
 
22
22
  def register_callback(code, overwrite: false, &block)
23
- key = code.to_s
24
- # This would add callbacks to the response handler
25
- unless overwrite
26
- callbacks[key].present? && raise_callback_already_registered(code)
23
+ if overwrite
24
+ callbacks.register!(code, block)
25
+ else
26
+ callbacks.register(code, block)
27
27
  end
28
-
29
- callbacks[key] = block
30
28
  end
31
29
 
32
30
  def register_callback!(code, &block)
33
31
  register_callback(code, overwrite: true, &block)
34
32
  end
35
33
 
36
- alias_method :on, :register_callback
37
- alias_method :on!, :register_callback!
34
+ alias on register_callback
35
+ alias on! register_callback!
38
36
 
39
37
  def callback_for_response(response)
40
38
  key_from_response = response.code.to_s
@@ -46,10 +44,18 @@ module NxtHttpClient
46
44
  end
47
45
 
48
46
  first_matching_key && callbacks[first_matching_key] ||
49
- response.success? && callbacks['success'] ||
50
- response.timed_out? && callbacks['timed_out'] ||
51
- !response.success? && callbacks['error'] ||
52
- callbacks['others']
47
+ response.success? && callbacks['success'] ||
48
+ response.timed_out? && callbacks['timed_out'] ||
49
+ !response.success? && callbacks['error'] ||
50
+ callbacks['others']
51
+ end
52
+
53
+ def callbacks
54
+ @callbacks ||= NxtRegistry::Registry.new(
55
+ :callbacks,
56
+ call: false,
57
+ on_key_already_registered: ->(key) { raise_callback_already_registered(key) }
58
+ )
53
59
  end
54
60
 
55
61
  private
@@ -60,10 +66,9 @@ module NxtHttpClient
60
66
  raise CallbackAlreadyRegistered, msg
61
67
  end
62
68
 
63
- # we need to dup callbacks since dup is shallow
64
69
  def initialize_copy(original)
65
70
  super
66
- @callbacks = original.send(:callbacks).dup
71
+ @callbacks = original.send(:callbacks).clone
67
72
  @result = nil
68
73
  end
69
74
  end
@@ -1,3 +1,3 @@
1
1
  module NxtHttpClient
2
- VERSION = "0.2.5"
2
+ VERSION = '0.3.0'
3
3
  end
@@ -36,14 +36,16 @@ Gem::Specification.new do |spec|
36
36
  spec.require_paths = ['lib']
37
37
 
38
38
  spec.add_dependency 'typhoeus'
39
- spec.add_dependency 'activesupport', '~> 5.2'
39
+ spec.add_dependency 'activesupport', '~> 6.0.0'
40
+ spec.add_dependency 'nxt_registry'
40
41
 
41
42
  spec.add_development_dependency 'bundler', '~> 1.17'
42
- spec.add_development_dependency 'rake', '~> 10.0'
43
+ spec.add_development_dependency 'rake', '~> 13.0'
43
44
  spec.add_development_dependency 'rspec', '~> 3.0'
44
45
  spec.add_development_dependency 'pry'
45
46
  spec.add_development_dependency 'vcr'
46
47
  spec.add_development_dependency 'webmock'
47
48
  spec.add_development_dependency 'nxt_vcr_harness'
48
49
  spec.add_development_dependency 'redis'
50
+ spec.add_development_dependency 'rspec_junit_formatter'
49
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nxt_http_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Robecke
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2019-08-07 00:00:00.000000000 Z
14
+ date: 2020-07-30 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: typhoeus
@@ -33,14 +33,28 @@ dependencies:
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '5.2'
36
+ version: 6.0.0
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '5.2'
43
+ version: 6.0.0
44
+ - !ruby/object:Gem::Dependency
45
+ name: nxt_registry
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
44
58
  - !ruby/object:Gem::Dependency
45
59
  name: bundler
46
60
  requirement: !ruby/object:Gem::Requirement
@@ -61,14 +75,14 @@ dependencies:
61
75
  requirements:
62
76
  - - "~>"
63
77
  - !ruby/object:Gem::Version
64
- version: '10.0'
78
+ version: '13.0'
65
79
  type: :development
66
80
  prerelease: false
67
81
  version_requirements: !ruby/object:Gem::Requirement
68
82
  requirements:
69
83
  - - "~>"
70
84
  - !ruby/object:Gem::Version
71
- version: '10.0'
85
+ version: '13.0'
72
86
  - !ruby/object:Gem::Dependency
73
87
  name: rspec
74
88
  requirement: !ruby/object:Gem::Requirement
@@ -153,6 +167,20 @@ dependencies:
153
167
  - - ">="
154
168
  - !ruby/object:Gem::Version
155
169
  version: '0'
170
+ - !ruby/object:Gem::Dependency
171
+ name: rspec_junit_formatter
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
156
184
  description: NxtHttpClinet allows you to easily create and configure http clients.
157
185
  email:
158
186
  - a.robecke@getsafe.de
@@ -160,9 +188,11 @@ executables: []
160
188
  extensions: []
161
189
  extra_rdoc_files: []
162
190
  files:
191
+ - ".circleci/config.yml"
163
192
  - ".gitignore"
164
193
  - ".rspec"
165
194
  - ".travis.yml"
195
+ - CHANGELOG.md
166
196
  - Gemfile
167
197
  - Gemfile.lock
168
198
  - LICENSE.txt
@@ -200,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
230
  - !ruby/object:Gem::Version
201
231
  version: '0'
202
232
  requirements: []
203
- rubygems_version: 3.0.1
233
+ rubygems_version: 3.0.3
204
234
  signing_key:
205
235
  specification_version: 4
206
236
  summary: NxtHttpClinet is a simple DSL on top the typhoeus http gem