aylien_news_api 0.4.0 → 4.1.1

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 (160) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +7 -1
  3. data/README.md +117 -4
  4. data/Rakefile +10 -0
  5. data/aylien_news_api.gemspec +20 -28
  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 +1299 -826
  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 +11 -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 +18 -4
  26. data/docs/MediaFormat.md +16 -0
  27. data/docs/MediaType.md +16 -0
  28. data/docs/Rank.md +12 -1
  29. data/docs/Rankings.md +9 -0
  30. data/docs/RelatedStories.md +18 -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 -8
  40. data/docs/Stories.md +17 -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/docs/Warning.md +21 -0
  53. data/git_push.sh +58 -0
  54. data/lib/aylien_news_api.rb +22 -14
  55. data/lib/aylien_news_api/api/default_api.rb +2407 -1520
  56. data/lib/aylien_news_api/api_client.rb +137 -111
  57. data/lib/aylien_news_api/api_error.rb +37 -18
  58. data/lib/aylien_news_api/configuration.rb +74 -36
  59. data/lib/aylien_news_api/models/author.rb +66 -50
  60. data/lib/aylien_news_api/models/autocomplete.rb +52 -36
  61. data/lib/aylien_news_api/models/autocompletes.rb +51 -35
  62. data/lib/aylien_news_api/models/category.rb +85 -94
  63. data/lib/aylien_news_api/models/category_links.rb +63 -47
  64. data/lib/aylien_news_api/models/category_taxonomy.rb +36 -0
  65. data/lib/aylien_news_api/models/cluster.rb +265 -0
  66. data/lib/aylien_news_api/models/clusters.rb +229 -0
  67. data/lib/aylien_news_api/models/coverages.rb +76 -72
  68. data/lib/aylien_news_api/models/entities.rb +64 -48
  69. data/lib/aylien_news_api/models/entity.rb +93 -79
  70. data/lib/aylien_news_api/models/entity_links.rb +51 -35
  71. data/lib/aylien_news_api/models/error.rb +76 -60
  72. data/lib/aylien_news_api/models/error_links.rb +62 -37
  73. data/lib/aylien_news_api/models/errors.rb +51 -35
  74. data/lib/aylien_news_api/models/histogram_interval.rb +52 -36
  75. data/lib/aylien_news_api/models/histograms.rb +96 -60
  76. data/lib/aylien_news_api/models/location.rb +67 -51
  77. data/lib/aylien_news_api/models/media.rb +83 -114
  78. data/lib/aylien_news_api/models/media_format.rb +44 -0
  79. data/lib/aylien_news_api/models/media_type.rb +36 -0
  80. data/lib/aylien_news_api/models/rank.rb +64 -48
  81. data/lib/aylien_news_api/models/rankings.rb +51 -35
  82. data/lib/aylien_news_api/models/related_stories.rb +84 -60
  83. data/lib/aylien_news_api/models/representative_story.rb +237 -0
  84. data/lib/aylien_news_api/models/scope.rb +73 -91
  85. data/lib/aylien_news_api/models/scope_level.rb +37 -0
  86. data/lib/aylien_news_api/models/sentiment.rb +63 -82
  87. data/lib/aylien_news_api/models/sentiment_polarity.rb +37 -0
  88. data/lib/aylien_news_api/models/sentiments.rb +62 -48
  89. data/lib/aylien_news_api/models/share_count.rb +52 -36
  90. data/lib/aylien_news_api/models/share_counts.rb +54 -38
  91. data/lib/aylien_news_api/models/source.rb +111 -96
  92. data/lib/aylien_news_api/models/stories.rb +86 -50
  93. data/lib/aylien_news_api/models/story.rb +188 -158
  94. data/lib/aylien_news_api/models/story_cluster.rb +68 -52
  95. data/lib/aylien_news_api/models/story_links.rb +70 -44
  96. data/lib/aylien_news_api/models/story_translation.rb +217 -0
  97. data/lib/aylien_news_api/models/story_translations.rb +207 -0
  98. data/lib/aylien_news_api/models/story_translations_en.rb +227 -0
  99. data/lib/aylien_news_api/models/summary.rb +51 -35
  100. data/lib/aylien_news_api/models/time_series.rb +63 -47
  101. data/lib/aylien_news_api/models/time_series_list.rb +72 -56
  102. data/lib/aylien_news_api/models/trend.rb +63 -47
  103. data/lib/aylien_news_api/models/trends.rb +77 -41
  104. data/lib/aylien_news_api/models/warning.rb +226 -0
  105. data/lib/aylien_news_api/version.rb +12 -14
  106. data/spec/api/default_api_spec.rb +620 -284
  107. data/spec/api_client_spec.rb +43 -161
  108. data/spec/configuration_spec.rb +22 -19
  109. data/spec/models/author_spec.rb +21 -34
  110. data/spec/models/autocomplete_spec.rb +17 -26
  111. data/spec/models/autocompletes_spec.rb +16 -21
  112. data/spec/models/category_links_spec.rb +19 -28
  113. data/spec/models/category_spec.rb +31 -50
  114. data/spec/models/category_taxonomy_spec.rb +35 -0
  115. data/spec/models/cluster_spec.rb +77 -0
  116. data/spec/models/clusters_spec.rb +53 -0
  117. data/spec/models/coverages_spec.rb +24 -45
  118. data/spec/models/entities_spec.rb +19 -28
  119. data/spec/models/entity_links_spec.rb +16 -21
  120. data/spec/models/entity_spec.rb +25 -46
  121. data/spec/models/error_links_spec.rb +22 -21
  122. data/spec/models/error_spec.rb +27 -52
  123. data/spec/models/errors_spec.rb +16 -21
  124. data/spec/models/histogram_interval_spec.rb +17 -26
  125. data/spec/models/histograms_spec.rb +36 -45
  126. data/spec/models/location_spec.rb +21 -34
  127. data/spec/models/media_format_spec.rb +35 -0
  128. data/spec/models/media_spec.rb +41 -26
  129. data/spec/models/media_type_spec.rb +35 -0
  130. data/spec/models/rank_spec.rb +20 -21
  131. data/spec/models/rankings_spec.rb +15 -16
  132. data/spec/models/related_stories_spec.rb +33 -38
  133. data/spec/models/representative_story_spec.rb +59 -0
  134. data/spec/models/scope_level_spec.rb +35 -0
  135. data/spec/models/scope_spec.rb +23 -40
  136. data/spec/models/sentiment_polarity_spec.rb +35 -0
  137. data/spec/models/sentiment_spec.rb +17 -26
  138. data/spec/models/sentiments_spec.rb +19 -28
  139. data/spec/models/share_count_spec.rb +17 -26
  140. data/spec/models/share_counts_spec.rb +19 -36
  141. data/spec/models/source_spec.rb +54 -49
  142. data/spec/models/stories_spec.rb +32 -33
  143. data/spec/models/story_cluster_spec.rb +23 -44
  144. data/spec/models/story_links_spec.rb +25 -32
  145. data/spec/models/story_spec.rb +65 -134
  146. data/spec/models/story_translation_spec.rb +47 -0
  147. data/spec/models/story_translations_en_spec.rb +53 -0
  148. data/spec/models/story_translations_spec.rb +41 -0
  149. data/spec/models/summary_spec.rb +16 -21
  150. data/spec/models/time_series_list_spec.rb +22 -39
  151. data/spec/models/time_series_spec.rb +19 -28
  152. data/spec/models/trend_spec.rb +19 -28
  153. data/spec/models/trends_spec.rb +30 -27
  154. data/spec/models/warning_spec.rb +53 -0
  155. data/spec/spec_helper.rb +11 -13
  156. metadata +91 -192
  157. data/Gemfile.lock +0 -65
  158. data/LICENSE +0 -13
  159. data/aylien_news_api-0.2.0.gem +0 -0
  160. data/aylien_news_api-0.3.0.gem +0 -0
@@ -1,83 +1,91 @@
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 Location
20
- # The country code of the location. It supports [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes.
17
+ # The city of the location
18
+ attr_accessor :city
19
+
20
+ # The country code of the location. It supports [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes.
21
21
  attr_accessor :country
22
22
 
23
23
  # The state of the location
24
24
  attr_accessor :state
25
25
 
26
- # The city of the location
27
- attr_accessor :city
28
-
29
-
30
26
  # Attribute mapping from ruby-style variable name to JSON key.
31
27
  def self.attribute_map
32
28
  {
29
+ :'city' => :'city',
33
30
  :'country' => :'country',
34
- :'state' => :'state',
35
- :'city' => :'city'
31
+ :'state' => :'state'
36
32
  }
37
33
  end
38
34
 
39
35
  # Attribute type mapping.
40
- def self.api_types
36
+ def self.openapi_types
41
37
  {
38
+ :'city' => :'String',
42
39
  :'country' => :'String',
43
- :'state' => :'String',
44
- :'city' => :'String'
40
+ :'state' => :'String'
45
41
  }
46
42
  end
47
43
 
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
48
50
  # Initializes the object
49
51
  # @param [Hash] attributes Model attributes in the form of hash
50
52
  def initialize(attributes = {})
51
- return unless attributes.is_a?(Hash)
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::Location` initialize method"
55
+ end
52
56
 
53
- # convert string to symbol for hash key
54
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
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 `AylienNewsApi::Location`. 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
+ }
55
64
 
56
- if attributes.has_key?(:'country')
57
- self.country = attributes[:'country']
65
+ if attributes.key?(:'city')
66
+ self.city = attributes[:'city']
58
67
  end
59
68
 
60
- if attributes.has_key?(:'state')
61
- self.state = attributes[:'state']
69
+ if attributes.key?(:'country')
70
+ self.country = attributes[:'country']
62
71
  end
63
72
 
64
- if attributes.has_key?(:'city')
65
- self.city = attributes[:'city']
73
+ if attributes.key?(:'state')
74
+ self.state = attributes[:'state']
66
75
  end
67
-
68
76
  end
69
77
 
70
78
  # Show invalid properties with the reasons. Usually used together with valid?
71
- # @return Array for valid properies with the reasons
79
+ # @return Array for valid properties with the reasons
72
80
  def list_invalid_properties
73
81
  invalid_properties = Array.new
74
- return invalid_properties
82
+ invalid_properties
75
83
  end
76
84
 
77
85
  # Check to see if the all the properties in the model are valid
78
86
  # @return true if the model is valid
79
87
  def valid?
80
- return true
88
+ true
81
89
  end
82
90
 
83
91
  # Checks equality by comparing each attribute.
@@ -85,9 +93,9 @@ module AylienNewsApi
85
93
  def ==(o)
86
94
  return true if self.equal?(o)
87
95
  self.class == o.class &&
96
+ city == o.city &&
88
97
  country == o.country &&
89
- state == o.state &&
90
- city == o.city
98
+ state == o.state
91
99
  end
92
100
 
93
101
  # @see the `==` method
@@ -97,9 +105,16 @@ module AylienNewsApi
97
105
  end
98
106
 
99
107
  # Calculates hash code according to all attributes.
100
- # @return [Fixnum] Hash code
108
+ # @return [Integer] Hash code
101
109
  def hash
102
- [country, state, city].hash
110
+ [city, country, state].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)
103
118
  end
104
119
 
105
120
  # Builds the object from hash
@@ -107,12 +122,12 @@ module AylienNewsApi
107
122
  # @return [Object] Returns the model itself
108
123
  def build_from_hash(attributes)
109
124
  return nil unless attributes.is_a?(Hash)
110
- self.class.api_types.each_pair do |key, type|
125
+ self.class.openapi_types.each_pair do |key, type|
111
126
  if type =~ /\AArray<(.*)>/i
112
- # check to ensure the input is an array given that the the attribute
127
+ # check to ensure the input is an array given that the attribute
113
128
  # is documented as an array but the input is not
114
129
  if attributes[self.class.attribute_map[key]].is_a?(Array)
115
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
116
131
  end
117
132
  elsif !attributes[self.class.attribute_map[key]].nil?
118
133
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -138,7 +153,7 @@ module AylienNewsApi
138
153
  value.to_i
139
154
  when :Float
140
155
  value.to_f
141
- when :BOOLEAN
156
+ when :Boolean
142
157
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
143
158
  true
144
159
  else
@@ -159,8 +174,7 @@ module AylienNewsApi
159
174
  end
160
175
  end
161
176
  else # model
162
- temp_model = AylienNewsApi.const_get(type).new
163
- temp_model.build_from_hash(value)
177
+ AylienNewsApi.const_get(type).build_from_hash(value)
164
178
  end
165
179
  end
166
180
 
@@ -182,7 +196,11 @@ module AylienNewsApi
182
196
  hash = {}
183
197
  self.class.attribute_map.each_pair do |attr, param|
184
198
  value = self.send(attr)
185
- next if value.nil?
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
+
186
204
  hash[param] = _to_hash(value)
187
205
  end
188
206
  hash
@@ -194,7 +212,7 @@ module AylienNewsApi
194
212
  # @return [Hash] Returns the value in the form of hash
195
213
  def _to_hash(value)
196
214
  if value.is_a?(Array)
197
- value.compact.map{ |v| _to_hash(v) }
215
+ value.compact.map { |v| _to_hash(v) }
198
216
  elsif value.is_a?(Hash)
199
217
  {}.tap do |hash|
200
218
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -205,7 +223,5 @@ module AylienNewsApi
205
223
  value
206
224
  end
207
225
  end
208
-
209
226
  end
210
-
211
227
  end
@@ -1,155 +1,116 @@
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
14
3
 
15
- require 'date'
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.
16
5
 
17
- module AylienNewsApi
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
18
10
 
19
- class Media
20
- # The type of media
21
- attr_accessor :type
11
+ =end
22
12
 
23
- # A URL which points to the media file
24
- attr_accessor :url
25
-
26
- # The format of media
27
- attr_accessor :format
13
+ require 'date'
28
14
 
15
+ module AylienNewsApi
16
+ class Media
29
17
  # The content length of media
30
18
  attr_accessor :content_length
31
19
 
32
- # The width of media
33
- attr_accessor :width
20
+ attr_accessor :format
34
21
 
35
22
  # The height of media
36
23
  attr_accessor :height
37
24
 
38
- class EnumAttributeValidator
39
- attr_reader :datatype
40
- attr_reader :allowable_values
41
-
42
- def initialize(datatype, allowable_values)
43
- @allowable_values = allowable_values.map do |value|
44
- case datatype.to_s
45
- when /Integer/i
46
- value.to_i
47
- when /Float/i
48
- value.to_f
49
- else
50
- value
51
- end
52
- end
53
- end
25
+ attr_accessor :type
54
26
 
55
- def valid?(value)
56
- !value || allowable_values.include?(value)
57
- end
58
- end
27
+ # A URL which points to the media file
28
+ attr_accessor :url
29
+
30
+ # The width of media
31
+ attr_accessor :width
59
32
 
60
33
  # Attribute mapping from ruby-style variable name to JSON key.
61
34
  def self.attribute_map
62
35
  {
36
+ :'content_length' => :'content_length',
37
+ :'format' => :'format',
38
+ :'height' => :'height',
63
39
  :'type' => :'type',
64
40
  :'url' => :'url',
65
- :'format' => :'format',
66
- :'content_length' => :'content_length',
67
- :'width' => :'width',
68
- :'height' => :'height'
41
+ :'width' => :'width'
69
42
  }
70
43
  end
71
44
 
72
45
  # Attribute type mapping.
73
- def self.api_types
46
+ def self.openapi_types
74
47
  {
75
- :'type' => :'String',
76
- :'url' => :'String',
77
- :'format' => :'String',
78
48
  :'content_length' => :'Integer',
79
- :'width' => :'Integer',
80
- :'height' => :'Integer'
49
+ :'format' => :'MediaFormat',
50
+ :'height' => :'Integer',
51
+ :'type' => :'MediaType',
52
+ :'url' => :'String',
53
+ :'width' => :'Integer'
81
54
  }
82
55
  end
83
56
 
57
+ # List of attributes with nullable: true
58
+ def self.openapi_nullable
59
+ Set.new([
60
+ ])
61
+ end
62
+
84
63
  # Initializes the object
85
64
  # @param [Hash] attributes Model attributes in the form of hash
86
65
  def initialize(attributes = {})
87
- return unless attributes.is_a?(Hash)
88
-
89
- # convert string to symbol for hash key
90
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
91
-
92
- if attributes.has_key?(:'type')
93
- self.type = attributes[:'type']
66
+ if (!attributes.is_a?(Hash))
67
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AylienNewsApi::Media` initialize method"
94
68
  end
