twelvedata_ruby 0.2.2 → 0.3.0

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: 3c68e57643ad8c9b7d4c5e17bfe92ad823bacc55bdae1c194a30f5f3a74adbdd
4
- data.tar.gz: 5d768c9549e371aa12deb250fbfdd0e090b14966dec5a650dfdadb6ce6832ae9
3
+ metadata.gz: f7d5d01f41fde75fae4a61796b121816c87d6d95afc4ea3126e3044b46648eb3
4
+ data.tar.gz: 04cdeaf1de8e47c3728bcefdade8b18544869dbc8b4b6af8b01354ffd3e50f73
5
5
  SHA512:
6
- metadata.gz: 87f664fc2864c97d2a570e946aad0d49c2fbb68fc92acbf019757b18deabfd2aa9b3351a0db9fee5f23d2792bb682baaaa4300bc43fd3b6ace929491f85a3e07
7
- data.tar.gz: 7b9ed31762e393242b6d64cade3130c318336a5075d75c1283c2ad073101111ee6c432e74bed5e4586732c33ca71759142021d81a8bf903976540bae41e62c56
6
+ metadata.gz: 6353eaab3d7e93d532d25990c32014c3c324ae02bff155500e05135a07f96f592cfdaf2927566b088c95d5ef7aba31ef4b87c6d5dfe1f8fa1a808d37a3c40d95
7
+ data.tar.gz: 8566bd2833987cbff4f792a0b28403e7a1a3b1d963a723de6ab2b76370548f4ee6441e943d4acb299bfe1d28c3004de52e60b4ccaa032bc6f2f66f3f980dabb0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- twelvedata_ruby (0.2.2)
4
+ twelvedata_ruby (0.3.0)
5
5
  httpx (~> 0.14, >= 0.14.5)
6
6
 
7
7
  GEM
@@ -12,11 +12,11 @@ require_relative "twelvedata_ruby/client"
12
12
  module TwelvedataRuby
13
13
  # Holds the current version
14
14
  # @return [String] version number
15
- VERSION = "0.2.2"
15
+ VERSION = "0.3.0"
16
16
 
17
17
  # A convenient and clearer way of getting and overriding default attribute values of the singleton `Client.instance`
18
18
  #
19
- # @param [Hash] options the optional Hash object that may contain values to override the defaults
19
+ # @param [Hash] options the optional Hash object that may contain values to override the cd Docdefaults
20
20
  # @option options [Symbol, String] :apikey the private key from Twelvedata API key
21
21
  # @option options [Integer, String] :connect_timeout milliseconds
22
22
  #
@@ -6,9 +6,9 @@ module TwelvedataRuby
6
6
  "EndpointError" => "Endpoint is not valid. %{invalid}",
7
7
  "EndpointNameError" => "`%{invalid}` is not a correct endpoint. Valid values are: `%{valid_names}`",
8
8
  "EndpointParametersKeysError" => "Invalid parameters found: `%{invalid}`. Valid parameters for `%{name}` "\
9
- "endpoint are: `%{parameters}`. Please see: `Twelvedata::Endpoint#parameters` for more details",
9
+ "endpoint are: `%{parameters}`. Please see: `Twelvedata::Endpoint#parameters` for more details",
10
10
  "EndpointRequiredParametersError" => "Missing values for required parameters: `%{invalid}`. "\
11
- "`%{name}` endpoint required parameters are: `%{required}`.",
11
+ "`%{name}` endpoint required parameters are: `%{required}`.",
12
12
  "ResponseError" => "Encountered an error from the response"
13
13
  }.freeze
14
14
 
@@ -35,12 +35,10 @@ module TwelvedataRuby
35
35
  end
36
36
  end
37
37
 
38
- attr_reader :http_response, :headers, :body, :request
38
+ attr_reader :http_response, :headers, :body, :body_bytesize, :request
39
39
 
40
40
  def initialize(http_response:, request:, headers: nil, body: nil)
41
41
  self.http_response = http_response
42
- self.headers = headers || http_response.headers
43
- self.body = body || http_response.body
44
42
  end
