twelvedata_ruby 0.2.2 → 0.3.0
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/twelvedata_ruby.rb +2 -2
- data/lib/twelvedata_ruby/error.rb +2 -2
- data/lib/twelvedata_ruby/response.rb +35 -22
- data/twelvedata_ruby.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7d5d01f41fde75fae4a61796b121816c87d6d95afc4ea3126e3044b46648eb3
|
4
|
+
data.tar.gz: 04cdeaf1de8e47c3728bcefdade8b18544869dbc8b4b6af8b01354ffd3e50f73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6353eaab3d7e93d532d25990c32014c3c324ae02bff155500e05135a07f96f592cfdaf2927566b088c95d5ef7aba31ef4b87c6d5dfe1f8fa1a808d37a3c40d95
|
7
|
+
data.tar.gz: 8566bd2833987cbff4f792a0b28403e7a1a3b1d963a723de6ab2b76370548f4ee6441e943d4acb299bfe1d28c3004de52e60b4ccaa032bc6f2f66f3f980dabb0
|
data/Gemfile.lock
CHANGED
data/lib/twelvedata_ruby.rb
CHANGED
@@ -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.
|
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
|
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
|
-
|
9
|
+
"endpoint are: `%{parameters}`. Please see: `Twelvedata::Endpoint#parameters` for more details",
|
10
10
|
"EndpointRequiredParametersError" => "Missing values for required parameters: `%{invalid}`. "\
|
11
|
-
|
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(
|
61
|
-
CSV.parse(
|
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(
|
89
|
-
JSON.parse(
|
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
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
tmp_file.
|
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 :
|
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
|
data/twelvedata_ruby.gemspec
CHANGED
@@ -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",
|
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.
|
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-
|
11
|
+
date: 2021-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpx
|