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 +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
|