45
43
 
46
44
  def attachment_filename
@@ -57,8 +55,8 @@ module TwelvedataRuby
57
55
  @content_type ||= headers["content-type"].match(%r{^.+/([a-z]+).*$})&.send(:[], 1)&.to_sym
58
56
  end
59
57
 
60
- def csv_parser(io_str=nil)
61
- CSV.parse(io_str || body.to_s, headers: true, col_sep: CSV_COL_SEP)
58
+ def csv_parser(io)
59
+ CSV.parse(io, headers: true, col_sep: CSV_COL_SEP)
62
60
  end
63
61
 
64
62
  def csv_dumper
@@ -85,35 +83,39 @@ module TwelvedataRuby
85
83
  parsed_body.is_a?(Hash) ? JSON.dump(parsed_body) : nil
86
84
  end
87
85
 
88
- def json_parser(io_obj=nil)
89
- JSON.parse(io_obj || body.to_s, symbolize_names: true)
86
+ def json_parser(io)
87
+ JSON.parse(io, symbolize_names: true)
90
88
  end
91
89
 
92
90
  def parsed_body
93
- return @parsed_body if @parsed_body
94
- if body.bytesize < BODY_MAX_BYTESIZE
95
- @parsed_body = send(body_parser)
96
- else
97
- tmp_file = Tempfile.new
98
- begin
99
- body.copy_to(tmp_file)
100
- tmp_file.close
91
+ return @parsed_body if @parsed_body || http_response&.body.nil? || http_response&.body.closed?
92
+
93
+ begin
94
+ tmp_file = nil
95
+ if body_bytesize < BODY_MAX_BYTESIZE
96
+ @parsed_body = send(body_parser, http_response.body.to_s)
97
+ else
98
+ tmp_file = Tempfile.new
99
+ http_response.body.copy_to(tmp_file)
101
100
  @parsed_body = send(body_parser, IO.read(tmp_file.path))
102
- ensure
103
- body.close
104
- tmp_file.close
105
- tmp_file.unlink
106
101
  end
102
+ ensure
103
+ http_response.body.close
104
+ tmp_file&.close
105
+ tmp_file&.unlink
107
106
  end
107
+
108
108
  @parsed_body
109
109
  end
110
+ alias body parsed_body
111
+ alias parse_http_response_body parsed_body
110
112
 
111
113
  def parsed_body_dumper
112
114
  CONTENT_TYPE_HANDLERS[content_type][:dumper]
113
115
  end
114
116
 
115
- def plain_parser
116
- body.to_s
117
+ def plain_parser(io=nil)
118
+ io.to_s || http_response.body.to_s
117
119
  end
118
120
 
119
121
  def status_code
@@ -138,6 +140,17 @@ module TwelvedataRuby
138
140
 
139
141
  private
140
142
 
141
- attr_writer :http_response, :headers, :body, :request
143
+ attr_writer :request
144
+
145
+ def http_response=(http_resp)
146
+ @http_response = http_resp
147
+ @body_bytesize = http_resp.body.bytesize
148
+ self.headers = http_response.headers
149
+ parse_http_response_body
150
+ end
151
+
152
+ def headers=(http_resp_headers)
153
+ @headers = http_response&.headers
154
+ end
142
155
  end
143
156
  end
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "httpx", "~> 0.14", ">= 0.14.5"
32
32
  spec.add_development_dependency "rake", "~> 13.0", ">= 13.0.0"
33
33
  spec.add_development_dependency "rspec", "~> 3.10", ">= 3.10.0"
34
- spec.add_development_dependency "rubocop", "~> 1.17", ">= 1.17.0"
34
+ spec.add_development_dependency "rubocop", "~> 1.17", ">= 1.17.0"
35
35
  spec.add_development_dependency "simplecov", "~> 0.21", ">= 0.21.2"
36
36
  spec.add_development_dependency "webmock", "~> 3.13", ">= 3.13.0"
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twelvedata_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kendo Camajalan, KCD
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-10 00:00:00.000000000 Z
11
+ date: 2021-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpx