nxt_http_client 0.2.6 → 0.3.1

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
  SHA256:
3
- metadata.gz: ac073e8b2c9a1dfe19fd8773b63b3b803c6845380fb7a5b41a19c83cc31755ec
4
- data.tar.gz: 812adcf27d2094fe7fb095c5c17ee6cf2fad0a433d376ab5361d383919aeb414
3
+ metadata.gz: 78ac5880ecaada2ab1423658c89c7e46a7edff5b3936c386255776d2a3a9fb93
4
+ data.tar.gz: 3bbd588bdaf3b12481685495fcbae33d497b8ced2a646e204bbc15d9739605d8
5
5
  SHA512:
6
- metadata.gz: 2eb0da2abc6f937b1d786ed3754a18c7a40c07a972f5e054912653178ef0e0fae80f515c65f0a6c926b3f1a75d67bf78a19d6768536f294beb4b3913907f0c25
7
- data.tar.gz: 27f178b2c3cc5b150f986cd46a18a47f38ac61f307c00439105ae21a7f7c9eb2513e4dec2bde1118702da12571bf181508268401c142ebfacc2c29717f11b72e
6
+ metadata.gz: 5fc826649a72b9b0f2e3076aab3e791045b01c021d1122344449f2b6865878270872e8cfd7a20edc58333608b0c4bbcce347efef4e7c4b4c126d6d173caa75ae
7
+ data.tar.gz: 0e06702933121d3cda176b386c1ed47df0a53fe276b00d4e2e2a2e7efc48ad7804bee9ee54593317f6b2c9eac1415a9351f227bc8625bfe224fbdb4e9f6e4cd5
@@ -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.3.0](https://github.com/nxt-insurance/nxt_http_client/compare/v0.2.9...v0.2.10)
@@ -1,68 +1,73 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nxt_http_client (0.2.6)
4
+ nxt_http_client (0.3.1)
5
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 (6.0.0)
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
- zeitwerk (~> 2.1, >= 2.1.8)
17
- addressable (2.6.0)
18
- 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)
19
20
  coderay (1.1.2)
20
- concurrent-ruby (1.1.5)
21
+ concurrent-ruby (1.1.7)
21
22
  crack (0.4.3)
22
23
  safe_yaml (~> 1.0.0)
23
24
  diff-lcs (1.3)
24
25
  ethon (0.12.0)
25
26
  ffi (>= 1.3.0)
26
- ffi (1.11.1)
27
- hashdiff (1.0.0)
28
- i18n (1.6.0)
27
+ ffi (1.13.1)
28
+ hashdiff (1.0.1)
29
+ i18n (1.8.5)
29
30
  concurrent-ruby (~> 1.0)
30
- method_source (0.9.2)
31
- minitest (5.11.3)
31
+ method_source (1.0.0)
32
+ minitest (5.14.1)
33
+ nxt_registry (0.2.0)
34
+ activesupport
32
35
  nxt_vcr_harness (0.1.3)
33
36
  rspec (~> 3.0)
34
37
  vcr (~> 5.0)
35
- pry (0.12.2)
36
- coderay (~> 1.1.0)
37
- method_source (~> 0.9.0)
38
- public_suffix (3.1.1)
39
- rake (10.5.0)
40
- redis (4.1.2)
41
- rspec (3.8.0)
42
- rspec-core (~> 3.8.0)
43
- rspec-expectations (~> 3.8.0)
44
- rspec-mocks (~> 3.8.0)
45
- rspec-core (3.8.2)
46
- rspec-support (~> 3.8.0)
47
- 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)
48
51
  diff-lcs (>= 1.2.0, < 2.0)
49
- rspec-support (~> 3.8.0)
50
- rspec-mocks (3.8.1)
52
+ rspec-support (~> 3.9.0)
53
+ rspec-mocks (3.9.0)
51
54
  diff-lcs (>= 1.2.0, < 2.0)
52
- rspec-support (~> 3.8.0)
53
- 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)
54
59
  safe_yaml (1.0.5)
55
60
  thread_safe (0.3.6)
