aylien_news_api 0.2.0 → 4.0.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.
Files changed (155) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +7 -1
  3. data/README.md +36 -47
  4. data/Rakefile +10 -0
  5. data/aylien_news_api.gemspec +25 -32
  6. data/docs/Author.md +12 -1
  7. data/docs/Autocomplete.md +10 -0
  8. data/docs/Autocompletes.md +9 -0
  9. data/docs/Category.md +19 -3
  10. data/docs/CategoryLinks.md +11 -1
  11. data/docs/CategoryTaxonomy.md +16 -0
  12. data/docs/Cluster.md +29 -0
  13. data/docs/Clusters.md +21 -0
  14. data/docs/Coverages.md +16 -4
  15. data/docs/DefaultApi.md +1310 -576
  16. data/docs/Entities.md +11 -1
  17. data/docs/Entity.md +16 -3
  18. data/docs/EntityLinks.md +9 -0
  19. data/docs/Error.md +16 -2
  20. data/docs/ErrorLinks.md +9 -0
  21. data/docs/Errors.md +9 -0
  22. data/docs/HistogramInterval.md +10 -0
  23. data/docs/Histograms.md +20 -3
  24. data/docs/Location.md +13 -2
  25. data/docs/Media.md +19 -1
  26. data/docs/MediaFormat.md +16 -0
  27. data/docs/MediaType.md +16 -0
  28. data/docs/Rank.md +21 -0
  29. data/docs/Rankings.md +17 -0
  30. data/docs/RelatedStories.md +14 -3
  31. data/docs/RepresentativeStory.md +23 -0
  32. data/docs/Scope.md +15 -3
  33. data/docs/ScopeLevel.md +16 -0
  34. data/docs/Sentiment.md +11 -1
  35. data/docs/SentimentPolarity.md +16 -0
  36. data/docs/Sentiments.md +12 -2
  37. data/docs/ShareCount.md +10 -0
  38. data/docs/ShareCounts.md +12 -0
  39. data/docs/Source.md +27 -3
  40. data/docs/Stories.md +15 -2
  41. data/docs/Story.md +48 -16
  42. data/docs/StoryCluster.md +14 -1
  43. data/docs/StoryLinks.md +14 -1
  44. data/docs/StoryTranslation.md +19 -0
  45. data/docs/StoryTranslations.md +17 -0
  46. data/docs/StoryTranslationsEn.md +21 -0
  47. data/docs/Summary.md +9 -0
  48. data/docs/TimeSeries.md +11 -1
  49. data/docs/TimeSeriesList.md +15 -3
  50. data/docs/Trend.md +11 -1
  51. data/docs/Trends.md +15 -1
  52. data/git_push.sh +58 -0
  53. data/lib/aylien_news_api.rb +23 -14
  54. data/lib/aylien_news_api/api/default_api.rb +2755 -892
  55. data/lib/aylien_news_api/api_client.rb +141 -102
  56. data/lib/aylien_news_api/api_error.rb +37 -18
  57. data/lib/aylien_news_api/configuration.rb +94 -43
  58. data/lib/aylien_news_api/models/author.rb +69 -53
  59. data/lib/aylien_news_api/models/autocomplete.rb +55 -39
  60. data/lib/aylien_news_api/models/autocompletes.rb +54 -38
  61. data/lib/aylien_news_api/models/category.rb +88 -97
  62. data/lib/aylien_news_api/models/category_links.rb +66 -50
  63. data/lib/aylien_news_api/models/category_taxonomy.rb +36 -0
  64. data/lib/aylien_news_api/models/cluster.rb +265 -0
  65. data/lib/aylien_news_api/models/clusters.rb +229 -0
  66. data/lib/aylien_news_api/models/coverages.rb +79 -75
  67. data/lib/aylien_news_api/models/entities.rb +67 -51
  68. data/lib/aylien_news_api/models/entity.rb +100 -81
  69. data/lib/aylien_news_api/models/entity_links.rb +54 -38
  70. data/lib/aylien_news_api/models/error.rb +79 -63
  71. data/lib/aylien_news_api/models/error_links.rb +54 -38
  72. data/lib/aylien_news_api/models/errors.rb +54 -38
  73. data/lib/aylien_news_api/models/histogram_interval.rb +55 -39
  74. data/lib/aylien_news_api/models/histograms.rb +99 -63
  75. data/lib/aylien_news_api/models/location.rb +70 -54
  76. data/lib/aylien_news_api/models/media.rb +97 -76
  77. data/lib/aylien_news_api/models/media_format.rb +44 -0
  78. data/lib/aylien_news_api/models/media_type.rb +36 -0
  79. data/lib/aylien_news_api/models/rank.rb +227 -0
  80. data/lib/aylien_news_api/models/rankings.rb +208 -0
  81. data/lib/aylien_news_api/models/related_stories.rb +72 -68
  82. data/lib/aylien_news_api/models/representative_story.rb +237 -0
  83. data/lib/aylien_news_api/models/scope.rb +76 -94
  84. data/lib/aylien_news_api/models/scope_level.rb +37 -0
  85. data/lib/aylien_news_api/models/sentiment.rb +70 -84
  86. data/lib/aylien_news_api/models/sentiment_polarity.rb +37 -0
  87. data/lib/aylien_news_api/models/sentiments.rb +65 -51
  88. data/lib/aylien_news_api/models/share_count.rb +55 -39
  89. data/lib/aylien_news_api/models/share_counts.rb +57 -41
  90. data/lib/aylien_news_api/models/source.rb +129 -64
  91. data/lib/aylien_news_api/models/stories.rb +79 -55
  92. data/lib/aylien_news_api/models/story.rb +191 -161
  93. data/lib/aylien_news_api/models/story_cluster.rb +71 -55
  94. data/lib/aylien_news_api/models/story_links.rb +73 -47
  95. data/lib/aylien_news_api/models/story_translation.rb +217 -0
  96. data/lib/aylien_news_api/models/story_translations.rb +207 -0
  97. data/lib/aylien_news_api/models/story_translations_en.rb +227 -0
  98. data/lib/aylien_news_api/models/summary.rb +54 -38
  99. data/lib/aylien_news_api/models/time_series.rb +66 -50
  100. data/lib/aylien_news_api/models/time_series_list.rb +75 -59
  101. data/lib/aylien_news_api/models/trend.rb +66 -50
  102. data/lib/aylien_news_api/models/trends.rb +80 -44
  103. data/lib/aylien_news_api/version.rb +12 -14
  104. data/spec/api/default_api_spec.rb +620 -284
  105. data/spec/api_client_spec.rb +43 -161
  106. data/spec/configuration_spec.rb +22 -19
  107. data/spec/models/author_spec.rb +21 -34
  108. data/spec/models/autocomplete_spec.rb +17 -26
  109. data/spec/models/autocompletes_spec.rb +16 -21
  110. data/spec/models/category_links_spec.rb +19 -28
  111. data/spec/models/category_spec.rb +31 -50
  112. data/spec/models/category_taxonomy_spec.rb +35 -0
  113. data/spec/models/cluster_spec.rb +77 -0
  114. data/spec/models/clusters_spec.rb +53 -0
  115. data/spec/models/coverages_spec.rb +24 -45
  116. data/spec/models/entities_spec.rb +19 -28
  117. data/spec/models/entity_links_spec.rb +16 -21
  118. data/spec/models/entity_spec.rb +25 -46
  119. data/spec/models/error_links_spec.rb +16 -21
  120. data/spec/models/error_spec.rb +27 -52
  121. data/spec/models/errors_spec.rb +16 -21
  122. data/spec/models/histogram_interval_spec.rb +17 -26
  123. data/spec/models/histograms_spec.rb +36 -45
  124. data/spec/models/location_spec.rb +21 -34
  125. data/spec/models/media_format_spec.rb +35 -0
  126. data/spec/models/media_spec.rb +41 -26
  127. data/spec/models/media_type_spec.rb +35 -0
  128. data/spec/models/rank_spec.rb +53 -0
  129. data/spec/models/rankings_spec.rb +41 -0
  130. data/spec/models/related_stories_spec.rb +21 -38
  131. data/spec/models/representative_story_spec.rb +59 -0
  132. data/spec/models/scope_level_spec.rb +35 -0
  133. data/spec/models/scope_spec.rb +23 -40
  134. data/spec/models/sentiment_polarity_spec.rb +35 -0
  135. data/spec/models/sentiment_spec.rb +17 -26
  136. data/spec/models/sentiments_spec.rb +19 -28
  137. data/spec/models/share_count_spec.rb +17 -26
  138. data/spec/models/share_counts_spec.rb +19 -36
  139. data/spec/models/source_spec.rb +54 -49
  140. data/spec/models/stories_spec.rb +26 -33
  141. data/spec/models/story_cluster_spec.rb +23 -44
  142. data/spec/models/story_links_spec.rb +25 -32
  143. data/spec/models/story_spec.rb +65 -134
  144. data/spec/models/story_translation_spec.rb +47 -0
  145. data/spec/models/story_translations_en_spec.rb +53 -0
  146. data/spec/models/story_translations_spec.rb +41 -0
  147. data/spec/models/summary_spec.rb +16 -21
  148. data/spec/models/time_series_list_spec.rb +22 -39
  149. data/spec/models/time_series_spec.rb +19 -28
  150. data/spec/models/trend_spec.rb +19 -28
  151. data/spec/models/trends_spec.rb +30 -27
  152. data/spec/spec_helper.rb +11 -13
  153. metadata +95 -193
  154. data/Gemfile.lock +0 -65
  155. data/LICENSE +0 -13
@@ -1,26 +1,22 @@
1
- # Copyright 2016 Aylien, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
1
+ =begin
2
+ #AYLIEN News API
3
+
4
+ #The AYLIEN News API is the most powerful way of sourcing, searching and syndicating analyzed and enriched news content. It is accessed by sending HTTP requests to our server, which returns information to your client.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@aylien.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.0-SNAPSHOT
10
+
11
+ =end
14
12
 
15
13
  require 'date'
16
14
 
17
15
  module AylienNewsApi
18
-
19
16
  class EntityLinks
20
17
  # A dbpedia resource URL
21
18
  attr_accessor :dbpedia
22
19
 
23
-
24
20
  # Attribute mapping from ruby-style variable name to JSON key.
25
21
  def self.attribute_map
26
22
  {
@@ -29,37 +25,49 @@ module AylienNewsApi
29
25
  end
30
26
 
31
27
  # Attribute type mapping.
32
- def self.api_types
28
+ def self.openapi_types
33
29
  {
34
30
  :'dbpedia' => :'String'
35
31
  }
36
32
  end
37
33
 
34
+ # List of attributes with nullable: true
35
+ def self.openapi_nullable
36
+ Set.new([
37
+ ])
38
+ end
39
+
38
40
  # Initializes the object
39
41
  # @param [Hash] attributes Model attributes in the form of hash
40
42
  def initialize(attributes = {})
41
- return unless attributes.is_a?(Hash)
43
+ if (!attributes.is_a?(Hash))
44
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::EntityLinks` initialize method"
45
+ end
42
46
 
43
- # convert string to symbol for hash key
44
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
47
+ # check to see if the attribute exists and convert string to symbol for hash key
48
+ attributes = attributes.each_with_object({}) { |(k, v), h|
49
+ if (!self.class.attribute_map.key?(k.to_sym))
50
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AylienNewsApi::EntityLinks`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
51
+ end
52
+ h[k.to_sym] = v
53
+ }
45
54
 
46
- if attributes.has_key?(:'dbpedia')
55
+ if attributes.key?(:'dbpedia')
47
56
  self.dbpedia = attributes[:'dbpedia']
48
57
  end
49
-
50
58
  end
51
59
 
52
60
  # Show invalid properties with the reasons. Usually used together with valid?
53
- # @return Array for valid properies with the reasons
61
+ # @return Array for valid properties with the reasons
54
62
  def list_invalid_properties
55
63
  invalid_properties = Array.new
56
- return invalid_properties
64
+ invalid_properties
57
65
  end
58
66
 
59
67
  # Check to see if the all the properties in the model are valid
60
68
  # @return true if the model is valid
61
69
  def valid?
62
- return true
70
+ true
63
71
  end
64
72
 
65
73
  # Checks equality by comparing each attribute.
@@ -77,22 +85,29 @@ module AylienNewsApi
77
85
  end
78
86
 
79
87
  # Calculates hash code according to all attributes.
80
- # @return [Fixnum] Hash code
88
+ # @return [Integer] Hash code
81
89
  def hash
82
90
  [dbpedia].hash
83
91
  end
84
92
 
93
+ # Builds the object from hash
94
+ # @param [Hash] attributes Model attributes in the form of hash
95
+ # @return [Object] Returns the model itself
96
+ def self.build_from_hash(attributes)
97
+ new.build_from_hash(attributes)
98
+ end
99
+
85
100
  # Builds the object from hash
86
101
  # @param [Hash] attributes Model attributes in the form of hash
87
102
  # @return [Object] Returns the model itself
88
103
  def build_from_hash(attributes)
89
104
  return nil unless attributes.is_a?(Hash)
90
- self.class.api_types.each_pair do |key, type|
91
- if type =~ /^Array<(.*)>/i
92
- # check to ensure the input is an array given that the the attribute
105
+ self.class.openapi_types.each_pair do |key, type|
106
+ if type =~ /\AArray<(.*)>/i
107
+ # check to ensure the input is an array given that the attribute
93
108
  # is documented as an array but the input is not
94
109
  if attributes[self.class.attribute_map[key]].is_a?(Array)
95
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
110
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
96
111
  end
97
112
  elsif !attributes[self.class.attribute_map[key]].nil?
98
113
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -118,8 +133,8 @@ module AylienNewsApi
118
133
  value.to_i
119
134
  when :Float
120
135
  value.to_f
121
- when :BOOLEAN
122
- if value.to_s =~ /^(true|t|yes|y|1)$/i
136
+ when :Boolean
137
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
123
138
  true
124
139
  else
125
140
  false
@@ -130,7 +145,7 @@ module AylienNewsApi
130
145
  when /\AArray<(?<inner_type>.+)>\z/
131
146
  inner_type = Regexp.last_match[:inner_type]
132
147
  value.map { |v| _deserialize(inner_type, v) }
133
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
148
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
134
149
  k_type = Regexp.last_match[:k_type]
135
150
  v_type = Regexp.last_match[:v_type]
136
151
  {}.tap do |hash|
@@ -139,8 +154,7 @@ module AylienNewsApi
139
154
  end
140
155
  end
141
156
  else # model
142
- temp_model = AylienNewsApi.const_get(type).new
143
- temp_model.build_from_hash(value)
157
+ AylienNewsApi.const_get(type).build_from_hash(value)
144
158
  end
145
159
  end
146
160
 
@@ -162,7 +176,11 @@ module AylienNewsApi
162
176
  hash = {}
163
177
  self.class.attribute_map.each_pair do |attr, param|
164
178
  value = self.send(attr)
165
- next if value.nil?
179
+ if value.nil?
180
+ is_nullable = self.class.openapi_nullable.include?(attr)
181
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
182
+ end
183
+
166
184
  hash[param] = _to_hash(value)
167
185
  end
168
186
  hash
@@ -174,7 +192,7 @@ module AylienNewsApi
174
192
  # @return [Hash] Returns the value in the form of hash
175
193
  def _to_hash(value)
176
194
  if value.is_a?(Array)
177
- value.compact.map{ |v| _to_hash(v) }
195
+ value.compact.map { |v| _to_hash(v) }
178
196
  elsif value.is_a?(Hash)
179
197
  {}.tap do |hash|
180
198
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -185,7 +203,5 @@ module AylienNewsApi
185
203
  value
186
204
  end
187
205
  end
188
-
189
206
  end
190
-
191
207
  end
@@ -1,104 +1,112 @@
1
- # Copyright 2016 Aylien, Inc. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
1
+ =begin
2
+ #AYLIEN News API
3
+
4
+ #The AYLIEN News API is the most powerful way of sourcing, searching and syndicating analyzed and enriched news content. It is accessed by sending HTTP requests to our server, which returns information to your client.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@aylien.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.0-SNAPSHOT
10
+
11
+ =end
14
12
 
15
13
  require 'date'
16
14
 
17
15
  module AylienNewsApi
18
-
19
16
  class Error
17
+ attr_accessor :code
18
+
19
+ attr_accessor :detail
20
+
20
21
  attr_accessor :id
21
22
 
22
23
  attr_accessor :links
23
24
 
24
25
  attr_accessor :status
25
26
 
26
- attr_accessor :code
27
-
28
27
  attr_accessor :title
29
28
 
30
- attr_accessor :detail
31
-
32
-
33
29
  # Attribute mapping from ruby-style variable name to JSON key.
34
30
  def self.attribute_map
35
31
  {
32
+ :'code' => :'code',
33
+ :'detail' => :'detail',
36
34
  :'id' => :'id',
37
35
  :'links' => :'links',
38
36
  :'status' => :'status',
39
- :'code' => :'code',
40
- :'title' => :'title',
41
- :'detail' => :'detail'
37
+ :'title' => :'title'
42
38
  }
43
39
  end
44
40
 
45
41
  # Attribute type mapping.
46
- def self.api_types
42
+ def self.openapi_types
47
43
  {
44
+ :'code' => :'String',
45
+ :'detail' => :'String',
48
46
  :'id' => :'String',
49
47
  :'links' => :'ErrorLinks',
50
48
  :'status' => :'String',
51
- :'code' => :'String',
52
- :'title' => :'String',
53
- :'detail' => :'String'
49
+ :'title' => :'String'
54
50
  }
55
51
  end
56
52
 
53
+ # List of attributes with nullable: true
54
+ def self.openapi_nullable
55
+ Set.new([
56
+ ])
57
+ end
58
+
57
59
  # Initializes the object
58
60
  # @param [Hash] attributes Model attributes in the form of hash
59
61
  def initialize(attributes = {})
60
- return unless attributes.is_a?(Hash)
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::Error` initialize method"
64
+ end
61
65
 
62
- # convert string to symbol for hash key
63
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AylienNewsApi::Error`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
70
+ end
71
+ h[k.to_sym] = v
72
+ }
64
73
 
65
- if attributes.has_key?(:'id')
66
- self.id = attributes[:'id']
74
+ if attributes.key?(:'code')
75
+ self.code = attributes[:'code']
67
76
  end
68
77
 
69
- if attributes.has_key?(:'links')
70
- self.links = attributes[:'links']
78
+ if attributes.key?(:'detail')
79
+ self.detail = attributes[:'detail']
71
80
  end
72
81
 
73
- if attributes.has_key?(:'status')
74
- self.status = attributes[:'status']
82
+ if attributes.key?(:'id')
83
+ self.id = attributes[:'id']
75
84
  end
76
85
 
77
- if attributes.has_key?(:'code')
78
- self.code = attributes[:'code']
86
+ if attributes.key?(:'links')
87
+ self.links = attributes[:'links']
79
88
  end
80
89
 
81
- if attributes.has_key?(:'title')
82
- self.title = attributes[:'title']
90
+ if attributes.key?(:'status')
91
+ self.status = attributes[:'status']
83
92
  end
84
93
 
85
- if attributes.has_key?(:'detail')
86
- self.detail = attributes[:'detail']
94
+ if attributes.key?(:'title')
95
+ self.title = attributes[:'title']
87
96
  end
88
-
89
97
  end
90
98
 
91
99
  # Show invalid properties with the reasons. Usually used together with valid?
92
- # @return Array for valid properies with the reasons
100
+ # @return Array for valid properties with the reasons
93
101
  def list_invalid_properties
94
102
  invalid_properties = Array.new
95
- return invalid_properties
103
+ invalid_properties
96
104
  end
97
105
 
98
106
  # Check to see if the all the properties in the model are valid
99
107
  # @return true if the model is valid
100
108
  def valid?
101
- return true
109
+ true
102
110
  end
103
111
 
104
112
  # Checks equality by comparing each attribute.
@@ -106,12 +114,12 @@ module AylienNewsApi
106
114
  def ==(o)
107
115
  return true if self.equal?(o)
108
116
  self.class == o.class &&
117
+ code == o.code &&
118
+ detail == o.detail &&
109
119
  id == o.id &&
110
120
  links == o.links &&
111
121
  status == o.status &&
112
- code == o.code &&
113
- title == o.title &&
114
- detail == o.detail
122
+ title == o.title
115
123
  end
116
124
 
117
125
  # @see the `==` method
@@ -121,9 +129,16 @@ module AylienNewsApi
121
129
  end
122
130
 
123
131
  # Calculates hash code according to all attributes.
124
- # @return [Fixnum] Hash code
132
+ # @return [Integer] Hash code
125
133
  def hash
126
- [id, links, status, code, title, detail].hash
134
+ [code, detail, id, links, status, title].hash
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def self.build_from_hash(attributes)
141
+ new.build_from_hash(attributes)
127
142
  end
128
143
 
129
144
  # Builds the object from hash
@@ -131,12 +146,12 @@ module AylienNewsApi
131
146
  # @return [Object] Returns the model itself
132
147
  def build_from_hash(attributes)
133
148
  return nil unless attributes.is_a?(Hash)
134
- self.class.api_types.each_pair do |key, type|
135
- if type =~ /^Array<(.*)>/i
136
- # check to ensure the input is an array given that the the attribute
149
+ self.class.openapi_types.each_pair do |key, type|
150
+ if type =~ /\AArray<(.*)>/i
151
+ # check to ensure the input is an array given that the attribute
137
152
  # is documented as an array but the input is not
138
153
  if attributes[self.class.attribute_map[key]].is_a?(Array)
139
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
154
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
140
155
  end
141
156
  elsif !attributes[self.class.attribute_map[key]].nil?
142
157
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -162,8 +177,8 @@ module AylienNewsApi
162
177
  value.to_i
163
178
  when :Float
164
179
  value.to_f
165
- when :BOOLEAN
166
- if value.to_s =~ /^(true|t|yes|y|1)$/i
180
+ when :Boolean
181
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
167
182
  true
168
183
  else
169
184
  false
@@ -174,7 +189,7 @@ module AylienNewsApi
174
189
  when /\AArray<(?<inner_type>.+)>\z/
175
190
  inner_type = Regexp.last_match[:inner_type]
176
191
  value.map { |v| _deserialize(inner_type, v) }
177
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
192
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
178
193
  k_type = Regexp.last_match[:k_type]
179
194
  v_type = Regexp.last_match[:v_type]
180
195
  {}.tap do |hash|
@@ -183,8 +198,7 @@ module AylienNewsApi
183
198
  end
184
199
  end
185
200
  else # model
186
- temp_model = AylienNewsApi.const_get(type).new
187
- temp_model.build_from_hash(value)
201
+ AylienNewsApi.const_get(type).build_from_hash(value)
188
202
  end
189
203
  end
190
204
 
@@ -206,7 +220,11 @@ module AylienNewsApi
206
220
  hash = {}
207
221
  self.class.attribute_map.each_pair do |attr, param|
208
222
  value = self.send(attr)
209
- next if value.nil?
223
+ if value.nil?
224
+ is_nullable = self.class.openapi_nullable.include?(attr)
225
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
226
+ end
227
+
210
228
  hash[param] = _to_hash(value)
211
229
  end
212
230
  hash
@@ -218,7 +236,7 @@ module AylienNewsApi
218
236
  # @return [Hash] Returns the value in the form of hash
219
237
  def _to_hash(value)
220
238
  if value.is_a?(Array)
221
- value.compact.map{ |v| _to_hash(v) }
239
+ value.compact.map { |v| _to_hash(v) }
222
240
  elsif value.is_a?(Hash)
223
241
  {}.tap do |hash|
224
242
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -229,7 +247,5 @@ module AylienNewsApi
229
247
  value
230
248
  end
231
249
  end
232
-
233
250
  end
234
-
235
251
  end