json_requester 1.1.1 → 1.1.3

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/lib/json_requester.rb +14 -10
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '041898e00afdd4c92015862bf81b7e09c61ba47a878eb9f2d90b77669862c722'
4
- data.tar.gz: 1ee45b7f13909acfe21330fb8c311bb79f82bf9213c93974db199dba6f5eb86e
3
+ metadata.gz: b4f982cccc8a4c27d2013a2c007b907c0cbf3f6aa05eff09464bba82cc6cd59f
4
+ data.tar.gz: f36d85249ef2b341aeff0435da4c3398d10e8c7146f2233c7c35f11a61b588c3
5
5
  SHA512:
6
- metadata.gz: 9ef9fec55ef8e7acb71540acc7505290d40f638350339a6cce963a8945e9d516d77be11243908a2a12d440afd6534e1ce4141d83b0d3ad6edb5e0967faf526ee
7
- data.tar.gz: e2e6296099857c012b2e402f952f49a02b8ebbcf24d5ff0c3bc2c380fcee797e6c144ed55eb1c685a82cd35857ccd1cbec6d8282699d024a8dece57f93bfe1d2
6
+ metadata.gz: 02bcd235be1471113c0b0c1640bad36f308a839e7d3143a072877cd124bec70af77079093934e97ace2a85db5bcdd6d7ab2ec2029dd05dee774f9dbabcc741e2
7
+ data.tar.gz: 86c13263c31f9174cb3a0ba66f0283958bc783f80c635649d28ee60b0072c2cc3b92ec931010a91a6507e1a3ecc44e6cde5217659db152ba5bbd33a11c86afbe
data/README.md CHANGED
@@ -30,7 +30,8 @@ $ gem install json_requester
30
30
  # Request by using JSON body or query params, use the `http_send` method.
31
31
  # other methods: `form_send`, `multipart_form_send`
32
32
  # `sort_params` at Faraday gem default is true.
33
- res = requester.http_send(http_method, path, params, headers, sort_params: true)
33
+ # `content_type_charset` default is 'utf-8', this will add ; charset=utf-8 after `Content-Type` header (ex. `Content-Type=application/json; charset=utf-8`).
34
+ res = requester.http_send(http_method, path, params, headers, sort_params: true, content_type_charset: 'utf-8')
34
35
 
35
36
  # http response code
36
37
  puts res['status'] # 200, 404, .. etc
@@ -12,12 +12,12 @@ class JsonRequester
12
12
  @user_agent = user_agent.strip.to_s
13
13
  end
14
14
 
15
- def http_send(http_method, path, params={}, headers={}, sort_params: true, need_response_header: false)
16
- puts "send #{http_method} reqeust to #{@host} with\npath: #{path}\nparams: #{params}\nheaders: #{headers}"
15
+ def http_send(http_method, path, params={}, headers={}, sort_params: true, need_response_header: false, content_type_charset: 'utf-8')
16
+ puts "send #{http_method} request to #{@host} with\npath: #{path}\nparams: #{params}\nheaders: #{headers}"
17
17
  if http_method == :get
18
18
  normal_send(http_method, path, params, headers, sort_params: sort_params, need_response_header: need_response_header)
19
19
  else
20
- json_send(http_method, path, params, headers, sort_params: sort_params, need_response_header: need_response_header)
20
+ json_send(http_method, path, params, headers, sort_params: sort_params, need_response_header: need_response_header, content_type_charset: content_type_charset)
21
21
  end
22
22
  end
23
23
 
@@ -38,11 +38,7 @@ class JsonRequester
38
38
  res = conn.send(http_method) do |req|
39
39
  req.url path
40
40
  req.headers = headers if object_present?(headers)
41
- if content_type_charset.present?
42
- req.headers['Content-Type'] = "application/json;charset=#{content_type_charset}"
43
- else
44
- req.headers['Content-Type'] = 'application/json'
45
- end
41
+ req.headers['Content-Type'] = object_present?(content_type_charset) ? "application/json;charset=#{content_type_charset}" : 'application/json'
46
42
  req.body = params.to_json if object_present?(params)
47
43
  end
48
44
  process_response(res, need_response_header: need_response_header)
@@ -104,11 +100,19 @@ class JsonRequester
104
100
  end
105
101
 
106
102
  def error_response(err)
107
- {'status' => 500, 'message' => "#{err.class.name}: #{err.message}"}
103
+ { 'status' => 500, 'message' => "#{err.class.name}: #{err.message}" }
108
104
  end
109
105
 
110
106
  def object_present?(object)
111
- !(object.nil? || object.empty?)
107
+ # Ref: https://github.com/rails/rails/blob/v7.1.4.2/activesupport/lib/active_support/core_ext/object/blank.rb#L25
108
+ # active_support present? method
109
+ !object_blank?(object)
110
+ end
111
+
112
+ def object_blank?(object)
113
+ # Ref: https://github.com/rails/rails/blob/v7.1.4.2/activesupport/lib/active_support/core_ext/object/blank.rb#L18
114
+ # active_support blank? method
115
+ object.respond_to?(:empty?) ? !!object.empty? : false
112
116
  end
113
117
 
114
118
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_requester
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - JiaRou Lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-28 00:00:00.000000000 Z
11
+ date: 2024-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.4.10
78
+ rubygems_version: 3.5.16
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: Basic Wrapper of Faraday