wrapi 0.4.4 → 0.4.5

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: cbba7a5999de019875c356dc158b4061bd417cc4f2d21364c2e18bdcac715ac2
4
- data.tar.gz: 8932fd54e9872f43b3e64b4b31554ca71e55987fc35a096bcc10162022773036
3
+ metadata.gz: b2879998432bd9b2be748b54c21024a68acf5cdba01ecc3040c9e9da45f02268
4
+ data.tar.gz: 63b482ee658b94a605f92faa52502efe1fa24bee5a918db27c773726f4a1e326
5
5
  SHA512:
6
- metadata.gz: 0f95131accc766c77a6e81ffa8702dc501137478e5fc8d58589e058f30de4886afbc1b1c469f38a33a06c0b2b4177f26db701be033122000a901485b9c02ecb8
7
- data.tar.gz: 885c32718e57b86b9bf395d392263bc0c60044929dc7cf86dba5f80209ba1b7d1c7815fc345ff904836c0838af51e39fe408d4a7f49678eae62da1c93ecf1f64
6
+ metadata.gz: 4913f5e123c1a2211e1c57b2b66e5712d1920ac667e38740d5047134fcc178aa82c1a509652da6f23ee16c54396025ed0959a4b95438d4026a2589b28de4d90e
7
+ data.tar.gz: 0772f0cdb948a5100df2f08a0fdaf356823f1fdfa0bb658817d3a3626540c54ec29cf92a9d1d4f83b2f957b990a73dce8c20bff8a537fd6e6c226aff7f956706
data/CHANGELOG.md CHANGED
@@ -37,3 +37,6 @@
37
37
 
38
38
  ## [0.4.4] - 2024-03-12
39
39
  - fix typo and implement clone for entities
40
+
41
+ ## [0.4.5] - 2024-03-12
42
+ - rafactorings code readability
data/lib/wrapi/entity.rb CHANGED
@@ -26,10 +26,11 @@ module WrAPI
26
26
 
27
27
  def method_missing(method_sym, *arguments, &block)
28
28
  # assignment
29
- if (method = method_sym[/.*(?==\z)/m])
29
+ assignment = method_sym[/.*(?==\z)/m]
30
+ if assignment
30
31
  raise ArgumentError, "wrong number of arguments (given #{arguments.length}, expected 1)", caller(1) unless arguments.length == 1
31
32
 
32
- @attributes[method] = arguments[0]
33
+ @attributes[assignment] = arguments[0]
33
34
  elsif @attributes.include? method_sym.to_s
34
35
  accessor(method_sym.to_s)
35
36
  else
data/lib/wrapi/request.rb CHANGED
@@ -5,11 +5,12 @@ module WrAPI
5
5
  # Defines HTTP request methods
6
6
  # required attributes format
7
7
  module Request
8
-
8
+ CONTENT_TYPE_HDR = 'Content-Type'.freeze
9
9
  # Perform an HTTP GET request and return entity incase format is :json
10
10
  # @return if format is :json and !raw an [Entity] is returned, otherwhise the response body
11
11
  def get(path, options = {}, raw=false)
12
12
  response = request(:get, path, options) do |request|
13
+ # inject headers...
13
14
  yield(request) if block_given?
14
15
  end
15
16
  entity_response(response, raw)
@@ -25,6 +26,7 @@ module WrAPI
25
26
  pager = create_pager
26
27
  while pager.more_pages?
27
28
  response = request(:get, path, options.merge(pager.page_options)) do |req|
29
+ # inject headers...
28
30
  request_labda.call(req) if request_labda
29
31
  end
30
32
  if d = pager.class.data(response.body)
@@ -32,11 +34,7 @@ module WrAPI
32
34
  if block_given?
33
35
  yield(d)
34
36
  else
35
- if d.is_a? Array
36
- result += d
37
- else
38
- result << d
39
- end
37
+ result = add_data(result,d)
40
38
  end
41
39
  end
42
40
  pager.next_page!(response.body)
@@ -75,7 +73,7 @@ module WrAPI
75
73
  format && 'json'.eql?(format.to_s)
76
74
  end
77
75
 
78
- private
76
+ private
79
77
 
80
78
  def create_pager
81
79
  pagination_class ? pagination_class.new(page_size) : WrAPI::RequestPagination::DefaultPager
@@ -85,7 +83,7 @@ module WrAPI
85
83
  def request(method, path, options)
86
84
  response = connection.send(method) do |request|
87
85
  yield(request) if block_given?
88
- request.headers['Content-Type'] = "application/#{format}" unless request.headers['Content-Type']
86
+ request.headers[CONTENT_TYPE_HDR] = "application/#{format}" unless request.headers[CONTENT_TYPE_HDR]
89
87
  uri = URI::Parser.new
90
88
  _path = uri.parse(path)
91
89
  _path.path = uri.escape(_path.path)
@@ -94,11 +92,7 @@ module WrAPI
94
92
  request.url(_path.to_s, options)
95
93
  when :post, :put
96
94
  request.path = _path.to_s
97
- if is_json? && !options.empty?
98
- request.body = options.to_json
99
- else
100
- request.body = URI.encode_www_form(options) unless options.empty?
101
- end
95
+ set_body(request,options)
102
96
  end
103
97
  end
104
98
  response
@@ -111,5 +105,23 @@ module WrAPI
111
105
  response
112
106
  end
113
107
  end
108
+
109
+ # set post body depending json content-type
110
+ def set_body(request,options)
111
+ if is_json? && !options.empty?
112
+ request.body = options.to_json
113
+ else
114
+ request.body = URI.encode_www_form(options) unless options.empty?
115
+ end
116
+ end
117
+
118
+ # add data to array and check if data itself is an array
119
+ def add_data(result,data)
120
+ if data.is_a? Array
121
+ result += data
122
+ else
123
+ result << data
124
+ end
125
+ end
114
126
  end
115
127
  end
data/lib/wrapi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WrAPI
4
- VERSION = '0.4.4'
4
+ VERSION = '0.4.5'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wrapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janco Tanis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-03-12 00:00:00.000000000 Z
11
+ date: 2024-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday