finnhub_ruby 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE +201 -0
  4. data/README.md +164 -0
  5. data/Rakefile +10 -0
  6. data/docs/AggregateIndicators.md +19 -0
  7. data/docs/BasicFinancials.md +21 -0
  8. data/docs/Company.md +29 -0
  9. data/docs/CompanyExecutive.md +19 -0
  10. data/docs/CompanyNewsStatistics.md +21 -0
  11. data/docs/CompanyProfile.md +71 -0
  12. data/docs/CompanyProfile2.md +39 -0
  13. data/docs/CountryMetadata.md +27 -0
  14. data/docs/CovidInfo.md +23 -0
  15. data/docs/CryptoCandles.md +29 -0
  16. data/docs/CryptoSymbol.md +21 -0
  17. data/docs/DefaultApi.md +2662 -0
  18. data/docs/Development.md +23 -0
  19. data/docs/Dividends.md +31 -0
  20. data/docs/EarningEstimate.md +25 -0
  21. data/docs/EarningRelease.md +33 -0
  22. data/docs/EarningResult.md +23 -0
  23. data/docs/EarningsCalendar.md +17 -0
  24. data/docs/EarningsCallTranscripts.md +33 -0
  25. data/docs/EarningsCallTranscriptsList.md +19 -0
  26. data/docs/EarningsEstimates.md +21 -0
  27. data/docs/EconomicCalendar.md +17 -0
  28. data/docs/EconomicCode.md +23 -0
  29. data/docs/EconomicData.md +19 -0
  30. data/docs/EconomicEvent.md +31 -0
  31. data/docs/Estimate.md +25 -0
  32. data/docs/Filing.md +31 -0
  33. data/docs/FinancialStatements.md +19 -0
  34. data/docs/FinancialsAsReported.md +21 -0
  35. data/docs/ForexCandles.md +29 -0
  36. data/docs/ForexSymbol.md +21 -0
  37. data/docs/Forexrates.md +19 -0
  38. data/docs/FundOwnership.md +19 -0
  39. data/docs/IPOCalendar.md +17 -0
  40. data/docs/IPOEvent.md +31 -0
  41. data/docs/Indicator.md +21 -0
  42. data/docs/Investor.md +23 -0
  43. data/docs/InvestorsOwnership.md +19 -0
  44. data/docs/LastBidAsk.md +25 -0
  45. data/docs/MajorDevelopments.md +19 -0
  46. data/docs/News.md +33 -0
  47. data/docs/NewsSentiment.md +27 -0
  48. data/docs/PatternRecognition.md +17 -0
  49. data/docs/PriceTarget.md +27 -0
  50. data/docs/Quote.md +25 -0
  51. data/docs/RecommendationTrend.md +29 -0
  52. data/docs/Report.md +37 -0
  53. data/docs/RevenueEstimates.md +21 -0
  54. data/docs/Sentiment.md +19 -0
  55. data/docs/Split.md +23 -0
  56. data/docs/Stock.md +21 -0
  57. data/docs/StockCandles.md +29 -0
  58. data/docs/StockTranscripts.md +25 -0
  59. data/docs/SupportResistance.md +17 -0
  60. data/docs/TechnicalAnalysis.md +19 -0
  61. data/docs/TickData.md +31 -0
  62. data/docs/TranscriptContent.md +19 -0
  63. data/docs/TranscriptParticipant.md +19 -0
  64. data/docs/Trend.md +17 -0
  65. data/docs/UpgradeDowngrade.md +27 -0
  66. data/finnhub_ruby-0.0.1.gem +0 -0
  67. data/finnhub_ruby-0.0.2.gem +0 -0
  68. data/finnhub_ruby.gemspec +39 -0
  69. data/git_push.sh +58 -0
  70. data/lib/finnhub_ruby.rb +99 -0
  71. data/lib/finnhub_ruby/api/default_api.rb +3142 -0
  72. data/lib/finnhub_ruby/api_client.rb +389 -0
  73. data/lib/finnhub_ruby/api_error.rb +57 -0
  74. data/lib/finnhub_ruby/configuration.rb +248 -0
  75. data/lib/finnhub_ruby/models/aggregate_indicators.rb +215 -0
  76. data/lib/finnhub_ruby/models/basic_financials.rb +226 -0
  77. data/lib/finnhub_ruby/models/company.rb +267 -0
  78. data/lib/finnhub_ruby/models/company_executive.rb +219 -0
  79. data/lib/finnhub_ruby/models/company_news_statistics.rb +227 -0
  80. data/lib/finnhub_ruby/models/company_profile.rb +477 -0
  81. data/lib/finnhub_ruby/models/company_profile2.rb +317 -0
  82. data/lib/finnhub_ruby/models/country_metadata.rb +257 -0
  83. data/lib/finnhub_ruby/models/covid_info.rb +237 -0
  84. data/lib/finnhub_ruby/models/crypto_candles.rb +279 -0
  85. data/lib/finnhub_ruby/models/crypto_symbol.rb +227 -0
  86. data/lib/finnhub_ruby/models/development.rb +237 -0
  87. data/lib/finnhub_ruby/models/dividends.rb +277 -0
  88. data/lib/finnhub_ruby/models/earning_estimate.rb +247 -0
  89. data/lib/finnhub_ruby/models/earning_release.rb +287 -0
  90. data/lib/finnhub_ruby/models/earning_result.rb +237 -0
  91. data/lib/finnhub_ruby/models/earnings_calendar.rb +209 -0
  92. data/lib/finnhub_ruby/models/earnings_call_transcripts.rb +291 -0
  93. data/lib/finnhub_ruby/models/earnings_call_transcripts_list.rb +219 -0
  94. data/lib/finnhub_ruby/models/earnings_estimates.rb +229 -0
  95. data/lib/finnhub_ruby/models/economic_calendar.rb +209 -0
  96. data/lib/finnhub_ruby/models/economic_code.rb +237 -0
  97. data/lib/finnhub_ruby/models/economic_data.rb +219 -0
  98. data/lib/finnhub_ruby/models/economic_event.rb +277 -0
  99. data/lib/finnhub_ruby/models/estimate.rb +247 -0
  100. data/lib/finnhub_ruby/models/filing.rb +277 -0
  101. data/lib/finnhub_ruby/models/financial_statements.rb +219 -0
  102. data/lib/finnhub_ruby/models/financials_as_reported.rb +229 -0
  103. data/lib/finnhub_ruby/models/forex_candles.rb +279 -0
  104. data/lib/finnhub_ruby/models/forex_symbol.rb +227 -0
  105. data/lib/finnhub_ruby/models/forexrates.rb +216 -0
  106. data/lib/finnhub_ruby/models/fund_ownership.rb +219 -0
  107. data/lib/finnhub_ruby/models/indicator.rb +227 -0
  108. data/lib/finnhub_ruby/models/investor.rb +237 -0
  109. data/lib/finnhub_ruby/models/investors_ownership.rb +219 -0
  110. data/lib/finnhub_ruby/models/ipo_calendar.rb +209 -0
  111. data/lib/finnhub_ruby/models/ipo_event.rb +277 -0
  112. data/lib/finnhub_ruby/models/last_bid_ask.rb +247 -0
  113. data/lib/finnhub_ruby/models/major_developments.rb +219 -0
  114. data/lib/finnhub_ruby/models/news.rb +287 -0
  115. data/lib/finnhub_ruby/models/news_sentiment.rb +255 -0
  116. data/lib/finnhub_ruby/models/pattern_recognition.rb +209 -0
  117. data/lib/finnhub_ruby/models/price_target.rb +257 -0
  118. data/lib/finnhub_ruby/models/quote.rb +247 -0
  119. data/lib/finnhub_ruby/models/recommendation_trend.rb +267 -0
  120. data/lib/finnhub_ruby/models/report.rb +306 -0
  121. data/lib/finnhub_ruby/models/revenue_estimates.rb +229 -0
  122. data/lib/finnhub_ruby/models/sentiment.rb +217 -0
  123. data/lib/finnhub_ruby/models/split.rb +237 -0
  124. data/lib/finnhub_ruby/models/stock.rb +227 -0
  125. data/lib/finnhub_ruby/models/stock_candles.rb +279 -0
  126. data/lib/finnhub_ruby/models/stock_transcripts.rb +247 -0
  127. data/lib/finnhub_ruby/models/support_resistance.rb +209 -0
  128. data/lib/finnhub_ruby/models/technical_analysis.rb +216 -0
  129. data/lib/finnhub_ruby/models/tick_data.rb +285 -0
  130. data/lib/finnhub_ruby/models/transcript_content.rb +219 -0
  131. data/lib/finnhub_ruby/models/transcript_participant.rb +217 -0
  132. data/lib/finnhub_ruby/models/trend.rb +207 -0
  133. data/lib/finnhub_ruby/models/upgrade_downgrade.rb +257 -0
  134. data/lib/finnhub_ruby/version.rb +15 -0
  135. data/release.sh +2 -0
  136. data/spec/api/default_api_spec.rb +638 -0
  137. data/spec/api_client_spec.rb +226 -0
  138. data/spec/configuration_spec.rb +42 -0
  139. data/spec/models/aggregate_indicators_spec.rb +47 -0
  140. data/spec/models/basic_financials_spec.rb +53 -0
  141. data/spec/models/company_executive_spec.rb +47 -0
  142. data/spec/models/company_news_statistics_spec.rb +53 -0
  143. data/spec/models/company_profile2_spec.rb +107 -0
  144. data/spec/models/company_profile_spec.rb +203 -0
  145. data/spec/models/company_spec.rb +77 -0
  146. data/spec/models/country_metadata_spec.rb +71 -0
  147. data/spec/models/covid_info_spec.rb +59 -0
  148. data/spec/models/crypto_candles_spec.rb +77 -0
  149. data/spec/models/crypto_symbol_spec.rb +53 -0
  150. data/spec/models/development_spec.rb +59 -0
  151. data/spec/models/dividends_spec.rb +83 -0
  152. data/spec/models/earning_estimate_spec.rb +65 -0
  153. data/spec/models/earning_release_spec.rb +89 -0
  154. data/spec/models/earning_result_spec.rb +59 -0
  155. data/spec/models/earnings_calendar_spec.rb +41 -0
  156. data/spec/models/earnings_call_transcripts_list_spec.rb +47 -0
  157. data/spec/models/earnings_call_transcripts_spec.rb +89 -0
  158. data/spec/models/earnings_estimates_spec.rb +53 -0
  159. data/spec/models/economic_calendar_spec.rb +41 -0
  160. data/spec/models/economic_code_spec.rb +59 -0
  161. data/spec/models/economic_data_spec.rb +47 -0
  162. data/spec/models/economic_event_spec.rb +83 -0
  163. data/spec/models/estimate_spec.rb +65 -0
  164. data/spec/models/filing_spec.rb +83 -0
  165. data/spec/models/financial_statements_spec.rb +47 -0
  166. data/spec/models/financials_as_reported_spec.rb +53 -0
  167. data/spec/models/forex_candles_spec.rb +77 -0
  168. data/spec/models/forex_symbol_spec.rb +53 -0
  169. data/spec/models/forexrates_spec.rb +47 -0
  170. data/spec/models/fund_ownership_spec.rb +47 -0
  171. data/spec/models/indicator_spec.rb +53 -0
  172. data/spec/models/investor_spec.rb +59 -0
  173. data/spec/models/investors_ownership_spec.rb +47 -0
  174. data/spec/models/ipo_calendar_spec.rb +41 -0
  175. data/spec/models/ipo_event_spec.rb +83 -0
  176. data/spec/models/last_bid_ask_spec.rb +65 -0
  177. data/spec/models/major_developments_spec.rb +47 -0
  178. data/spec/models/news_sentiment_spec.rb +71 -0
  179. data/spec/models/news_spec.rb +89 -0
  180. data/spec/models/pattern_recognition_spec.rb +41 -0
  181. data/spec/models/price_target_spec.rb +71 -0
  182. data/spec/models/quote_spec.rb +65 -0
  183. data/spec/models/recommendation_trend_spec.rb +77 -0
  184. data/spec/models/report_spec.rb +101 -0
  185. data/spec/models/revenue_estimates_spec.rb +53 -0
  186. data/spec/models/sentiment_spec.rb +47 -0
  187. data/spec/models/split_spec.rb +59 -0
  188. data/spec/models/stock_candles_spec.rb +77 -0
  189. data/spec/models/stock_spec.rb +53 -0
  190. data/spec/models/stock_transcripts_spec.rb +65 -0
  191. data/spec/models/support_resistance_spec.rb +41 -0
  192. data/spec/models/technical_analysis_spec.rb +47 -0
  193. data/spec/models/tick_data_spec.rb +83 -0
  194. data/spec/models/transcript_content_spec.rb +47 -0
  195. data/spec/models/transcript_participant_spec.rb +47 -0
  196. data/spec/models/trend_spec.rb +41 -0
  197. data/spec/models/upgrade_downgrade_spec.rb +71 -0
  198. data/spec/spec_helper.rb +111 -0
  199. data/test.rb +139 -0
  200. metadata +364 -0
@@ -0,0 +1,219 @@
1
+ =begin
2
+ #Finnhub API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FinnhubRuby
16
+ class CompanyExecutive
17
+ # Company symbol.
18
+ attr_accessor :symbol
19
+
20
+ # Array of company's executives and members of the Board.
21
+ attr_accessor :executive
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'symbol' => :'symbol',
27
+ :'executive' => :'executive'
28
+ }
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.openapi_types
33
+ {
34
+ :'symbol' => :'String',
35
+ :'executive' => :'Array<Object>'
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ ])
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FinnhubRuby::CompanyExecutive` initialize method"
50
+ end
51
+
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FinnhubRuby::CompanyExecutive`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
59
+
60
+ if attributes.key?(:'symbol')
61
+ self.symbol = attributes[:'symbol']
62
+ end
63
+
64
+ if attributes.key?(:'executive')
65
+ if (value = attributes[:'executive']).is_a?(Array)
66
+ self.executive = value
67
+ end
68
+ end
69
+ end
70
+
71
+ # Show invalid properties with the reasons. Usually used together with valid?
72
+ # @return Array for valid properties with the reasons
73
+ def list_invalid_properties
74
+ invalid_properties = Array.new
75
+ invalid_properties
76
+ end
77
+
78
+ # Check to see if the all the properties in the model are valid
79
+ # @return true if the model is valid
80
+ def valid?
81
+ true
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param [Object] Object to be compared
86
+ def ==(o)
87
+ return true if self.equal?(o)
88
+ self.class == o.class &&
89
+ symbol == o.symbol &&
90
+ executive == o.executive
91
+ end
92
+
93
+ # @see the `==` method
94
+ # @param [Object] Object to be compared
95
+ def eql?(o)
96
+ self == o
97
+ end
98
+
99
+ # Calculates hash code according to all attributes.
100
+ # @return [Integer] Hash code
101
+ def hash
102
+ [symbol, executive].hash
103
+ end
104
+
105
+ # Builds the object from hash
106
+ # @param [Hash] attributes Model attributes in the form of hash
107
+ # @return [Object] Returns the model itself
108
+ def self.build_from_hash(attributes)
109
+ new.build_from_hash(attributes)
110
+ end
111
+
112
+ # Builds the object from hash
113
+ # @param [Hash] attributes Model attributes in the form of hash
114
+ # @return [Object] Returns the model itself
115
+ def build_from_hash(attributes)
116
+ return nil unless attributes.is_a?(Hash)
117
+ self.class.openapi_types.each_pair do |key, type|
118
+ if type =~ /\AArray<(.*)>/i
119
+ # check to ensure the input is an array given that the attribute
120
+ # is documented as an array but the input is not
121
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
122
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
123
+ end
124
+ elsif !attributes[self.class.attribute_map[key]].nil?
125
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
126
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
127
+ end
128
+
129
+ self
130
+ end
131
+
132
+ # Deserializes the data based on type
133
+ # @param string type Data type
134
+ # @param string value Value to be deserialized
135
+ # @return [Object] Deserialized data
136
+ def _deserialize(type, value)
137
+ case type.to_sym
138
+ when :DateTime
139
+ DateTime.parse(value)
140
+ when :Date
141
+ Date.parse(value)
142
+ when :String
143
+ value.to_s
144
+ when :Integer
145
+ value.to_i
146
+ when :Float
147
+ value.to_f
148
+ when :Boolean
149
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
150
+ true
151
+ else
152
+ false
153
+ end
154
+ when :Object
155
+ # generic object (usually a Hash), return directly
156
+ value
157
+ when /\AArray<(?<inner_type>.+)>\z/
158
+ inner_type = Regexp.last_match[:inner_type]
159
+ value.map { |v| _deserialize(inner_type, v) }
160
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
161
+ k_type = Regexp.last_match[:k_type]
162
+ v_type = Regexp.last_match[:v_type]
163
+ {}.tap do |hash|
164
+ value.each do |k, v|
165
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
166
+ end
167
+ end
168
+ else # model
169
+ FinnhubRuby.const_get(type).build_from_hash(value)
170
+ end
171
+ end
172
+
173
+ # Returns the string representation of the object
174
+ # @return [String] String presentation of the object
175
+ def to_s
176
+ to_hash.to_s
177
+ end
178
+
179
+ # to_body is an alias to to_hash (backward compatibility)
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_body
182
+ to_hash
183
+ end
184
+
185
+ # Returns the object in the form of hash
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_hash
188
+ hash = {}
189
+ self.class.attribute_map.each_pair do |attr, param|
190
+ value = self.send(attr)
191
+ if value.nil?
192
+ is_nullable = self.class.openapi_nullable.include?(attr)
193
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
194
+ end
195
+
196
+ hash[param] = _to_hash(value)
197
+ end
198
+ hash
199
+ end
200
+
201
+ # Outputs non-array value in the form of hash
202
+ # For object, use to_hash. Otherwise, just return the value
203
+ # @param [Object] value Any valid value
204
+ # @return [Hash] Returns the value in the form of hash
205
+ def _to_hash(value)
206
+ if value.is_a?(Array)
207
+ value.compact.map { |v| _to_hash(v) }
208
+ elsif value.is_a?(Hash)
209
+ {}.tap do |hash|
210
+ value.each { |k, v| hash[k] = _to_hash(v) }
211
+ end
212
+ elsif value.respond_to? :to_hash
213
+ value.to_hash
214
+ else
215
+ value
216
+ end
217
+ end
218
+ end
219
+ end
@@ -0,0 +1,227 @@
1
+ =begin
2
+ #Finnhub API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FinnhubRuby
16
+ class CompanyNewsStatistics
17
+ #
18
+ attr_accessor :articles_in_last_week
19
+
20
+ #
21
+ attr_accessor :buzz
22
+
23
+ #
24
+ attr_accessor :weekly_average
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'articles_in_last_week' => :'articlesInLastWeek',
30
+ :'buzz' => :'buzz',
31
+ :'weekly_average' => :'weeklyAverage'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.openapi_types
37
+ {
38
+ :'articles_in_last_week' => :'Integer',
39
+ :'buzz' => :'Float',
40
+ :'weekly_average' => :'Float'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FinnhubRuby::CompanyNewsStatistics` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ attributes = attributes.each_with_object({}) { |(k, v), h|
59
+ if (!self.class.attribute_map.key?(k.to_sym))
60
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FinnhubRuby::CompanyNewsStatistics`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
+ end
62
+ h[k.to_sym] = v
63
+ }
64
+
65
+ if attributes.key?(:'articles_in_last_week')
66
+ self.articles_in_last_week = attributes[:'articles_in_last_week']
67
+ end
68
+
69
+ if attributes.key?(:'buzz')
70
+ self.buzz = attributes[:'buzz']
71
+ end
72
+
73
+ if attributes.key?(:'weekly_average')
74
+ self.weekly_average = attributes[:'weekly_average']
75
+ end
76
+ end
77
+
78
+ # Show invalid properties with the reasons. Usually used together with valid?
79
+ # @return Array for valid properties with the reasons
80
+ def list_invalid_properties
81
+ invalid_properties = Array.new
82
+ invalid_properties
83
+ end
84
+
85
+ # Check to see if the all the properties in the model are valid
86
+ # @return true if the model is valid
87
+ def valid?
88
+ true
89
+ end
90
+
91
+ # Checks equality by comparing each attribute.
92
+ # @param [Object] Object to be compared
93
+ def ==(o)
94
+ return true if self.equal?(o)
95
+ self.class == o.class &&
96
+ articles_in_last_week == o.articles_in_last_week &&
97
+ buzz == o.buzz &&
98
+ weekly_average == o.weekly_average
99
+ end
100
+
101
+ # @see the `==` method
102
+ # @param [Object] Object to be compared
103
+ def eql?(o)
104
+ self == o
105
+ end
106
+
107
+ # Calculates hash code according to all attributes.
108
+ # @return [Integer] Hash code
109
+ def hash
110
+ [articles_in_last_week, buzz, weekly_average].hash
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def self.build_from_hash(attributes)
117
+ new.build_from_hash(attributes)
118
+ end
119
+
120
+ # Builds the object from hash
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ # @return [Object] Returns the model itself
123
+ def build_from_hash(attributes)
124
+ return nil unless attributes.is_a?(Hash)
125
+ self.class.openapi_types.each_pair do |key, type|
126
+ if type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
131
+ end
132
+ elsif !attributes[self.class.attribute_map[key]].nil?
133
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
134
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :DateTime
147
+ DateTime.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value.to_s
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ FinnhubRuby.const_get(type).build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end
226
+ end
227
+ end
@@ -0,0 +1,477 @@
1
+ =begin
2
+ #Finnhub API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module FinnhubRuby
16
+ class CompanyProfile
17
+ # Address of company's headquarter.
18
+ attr_accessor :address
19
+
20
+ # City of company's headquarter.
21
+ attr_accessor :city
22
+
23
+ # Country of company's headquarter.
24
+ attr_accessor :country
25
+
26
+ # Currency used in company filings.
27
+ attr_accessor :currency
28
+
29
+ # CUSIP number.
30
+ attr_accessor :cusip
31
+
32
+ # Sedol number.
33
+ attr_accessor :sedol
34
+
35
+ # Company business summary.
36
+ attr_accessor :description
37
+
38
+ # Listed exchange.
39
+ attr_accessor :exchange
40
+
41
+ # GICS industry group.
42
+ attr_accessor :ggroup
43
+
44
+ # GICS industry.
45
+ attr_accessor :gind
46
+
47
+ # GICS sector.
48
+ attr_accessor :gsector
49
+
50
+ # GICS sub-industry.
51
+ attr_accessor :gsubind
52
+
53
+ # ISIN number.
54
+ attr_accessor :isin
55
+
56
+ # NAICS national industry.
57
+ attr_accessor :naics_national_industry
58
+
59
+ # NAICS industry.
60
+ attr_accessor :naics
61
+
62
+ # NAICS sector.
63
+ attr_accessor :naics_sector
64
+
65
+ # NAICS subsector.
66
+ attr_accessor :naics_subsector
67
+
68
+ # Company name.
69
+ attr_accessor :name
70
+
71
+ # Company phone number.
72
+ attr_accessor :phone
73
+
74
+ # State of company's headquarter.
75
+ attr_accessor :state
76
+
77
+ # Company symbol/ticker as used on the listed exchange.
78
+ attr_accessor :ticker
79
+
80
+ # Company website.
81
+ attr_accessor :weburl
82
+
83
+ # IPO date.
84
+ attr_accessor :ipo
85
+
86
+ # Market Capitalization.
87
+ attr_accessor :market_capitalization
88
+
89
+ # Number of oustanding shares.
90
+ attr_accessor :share_outstanding
91
+
92
+ # Number of employee.
93
+ attr_accessor :employee_total
94
+
95
+ # Logo image.
96
+ attr_accessor :logo
97
+
98
+ # Finnhub industry classification.
99
+ attr_accessor :finnhub_industry
100
+
101
+ # Attribute mapping from ruby-style variable name to JSON key.
102
+ def self.attribute_map
103
+ {
104
+ :'address' => :'address',
105
+ :'city' => :'city',
106
+ :'country' => :'country',
107
+ :'currency' => :'currency',
108
+ :'cusip' => :'cusip',
109
+ :'sedol' => :'sedol',
110
+ :'description' => :'description',
111
+ :'exchange' => :'exchange',
112
+ :'ggroup' => :'ggroup',
113
+ :'gind' => :'gind',
114
+ :'gsector' => :'gsector',
115
+ :'gsubind' => :'gsubind',
116
+ :'isin' => :'isin',
117
+ :'naics_national_industry' => :'naicsNationalIndustry',
118
+ :'naics' => :'naics',
119
+ :'naics_sector' => :'naicsSector',
120
+ :'naics_subsector' => :'naicsSubsector',
121
+ :'name' => :'name',
122
+ :'phone' => :'phone',
123
+ :'state' => :'state',
124
+ :'ticker' => :'ticker',
125
+ :'weburl' => :'weburl',
126
+ :'ipo' => :'ipo',
127
+ :'market_capitalization' => :'marketCapitalization',
128
+ :'share_outstanding' => :'shareOutstanding',
129
+ :'employee_total' => :'employeeTotal',
130
+ :'logo' => :'logo',
131
+ :'finnhub_industry' => :'finnhubIndustry'
132
+ }
133
+ end
134
+
135
+ # Attribute type mapping.
136
+ def self.openapi_types
137
+ {
138
+ :'address' => :'String',
139
+ :'city' => :'String',
140
+ :'country' => :'String',
141
+ :'currency' => :'String',
142
+ :'cusip' => :'String',
143
+ :'sedol' => :'Integer',
144
+ :'description' => :'String',
145
+ :'exchange' => :'String',
146
+ :'ggroup' => :'String',
147
+ :'gind' => :'String',
148
+ :'gsector' => :'String',
149
+ :'gsubind' => :'String',
150
+ :'isin' => :'String',
151
+ :'naics_national_industry' => :'String',
152
+ :'naics' => :'String',
153
+ :'naics_sector' => :'String',
154
+ :'naics_subsector' => :'String',
155
+ :'name' => :'String',
156
+ :'phone' => :'String',
157
+ :'state' => :'String',
158
+ :'ticker' => :'String',
159
+ :'weburl' => :'String',
160
+ :'ipo' => :'Date',
161
+ :'market_capitalization' => :'Float',
162
+ :'share_outstanding' => :'Float',
163
+ :'employee_total' => :'Integer',
164
+ :'logo' => :'String',
165
+ :'finnhub_industry' => :'String'
166
+ }
167
+ end
168
+
169
+ # List of attributes with nullable: true
170
+ def self.openapi_nullable
171
+ Set.new([
172
+ ])
173
+ end
174
+
175
+ # Initializes the object
176
+ # @param [Hash] attributes Model attributes in the form of hash
177
+ def initialize(attributes = {})
178
+ if (!attributes.is_a?(Hash))
179
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FinnhubRuby::CompanyProfile` initialize method"
180
+ end
181
+
182
+ # check to see if the attribute exists and convert string to symbol for hash key
183
+ attributes = attributes.each_with_object({}) { |(k, v), h|
184
+ if (!self.class.attribute_map.key?(k.to_sym))
185
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FinnhubRuby::CompanyProfile`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
186
+ end
187
+ h[k.to_sym] = v
188
+ }
189
+
190
+ if attributes.key?(:'address')
191
+ self.address = attributes[:'address']
192
+ end
193
+
194
+ if attributes.key?(:'city')
195
+ self.city = attributes[:'city']
196
+ end
197
+
198
+ if attributes.key?(:'country')
199
+ self.country = attributes[:'country']
200
+ end
201
+
202
+ if attributes.key?(:'currency')
203
+ self.currency = attributes[:'currency']
204
+ end
205
+
206
+ if attributes.key?(:'cusip')
207
+ self.cusip = attributes[:'cusip']
208
+ end
209
+
210
+ if attributes.key?(:'sedol')
211
+ self.sedol = attributes[:'sedol']
212
+ end
213
+
214
+ if attributes.key?(:'description')
215
+ self.description = attributes[:'description']
216
+ end
217
+
218
+ if attributes.key?(:'exchange')
219
+ self.exchange = attributes[:'exchange']
220
+ end
221
+
222
+ if attributes.key?(:'ggroup')
223
+ self.ggroup = attributes[:'ggroup']
224
+ end
225
+
226
+ if attributes.key?(:'gind')
227
+ self.gind = attributes[:'gind']
228
+ end
229
+
230
+ if attributes.key?(:'gsector')
231
+ self.gsector = attributes[:'gsector']
232
+ end
233
+
234
+ if attributes.key?(:'gsubind')
235
+ self.gsubind = attributes[:'gsubind']
236
+ end
237
+
238
+ if attributes.key?(:'isin')
239
+ self.isin = attributes[:'isin']
240
+ end
241
+
242
+ if attributes.key?(:'naics_national_industry')
243
+ self.naics_national_industry = attributes[:'naics_national_industry']
244
+ end
245
+
246
+ if attributes.key?(:'naics')
247
+ self.naics = attributes[:'naics']
248
+ end
249
+
250
+ if attributes.key?(:'naics_sector')
251
+ self.naics_sector = attributes[:'naics_sector']
252
+ end
253
+
254
+ if attributes.key?(:'naics_subsector')
255
+ self.naics_subsector = attributes[:'naics_subsector']
256
+ end
257
+
258
+ if attributes.key?(:'name')
259
+ self.name = attributes[:'name']
260
+ end
261
+
262
+ if attributes.key?(:'phone')
263
+ self.phone = attributes[:'phone']
264
+ end
265
+
266
+ if attributes.key?(:'state')
267
+ self.state = attributes[:'state']
268
+ end
269
+
270
+ if attributes.key?(:'ticker')
271
+ self.ticker = attributes[:'ticker']
272
+ end
273
+
274
+ if attributes.key?(:'weburl')
275
+ self.weburl = attributes[:'weburl']
276
+ end
277
+
278
+ if attributes.key?(:'ipo')
279
+ self.ipo = attributes[:'ipo']
280
+ end
281
+
282
+ if attributes.key?(:'market_capitalization')
283
+ self.market_capitalization = attributes[:'market_capitalization']
284
+ end
285
+
286
+ if attributes.key?(:'share_outstanding')
287
+ self.share_outstanding = attributes[:'share_outstanding']
288
+ end
289
+
290
+ if attributes.key?(:'employee_total')
291
+ self.employee_total = attributes[:'employee_total']
292
+ end
293
+
294
+ if attributes.key?(:'logo')
295
+ self.logo = attributes[:'logo']
296
+ end
297
+
298
+ if attributes.key?(:'finnhub_industry')
299
+ self.finnhub_industry = attributes[:'finnhub_industry']
300
+ end
301
+ end
302
+
303
+ # Show invalid properties with the reasons. Usually used together with valid?
304
+ # @return Array for valid properties with the reasons
305
+ def list_invalid_properties
306
+ invalid_properties = Array.new
307
+ invalid_properties
308
+ end
309
+
310
+ # Check to see if the all the properties in the model are valid
311
+ # @return true if the model is valid
312
+ def valid?
313
+ true
314
+ end
315
+
316
+ # Checks equality by comparing each attribute.
317
+ # @param [Object] Object to be compared
318
+ def ==(o)
319
+ return true if self.equal?(o)
320
+ self.class == o.class &&
321
+ address == o.address &&
322
+ city == o.city &&
323
+ country == o.country &&
324
+ currency == o.currency &&
325
+ cusip == o.cusip &&
326
+ sedol == o.sedol &&
327
+ description == o.description &&
328
+ exchange == o.exchange &&
329
+ ggroup == o.ggroup &&
330
+ gind == o.gind &&
331
+ gsector == o.gsector &&
332
+ gsubind == o.gsubind &&
333
+ isin == o.isin &&
334
+ naics_national_industry == o.naics_national_industry &&
335
+ naics == o.naics &&
336
+ naics_sector == o.naics_sector &&
337
+ naics_subsector == o.naics_subsector &&
338
+ name == o.name &&
339
+ phone == o.phone &&
340
+ state == o.state &&
341
+ ticker == o.ticker &&
342
+ weburl == o.weburl &&
343
+ ipo == o.ipo &&
344
+ market_capitalization == o.market_capitalization &&
345
+ share_outstanding == o.share_outstanding &&
346
+ employee_total == o.employee_total &&
347
+ logo == o.logo &&
348
+ finnhub_industry == o.finnhub_industry
349
+ end
350
+
351
+ # @see the `==` method
352
+ # @param [Object] Object to be compared
353
+ def eql?(o)
354
+ self == o
355
+ end
356
+
357
+ # Calculates hash code according to all attributes.
358
+ # @return [Integer] Hash code
359
+ def hash
360
+ [address, city, country, currency, cusip, sedol, description, exchange, ggroup, gind, gsector, gsubind, isin, naics_national_industry, naics, naics_sector, naics_subsector, name, phone, state, ticker, weburl, ipo, market_capitalization, share_outstanding, employee_total, logo, finnhub_industry].hash
361
+ end
362
+
363
+ # Builds the object from hash
364
+ # @param [Hash] attributes Model attributes in the form of hash
365
+ # @return [Object] Returns the model itself
366
+ def self.build_from_hash(attributes)
367
+ new.build_from_hash(attributes)
368
+ end
369
+
370
+ # Builds the object from hash
371
+ # @param [Hash] attributes Model attributes in the form of hash
372
+ # @return [Object] Returns the model itself
373
+ def build_from_hash(attributes)
374
+ return nil unless attributes.is_a?(Hash)
375
+ self.class.openapi_types.each_pair do |key, type|
376
+ if type =~ /\AArray<(.*)>/i
377
+ # check to ensure the input is an array given that the attribute
378
+ # is documented as an array but the input is not
379
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
380
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
381
+ end
382
+ elsif !attributes[self.class.attribute_map[key]].nil?
383
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
384
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
385
+ end
386
+
387
+ self
388
+ end
389
+
390
+ # Deserializes the data based on type
391
+ # @param string type Data type
392
+ # @param string value Value to be deserialized
393
+ # @return [Object] Deserialized data
394
+ def _deserialize(type, value)
395
+ case type.to_sym
396
+ when :DateTime
397
+ DateTime.parse(value)
398
+ when :Date
399
+ Date.parse(value)
400
+ when :String
401
+ value.to_s
402
+ when :Integer
403
+ value.to_i
404
+ when :Float
405
+ value.to_f
406
+ when :Boolean
407
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
408
+ true
409
+ else
410
+ false
411
+ end
412
+ when :Object
413
+ # generic object (usually a Hash), return directly
414
+ value
415
+ when /\AArray<(?<inner_type>.+)>\z/
416
+ inner_type = Regexp.last_match[:inner_type]
417
+ value.map { |v| _deserialize(inner_type, v) }
418
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
419
+ k_type = Regexp.last_match[:k_type]
420
+ v_type = Regexp.last_match[:v_type]
421
+ {}.tap do |hash|
422
+ value.each do |k, v|
423
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
424
+ end
425
+ end
426
+ else # model
427
+ FinnhubRuby.const_get(type).build_from_hash(value)
428
+ end
429
+ end
430
+
431
+ # Returns the string representation of the object
432
+ # @return [String] String presentation of the object
433
+ def to_s
434
+ to_hash.to_s
435
+ end
436
+
437
+ # to_body is an alias to to_hash (backward compatibility)
438
+ # @return [Hash] Returns the object in the form of hash
439
+ def to_body
440
+ to_hash
441
+ end
442
+
443
+ # Returns the object in the form of hash
444
+ # @return [Hash] Returns the object in the form of hash
445
+ def to_hash
446
+ hash = {}
447
+ self.class.attribute_map.each_pair do |attr, param|
448
+ value = self.send(attr)
449
+ if value.nil?
450
+ is_nullable = self.class.openapi_nullable.include?(attr)
451
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
452
+ end
453
+
454
+ hash[param] = _to_hash(value)
455
+ end
456
+ hash
457
+ end
458
+
459
+ # Outputs non-array value in the form of hash
460
+ # For object, use to_hash. Otherwise, just return the value
461
+ # @param [Object] value Any valid value
462
+ # @return [Hash] Returns the value in the form of hash
463
+ def _to_hash(value)
464
+ if value.is_a?(Array)
465
+ value.compact.map { |v| _to_hash(v) }
466
+ elsif value.is_a?(Hash)
467
+ {}.tap do |hash|
468
+ value.each { |k, v| hash[k] = _to_hash(v) }
469
+ end
470
+ elsif value.respond_to? :to_hash
471
+ value.to_hash
472
+ else
473
+ value
474
+ end
475
+ end
476
+ end
477
+ end