pigeon-http 0.1.4 → 0.1.6

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: 204c0c65ca18699400c662cdce4813337fa5f270a15012c63279ab03e1fb35c4
4
- data.tar.gz: f2c2070ca2ab97182b0574ecf281759a14cee4b7d7d42f42ce23d97b8a8a0ace
3
+ metadata.gz: 0f7480189717b466b2c259727f513c1b1ce0bdeff236e1204d0c00722c6ff8da
4
+ data.tar.gz: 23baffa42902d5a02d601d7717097bea96f77381fb35e21bfadc309cee79e35b
5
5
  SHA512:
6
- metadata.gz: 2f66c5ce34abe98064138ade62435d182a0592ee147799b52c199e19893f5b5c66dc01d5a3d7755efc7b9c330fb95d74e539d8176637b8fbda03b6baa31fce4a
7
- data.tar.gz: 72cc4bbac4814d99f6f3a79fdfe49a261cc65a7044706e8736469e61fb1b90ed5ca2edd07a47cc93f313c949bd7605b1f4982bfaf65990f08431b9a2b11dba58
6
+ metadata.gz: 4e8de71216403a1f19dbe20a48dd9a10ba04961dcbbc54d1f12639c68551066066a8cb62a0ed3a268661c24e5cf59c29dcbe680f520a7abcf562f4b1e3079337
7
+ data.tar.gz: 92fcf269c0f95b0faee777c2c510fe5e496d927d3e43a7d57ec9f0dcde1b5854bab22cf84ea4300aaf87c824f4ec0bd357f3e283f552f274707dc68af90019a1
data/.DS_Store ADDED
Binary file
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pigeon-http (0.1.4)
4
+ pigeon-http (0.1.6)
5
5
  circuitbox
6
- ddtrace
6
+ datadog (~> 2.3.0)
7
7
  dogstatsd-ruby
8
8
  http
9
9
  http-cookie
@@ -17,12 +17,12 @@ GEM
17
17
  public_suffix (>= 2.0.2, < 6.0)
18
18
  ast (2.4.2)
19
19
  circuitbox (2.0.0)
20
- ddtrace (1.5.2)
21
- debase-ruby_core_source (>= 0.10.16, <= 0.10.17)
22
- libdatadog (~> 0.7.0.1.1)
23
- libddwaf (~> 1.5.1.0.0)
20
+ datadog (2.3.0)
21
+ debase-ruby_core_source (= 3.3.1)
22
+ libdatadog (~> 11.0.0.1.0)
23
+ libddwaf (~> 1.14.0.0.0)
24
24
  msgpack
25
- debase-ruby_core_source (0.10.17)
25
+ debase-ruby_core_source (3.3.1)
26
26
  diff-lcs (1.5.0)
27
27
  dogstatsd-ruby (5.3.3)
28
28
  domain_name (0.5.20190701)
@@ -41,13 +41,13 @@ GEM
41
41
  http-form_data (2.3.0)
42
42
  http-parser (1.2.3)
43
43
  ffi-compiler (>= 1.0, < 2.0)
44
- libdatadog (0.7.0.1.1)
45
- libddwaf (1.5.1.0.1)
44
+ libdatadog (11.0.0.1.0)
45
+ libddwaf (1.14.0.0.0)
46
46
  ffi (~> 1.0)
47
47
  mime-types (3.5.1)
48
48
  mime-types-data (~> 3.2015)
49
49
  mime-types-data (3.2023.0808)
50
- msgpack (1.7.2)
50
+ msgpack (1.7.5)
51
51
  parallel (1.23.0)
52
52
  parser (3.2.2.3)
53
53
  ast (~> 2.4.1)
@@ -99,4 +99,4 @@ DEPENDENCIES
99
99
  rubocop (~> 0.80)
100
100
 
101
101
  BUNDLED WITH
102
- 2.2.4
102
+ 2.4.22
data/lib/pigeon/core.rb CHANGED
@@ -79,7 +79,6 @@ module Pigeon
79
79
  def get url, args = {}
80
80
  response = http(:get, url, args)
81
81
  rescue => e
82
- puts e
83
82
  @callbacks[:HttpError]&.call(e)
84
83
  end
85
84
 
@@ -111,9 +110,9 @@ module Pigeon
111
110
  response = Pigeon::Http::Request.new(method, url, args).execute