56
- typhoeus (1.3.1)
61
+ typhoeus (1.4.0)
57
62
  ethon (>= 0.9.0)
58
- tzinfo (1.2.5)
63
+ tzinfo (1.2.7)
59
64
  thread_safe (~> 0.1)
60
- vcr (5.0.0)
61
- webmock (3.6.0)
65
+ vcr (5.1.0)
66
+ webmock (3.8.3)
62
67
  addressable (>= 2.3.6)
63
68
  crack (>= 0.3.2)
64
69
  hashdiff (>= 0.4.0, < 2.0.0)
65
- zeitwerk (2.1.9)
70
+ zeitwerk (2.4.0)
66
71
 
67
72
  PLATFORMS
68
73
  ruby
@@ -72,11 +77,12 @@ DEPENDENCIES
72
77
  nxt_http_client!
73
78
  nxt_vcr_harness
74
79
  pry
75
- rake (~> 10.0)
80
+ rake (~> 13.0)
76
81
  redis
77
82
  rspec (~> 3.0)
83
+ rspec_junit_formatter
78
84
  vcr
79
85
  webmock
80
86
 
81
87
  BUNDLED WITH
82
- 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
@@ -93,6 +94,42 @@ class MyClient < NxtHttpClient
93
94
  end
94
95
  ```
95
96
 
97
+ ### HTTP Methods
98
+
99
+ Instead of fire you can simply use the http verbs as methods
100
+
101
+ ```ruby
102
+ class MyClient < NxtHttpClient
103
+
104
+ def initialize(url)
105
+ @url = url
106
+ end
107
+
108
+ attr_reader :url
109
+
110
+ def fetch
111
+ get(url) do
112
+ handler.on(:success) { |response| response.body }
113
+ end
114
+ end
115
+
116
+ def create(params)
117
+ post(url, params: params) do
118
+ handler.on(:success) { |response| response.body }
119
+ end
120
+ end
121
+
122
+ def update(params)
123
+ put(url, params: params) do
124
+ handler.on(:success) { |response| response.body }
125
+ end
126
+ end
127
+
128
+ # ... there are others as you know ...
129
+ end
130
+ ```
131
+
132
+
96
133
  ### configure
97
134
 
98
135
  Register default request options on the class level. Available options are `request_options` that are passed directly to
@@ -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'
@@ -10,5 +11,4 @@ require 'nxt_http_client/error'
10
11
 
11
12
  module NxtHttpClient
12
13
  class Error < StandardError; end
13
- # Your code goes here...
14
14
  end
@@ -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
@@ -1,17 +1,24 @@
1
1
  module NxtHttpClient
2
2
  class Error < StandardError
3
- def initialize(response)
3
+ def initialize(response, message = nil)
4
4
  @response = response.blank? ? Typhoeus::Response.new : response
5
+ @id = SecureRandom.uuid
6
+ @message = message || default_message
7
+
8
+ super(@message)
5
9
  end
6
10
 
7
- attr_reader :response
11
+ attr_reader :response, :id, :message
12
+
13
+ alias_method :to_s, :message
8
14
 
9
- def to_s
15
+ def default_message
10
16
  "NxtHttpClient::Error::#{response_code}"
11
17
  end
12
18
 
13
19
  def to_h
14
20
  {
21
+ id: id,
15
22
  url: url,
16
23
  response_code: response_code,
17
24
  request_options: request_options,
@@ -21,7 +28,7 @@ module NxtHttpClient
21
28
  end
22
29
 
23
30
  def body
24
- if response_content_type == 'application/json'
31
+ if response_content_type&.starts_with?('application/json')
25
32
  JSON.parse(response.body)
26
33
  else
27
34
  response.body
@@ -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.6"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -37,13 +37,15 @@ Gem::Specification.new do |spec|
37
37
 
38
38
  spec.add_dependency 'typhoeus'
39
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.6
4
+ version: 0.3.1
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-27 00:00:00.000000000 Z
14
+ date: 2020-08-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: typhoeus
@@ -41,6 +41,20 @@ dependencies:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
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