95
69
 
96
- if attributes.has_key?(:'url')
97
- self.url = attributes[:'url']
70
+ # check to see if the attribute exists and convert string to symbol for hash key
71
+ attributes = attributes.each_with_object({}) { |(k, v), h|
72
+ if (!self.class.attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AylienNewsApi::Media`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
74
+ end
75
+ h[k.to_sym] = v
76
+ }
77
+
78
+ if attributes.key?(:'content_length')
79
+ self.content_length = attributes[:'content_length']
98
80
  end
99
81
 
100
- if attributes.has_key?(:'format')
82
+ if attributes.key?(:'format')
101
83
  self.format = attributes[:'format']
102
84
  end
103
85
 
104
- if attributes.has_key?(:'content_length')
105
- self.content_length = attributes[:'content_length']
86
+ if attributes.key?(:'height')
87
+ self.height = attributes[:'height']
106
88
  end
107
89
 
108
- if attributes.has_key?(:'width')
109
- self.width = attributes[:'width']
90
+ if attributes.key?(:'type')
91
+ self.type = attributes[:'type']
110
92
  end
111
93
 
112
- if attributes.has_key?(:'height')
113
- self.height = attributes[:'height']
94
+ if attributes.key?(:'url')
95
+ self.url = attributes[:'url']
114
96
  end
115
97
 
98
+ if attributes.key?(:'width')
99
+ self.width = attributes[:'width']
100
+ end
116
101
  end
117
102
 
118
103
  # Show invalid properties with the reasons. Usually used together with valid?
119
- # @return Array for valid properies with the reasons
104
+ # @return Array for valid properties with the reasons
120
105
  def list_invalid_properties
121
106
  invalid_properties = Array.new
122
- return invalid_properties
107
+ invalid_properties
123
108
  end
124
109
 
125
110
  # Check to see if the all the properties in the model are valid
126
111
  # @return true if the model is valid
127
112
  def valid?
128
- type_validator = EnumAttributeValidator.new('String', ["image", "video"])
129
- return false unless type_validator.valid?(@type)
130
- format_validator = EnumAttributeValidator.new('String', ["BMP", "GIF", "JPEG", "PNG", "TIFF", "PSD", "ICO", "CUR", "WEBP", "SVG"])
131
- return false unless format_validator.valid?(@format)
132
- return true
133
- end
134
-
135
- # Custom attribute writer method checking allowed values (enum).
136
- # @param [Object] type Object to be assigned
137
- def type=(type)
138
- validator = EnumAttributeValidator.new('String', ["image", "video"])
139
- unless validator.valid?(type)
140
- fail ArgumentError, "invalid value for 'type', must be one of #{validator.allowable_values}."
141
- end
142
- @type = type
143
- end
144
-
145
- # Custom attribute writer method checking allowed values (enum).
146
- # @param [Object] format Object to be assigned
147
- def format=(format)
148
- validator = EnumAttributeValidator.new('String', ["BMP", "GIF", "JPEG", "PNG", "TIFF", "PSD", "ICO", "CUR", "WEBP", "SVG"])
149
- unless validator.valid?(format)
150
- fail ArgumentError, "invalid value for 'format', must be one of #{validator.allowable_values}."
151
- end
152
- @format = format
113
+ true
153
114
  end
154
115
 
155
116
  # Checks equality by comparing each attribute.
@@ -157,12 +118,12 @@ module AylienNewsApi
157
118
  def ==(o)
158
119
  return true if self.equal?(o)
159
120
  self.class == o.class &&
121
+ content_length == o.content_length &&
122
+ format == o.format &&
123
+ height == o.height &&
160
124
  type == o.type &&
161
125
  url == o.url &&
162
- format == o.format &&
163
- content_length == o.content_length &&
164
- width == o.width &&
165
- height == o.height
126
+ width == o.width
166
127
  end
167
128
 
168
129
  # @see the `==` method
@@ -172,9 +133,16 @@ module AylienNewsApi
172
133
  end
173
134
 
174
135
  # Calculates hash code according to all attributes.
175
- # @return [Fixnum] Hash code
136
+ # @return [Integer] Hash code
176
137
  def hash
177
- [type, url, format, content_length, width, height].hash
138
+ [content_length, format, height, type, url, width].hash
139
+ end
140
+
141
+ # Builds the object from hash
142
+ # @param [Hash] attributes Model attributes in the form of hash
143
+ # @return [Object] Returns the model itself
144
+ def self.build_from_hash(attributes)
145
+ new.build_from_hash(attributes)
178
146
  end
179
147
 
180
148
  # Builds the object from hash
@@ -182,12 +150,12 @@ module AylienNewsApi
182
150
  # @return [Object] Returns the model itself
183
151
  def build_from_hash(attributes)
184
152
  return nil unless attributes.is_a?(Hash)
185
- self.class.api_types.each_pair do |key, type|
153
+ self.class.openapi_types.each_pair do |key, type|
186
154
  if type =~ /\AArray<(.*)>/i
187
- # check to ensure the input is an array given that the the attribute
155
+ # check to ensure the input is an array given that the attribute
188
156
  # is documented as an array but the input is not
189
157
  if attributes[self.class.attribute_map[key]].is_a?(Array)
190
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
158
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
191
159
  end
192
160
  elsif !attributes[self.class.attribute_map[key]].nil?
193
161
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -213,7 +181,7 @@ module AylienNewsApi
213
181
  value.to_i
214
182
  when :Float
215
183
  value.to_f
216
- when :BOOLEAN
184
+ when :Boolean
217
185
  if value.to_s =~ /\A(true|t|yes|y|1)\z/i
218
186
  true
219
187
  else
@@ -234,8 +202,7 @@ module AylienNewsApi
234
202
  end
235
203
  end
236
204
  else # model
237
- temp_model = AylienNewsApi.const_get(type).new
238
- temp_model.build_from_hash(value)
205
+ AylienNewsApi.const_get(type).build_from_hash(value)
239
206
  end
240
207
  end
241
208
 
@@ -257,7 +224,11 @@ module AylienNewsApi
257
224
  hash = {}
258
225
  self.class.attribute_map.each_pair do |attr, param|
259
226
  value = self.send(attr)
260
- next if value.nil?
227
+ if value.nil?
228
+ is_nullable = self.class.openapi_nullable.include?(attr)
229
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
230
+ end
231
+
261
232
  hash[param] = _to_hash(value)
262
233
  end
263
234
  hash
@@ -269,7 +240,7 @@ module AylienNewsApi
269
240
  # @return [Hash] Returns the value in the form of hash
270
241
  def _to_hash(value)
271
242
  if value.is_a?(Array)
272
- value.compact.map{ |v| _to_hash(v) }
243
+ value.compact.map { |v| _to_hash(v) }
273
244
  elsif value.is_a?(Hash)
274
245
  {}.tap do |hash|
275
246
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -280,7 +251,5 @@ module AylienNewsApi
280
251
  value
281
252
  end
282
253
  end
283
-
284
254
  end
285
-
286
255
  end