112
111
 
113
112
  uri = URI.parse(url)
114
- Pigeon::Statsd.new(@options[:request_name] + '_latency', tags: [uri.host]).capture(action: :histogram, count: (Time.now - start))
115
- Pigeon::Statsd.new(@options[:request_name] + '_througput', tags: [uri.host]).capture
116
- Pigeon::Statsd.new(@options[:request_name] + '_status', tags: [response.code]).capture
113
+ Pigeon::Statsd.new(@options[:request_name] + '_latency', tags: ["host:#{uri.host}"]).capture(action: :histogram, count: (Time.now - start))
114
+ Pigeon::Statsd.new(@options[:request_name] + '_througput', tags: ["host:#{uri.host}"]).capture
115
+ Pigeon::Statsd.new(@options[:request_name] + '_status', tags: ["host:#{uri.host}", "http:#{response.code}"]).capture
117
116
 
118
117
  response
119
118
  end
data/lib/pigeon/http.rb CHANGED
@@ -17,7 +17,7 @@ module Pigeon
17
17
  end
18
18
 
19
19
  class Request
20
- VALID_PARAMETERS = %w[headers query body auth timeout open_timeout ssl_timeout read_timeout max_redirects ssl_verify]
20
+ VALID_PARAMETERS = %w[headers query body form auth timeout open_timeout ssl_timeout read_timeout max_redirects ssl_verify]
21
21
  DEFAULT_HEADERS = { 'User-Agent' => 'HTTP Client API/1.0' }
22
22
  VALID_VERBS = [GET, HEAD, PUT, POST, DELETE, OPTIONS, TRACE]
23
23
  VALID_SSL_VERIFICATIONS = [SSL_VERIFY_NONE, SSL_VERIFY_PEER]
@@ -81,24 +81,28 @@ module Pigeon
81
81
  klass = find_delegate_class(verb)
82
82
  headers = DEFAULT_HEADERS.merge(args.fetch(:headers, {}))
83
83
  body = args[:body]&.to_json
84
+ form = args[:form]&.transform_keys(&:to_s)
84
85
  query = args[:query]
85
86
  uri = uri.dup
86
87
  delegate = klass.new(uri, headers)
87
88
 
89
+ delegate.content_type = 'application/json'
90
+
88
91
  if body
89
92
  raise Error::Argument, "#{verb} cannot have body" unless klass.const_get(:REQUEST_HAS_BODY)
90
- delegate.content_type = 'application/json'
91
- delegate.body = body
93
+ delegate.body = body
94
+ elsif form
95
+ raise Error::Argument, "#{verb} cannot have form" unless klass.const_get(:REQUEST_HAS_BODY)
96
+ delegate.content_type = 'multipart/form-data'
97
+ delegate.set_form(form, 'multipart/form-data')
92
98
  elsif query
93
99
  if klass.const_get(:REQUEST_HAS_BODY)
94
- delegate = klass.new(uri, headers)
100
+ delegate.content_type = 'application/x-www-form-urlencoded'
95
101
  delegate.set_form_data(query)
96
102
  else
97
103
  uri.query = URI.encode_www_form(query)
98
- delegate = klass.new(uri, headers)
104
+ delegate = klass.new(uri, headers)
99
105
  end
100
- else
101
- delegate = klass.new(uri, headers)
102
106
  end
103
107
 
104
108
  delegate
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pigeon
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.6'
5
5
  end
data/pigeon.gemspec CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  # guide at: https://bundler.io/guides/creating_gem.html
36
36
 
37
37
  spec.add_dependency 'circuitbox'
38
- spec.add_dependency 'ddtrace'
38
+ spec.add_dependency 'datadog', '~> 2.3.0'
39
39
  spec.add_dependency 'dogstatsd-ruby'
40
40
  spec.add_dependency 'http'
41
41
  spec.add_dependency 'http-cookie'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pigeon-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fitra Aditya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-14 00:00:00.000000000 Z
11
+ date: 2024-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: circuitbox
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: ddtrace
28
+ name: datadog
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 2.3.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 2.3.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dogstatsd-ruby
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +115,7 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - ".DS_Store"
118
119
  - ".circleci/config.yml"
119
120
  - ".gitignore"
120
121
  - ".rspec"