forked from loafle/openapi-generator-original
		
	[ruby] Fix generation when generateAliasAsModel is enabled (#7419)
This commit is contained in:
		
							parent
							
								
									49760f7a34
								
							
						
					
					
						commit
						7b1563326a
					
				
							
								
								
									
										12
									
								
								bin/configs/ruby-generate-alias-as-model.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								bin/configs/ruby-generate-alias-as-model.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| generatorName: ruby | ||||
| outputDir: samples/openapi3/client/features/generate-alias-as-model/ruby-client/ | ||||
| library: typhoeus | ||||
| inputSpec: modules/openapi-generator/src/test/resources/3_0/features/generate-alias-as-model.yaml | ||||
| templateDir: modules/openapi-generator/src/main/resources/ruby-client | ||||
| additionalProperties: | ||||
|   gemVersion: 1.0.0 | ||||
|   moduleName: Petstore | ||||
|   gemName: petstore | ||||
|   skipFormModel: "true" | ||||
| strictSpecBehavior: false | ||||
| generateAliasAsModel: true | ||||
| @ -34,6 +34,9 @@ sidebar_label: ruby-on-rails | ||||
| 
 | ||||
| | Type/Alias | Instantiated By | | ||||
| | ---------- | --------------- | | ||||
| |array|Array| | ||||
| |map|Hash| | ||||
| |set|Set| | ||||
| 
 | ||||
| 
 | ||||
| ## LANGUAGE PRIMITIVES | ||||
|  | ||||
| @ -33,6 +33,9 @@ sidebar_label: ruby-sinatra | ||||
| 
 | ||||
| | Type/Alias | Instantiated By | | ||||
| | ---------- | --------------- | | ||||
| |array|Array| | ||||
| |map|Hash| | ||||
| |set|Set| | ||||
| 
 | ||||
| 
 | ||||
| ## LANGUAGE PRIMITIVES | ||||
|  | ||||
| @ -35,6 +35,9 @@ sidebar_label: ruby | ||||
| 
 | ||||
| | Type/Alias | Instantiated By | | ||||
| | ---------- | --------------- | | ||||
| |array|Array| | ||||
| |map|Hash| | ||||
| |set|Set| | ||||
| 
 | ||||
| 
 | ||||
| ## LANGUAGE PRIMITIVES | ||||
|  | ||||
| @ -86,6 +86,10 @@ abstract public class AbstractRubyCodegen extends DefaultCodegen implements Code | ||||
|         typeMapping.put("ByteArray", "String"); | ||||
|         typeMapping.put("UUID", "String"); | ||||
|         typeMapping.put("URI", "String"); | ||||
| 
 | ||||
|         instantiationTypes.put("map", "Hash"); | ||||
|         instantiationTypes.put("array", "Array"); | ||||
|         instantiationTypes.put("set", "Set"); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
| @ -118,6 +122,22 @@ abstract public class AbstractRubyCodegen extends DefaultCodegen implements Code | ||||
|         return super.getTypeDeclaration(schema); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toInstantiationType(Schema schema) { | ||||
|         if (ModelUtils.isMapSchema(schema)) { | ||||
|             return instantiationTypes.get("map"); | ||||
|         } else if (ModelUtils.isArraySchema(schema)) { | ||||
|             String parentType; | ||||
|             if (ModelUtils.isSet(schema)) { | ||||
|                 parentType = "set"; | ||||
|             } else { | ||||
|                 parentType = "array"; | ||||
|             } | ||||
|             return instantiationTypes.get(parentType); | ||||
|         } | ||||
|         return super.toInstantiationType(schema); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toDefaultValue(Schema p) { | ||||
|         if (ModelUtils.isIntegerSchema(p) || ModelUtils.isNumberSchema(p) || ModelUtils.isBooleanSchema(p)) { | ||||
|  | ||||
| @ -0,0 +1,65 @@ | ||||
| openapi: 3.0.0 | ||||
| info: | ||||
|   description: This specification shows how to generate aliases to maps and arrays as models. | ||||
|   version: 1.0.0 | ||||
|   title: OpenAPI Extension generating aliases to maps and arrays as models | ||||
|   license: | ||||
|     name: Apache-2.0 | ||||
|     url: 'https://www.apache.org/licenses/LICENSE-2.0.html' | ||||
| tags: | ||||
|   - name: usage | ||||
|     description: Show usage of x-generate-alias-as-model extension | ||||
| servers: | ||||
|   - url: 'http://petstore.swagger.io/v2' | ||||
|     description: petstore server | ||||
| paths: | ||||
|   /map: | ||||
|     get: | ||||
|       tags: | ||||
|         - usage | ||||
|       summary: Use alias to map | ||||
|       description: Use alias to map | ||||
|       operationId: map | ||||
|       requestBody: | ||||
|         content: | ||||
|           "application/json": | ||||
|             schema: | ||||
|               $ref: "#/components/schemas/MapAlias" | ||||
|       responses: | ||||
|         '200': | ||||
|           description: successful operation | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: object | ||||
|   /array: | ||||
|     get: | ||||
|       tags: | ||||
|         - usage | ||||
|       summary: Use alias to array | ||||
|       description: Use alias to array | ||||
|       operationId: array | ||||
|       requestBody: | ||||
|         content: | ||||
|           "application/json": | ||||
|             schema: | ||||
|               $ref: "#/components/schemas/ArrayAlias" | ||||
|       responses: | ||||
|         '200': | ||||
|           description: successful operation | ||||
|           content: | ||||
|             application/json: | ||||
|               schema: | ||||
|                 type: object | ||||
| 
 | ||||
| components: | ||||
|   schemas: | ||||
|     ArrayAlias: | ||||
|       type: array | ||||
|       items: | ||||
|         type: integer | ||||
| 
 | ||||
|     MapAlias: | ||||
|       type: object | ||||
|       additionalProperties: | ||||
|         type: string | ||||
							
								
								
									
										39
									
								
								samples/openapi3/client/features/generate-alias-as-model/ruby-client/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								samples/openapi3/client/features/generate-alias-as-model/ruby-client/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| # Generated by: https://openapi-generator.tech | ||||
| # | ||||
| 
 | ||||
| *.gem | ||||
| *.rbc | ||||
| /.config | ||||
| /coverage/ | ||||
| /InstalledFiles | ||||
| /pkg/ | ||||
| /spec/reports/ | ||||
| /spec/examples.txt | ||||
| /test/tmp/ | ||||
| /test/version_tmp/ | ||||
| /tmp/ | ||||
| 
 | ||||
| ## Specific to RubyMotion: | ||||
| .dat* | ||||
| .repl_history | ||||
| build/ | ||||
| 
 | ||||
| ## Documentation cache and generated files: | ||||
| /.yardoc/ | ||||
| /_yardoc/ | ||||
| /doc/ | ||||
| /rdoc/ | ||||
| 
 | ||||
| ## Environment normalization: | ||||
| /.bundle/ | ||||
| /vendor/bundle | ||||
| /lib/bundler/man/ | ||||
| 
 | ||||
| # for a library or gem, you might want to ignore these files since the code is | ||||
| # intended to run in multiple environments; otherwise, check them in: | ||||
| # Gemfile.lock | ||||
| # .ruby-version | ||||
| # .ruby-gemset | ||||
| 
 | ||||
| # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: | ||||
| .rvmrc | ||||
| @ -0,0 +1,23 @@ | ||||
| # OpenAPI Generator Ignore | ||||
| # Generated by openapi-generator https://github.com/openapitools/openapi-generator | ||||
| 
 | ||||
| # Use this file to prevent files from being overwritten by the generator. | ||||
| # The patterns follow closely to .gitignore or .dockerignore. | ||||
| 
 | ||||
| # As an example, the C# client generator defines ApiClient.cs. | ||||
| # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: | ||||
| #ApiClient.cs | ||||
| 
 | ||||
| # You can match any string of characters against a directory, file or extension with a single asterisk (*): | ||||
| #foo/*/qux | ||||
| # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux | ||||
| 
 | ||||
| # You can recursively match patterns against a directory, file or extension with a double asterisk (**): | ||||
| #foo/**/qux | ||||
| # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux | ||||
| 
 | ||||
| # You can also negate patterns with an exclamation (!). | ||||
| # For example, you can ignore all files in a docs folder with the file extension .md: | ||||
| #docs/*.md | ||||
| # Then explicitly reverse the ignore rule for a single file: | ||||
| #!docs/README.md | ||||
| @ -0,0 +1,24 @@ | ||||
| .gitignore | ||||
| .rspec | ||||
| .rubocop.yml | ||||
| .travis.yml | ||||
| Gemfile | ||||
| README.md | ||||
| Rakefile | ||||
| docs/ArrayAlias.md | ||||
| docs/MapAlias.md | ||||
| docs/UsageApi.md | ||||
| git_push.sh | ||||
| lib/petstore.rb | ||||
| lib/petstore/api/usage_api.rb | ||||
| lib/petstore/api_client.rb | ||||
| lib/petstore/api_error.rb | ||||
| lib/petstore/configuration.rb | ||||
| lib/petstore/configuration.rb | ||||
| lib/petstore/models/array_alias.rb | ||||
| lib/petstore/models/map_alias.rb | ||||
| lib/petstore/version.rb | ||||
| petstore.gemspec | ||||
| spec/api_client_spec.rb | ||||
| spec/configuration_spec.rb | ||||
| spec/spec_helper.rb | ||||
| @ -0,0 +1 @@ | ||||
| 5.0.0-SNAPSHOT | ||||
| @ -0,0 +1,2 @@ | ||||
| --color | ||||
| --require spec_helper | ||||
| @ -0,0 +1,148 @@ | ||||
| # This file is based on https://github.com/rails/rails/blob/master/.rubocop.yml (MIT license) | ||||
| # Automatically generated by OpenAPI Generator (https://openapi-generator.tech) | ||||
| AllCops: | ||||
|   TargetRubyVersion: 2.4 | ||||
|   # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop | ||||
|   # to ignore them, so only the ones explicitly set in this file are enabled. | ||||
|   DisabledByDefault: true | ||||
|   Exclude: | ||||
|     - '**/templates/**/*' | ||||
|     - '**/vendor/**/*' | ||||
|     - 'actionpack/lib/action_dispatch/journey/parser.rb' | ||||
| 
 | ||||
| # Prefer &&/|| over and/or. | ||||
| Style/AndOr: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Align `when` with `case`. | ||||
| Layout/CaseIndentation: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Align comments with method definitions. | ||||
| Layout/CommentIndentation: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/ElseAlignment: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/EmptyLineAfterMagicComment: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # In a regular class definition, no empty lines around the body. | ||||
| Layout/EmptyLinesAroundClassBody: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # In a regular method definition, no empty lines around the body. | ||||
| Layout/EmptyLinesAroundMethodBody: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # In a regular module definition, no empty lines around the body. | ||||
| Layout/EmptyLinesAroundModuleBody: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/FirstArgumentIndentation: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }. | ||||
| Style/HashSyntax: | ||||
|   Enabled: false | ||||
| 
 | ||||
| # Method definitions after `private` or `protected` isolated calls need one | ||||
| # extra level of indentation. | ||||
| Layout/IndentationConsistency: | ||||
|   Enabled: true | ||||
|   EnforcedStyle: indented_internal_methods | ||||
| 
 | ||||
| # Two spaces, no tabs (for indentation). | ||||
| Layout/IndentationWidth: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/LeadingCommentSpace: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceAfterColon: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceAfterComma: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceAroundEqualsInParameterDefault: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceAroundKeyword: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceAroundOperators: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceBeforeComma: | ||||
|     Enabled: true | ||||
| 
 | ||||
| Layout/SpaceBeforeFirstArg: | ||||
|     Enabled: true | ||||
| 
 | ||||
| Style/DefWithParentheses: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Defining a method with parameters needs parentheses. | ||||
| Style/MethodDefParentheses: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Style/FrozenStringLiteralComment: | ||||
|   Enabled: false | ||||
|   EnforcedStyle: always | ||||
| 
 | ||||
| # Use `foo {}` not `foo{}`. | ||||
| Layout/SpaceBeforeBlockBraces: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Use `foo { bar }` not `foo {bar}`. | ||||
| Layout/SpaceInsideBlockBraces: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Use `{ a: 1 }` not `{a:1}`. | ||||
| Layout/SpaceInsideHashLiteralBraces: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Layout/SpaceInsideParens: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Check quotes usage according to lint rule below. | ||||
| #Style/StringLiterals: | ||||
| #  Enabled: true | ||||
| #  EnforcedStyle: single_quotes | ||||
| 
 | ||||
| # Detect hard tabs, no hard tabs. | ||||
| Layout/IndentationStyle: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Blank lines should not have any spaces. | ||||
| Layout/TrailingEmptyLines: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # No trailing whitespace. | ||||
| Layout/TrailingWhitespace: | ||||
|   Enabled: false | ||||
| 
 | ||||
| # Use quotes for string literals when they are enough. | ||||
| Style/RedundantPercentQ: | ||||
|   Enabled: true | ||||
| 
 | ||||
| # Align `end` with the matching keyword or starting expression except for | ||||
| # assignments, where it should be aligned with the LHS. | ||||
| Layout/EndAlignment: | ||||
|   Enabled: true | ||||
|   EnforcedStyleAlignWith: variable | ||||
|   AutoCorrect: true | ||||
| 
 | ||||
| # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg. | ||||
| Lint/RequireParentheses: | ||||
|   Enabled: true | ||||
| 
 | ||||
| Style/RedundantReturn: | ||||
|   Enabled: true | ||||
|   AllowMultipleReturnValues: true | ||||
| 
 | ||||
| Style/Semicolon: | ||||
|   Enabled: true | ||||
|   AllowAsExpressionSeparator: true | ||||
| @ -0,0 +1,11 @@ | ||||
| language: ruby | ||||
| cache: bundler | ||||
| rvm: | ||||
|   - 2.3 | ||||
|   - 2.4 | ||||
|   - 2.5 | ||||
| script: | ||||
|   - bundle install --path vendor/bundle | ||||
|   - bundle exec rspec | ||||
|   - gem build petstore.gemspec | ||||
|   - gem install ./petstore-1.0.0.gem | ||||
| @ -0,0 +1,9 @@ | ||||
| source 'https://rubygems.org' | ||||
| 
 | ||||
| gemspec | ||||
| 
 | ||||
| group :development, :test do | ||||
|   gem 'rake', '~> 13.0.1' | ||||
|   gem 'pry-byebug' | ||||
|   gem 'rubocop', '~> 0.66.0' | ||||
| end | ||||
| @ -0,0 +1,93 @@ | ||||
| # petstore | ||||
| 
 | ||||
| Petstore - the Ruby gem for the OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: | ||||
| 
 | ||||
| - API version: 1.0.0 | ||||
| - Package version: 1.0.0 | ||||
| - Build package: org.openapitools.codegen.languages.RubyClientCodegen | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| ### Build a gem | ||||
| 
 | ||||
| To build the Ruby code into a gem: | ||||
| 
 | ||||
| ```shell | ||||
| gem build petstore.gemspec | ||||
| ``` | ||||
| 
 | ||||
| Then either install the gem locally: | ||||
| 
 | ||||
| ```shell | ||||
| gem install ./petstore-1.0.0.gem | ||||
| ``` | ||||
| 
 | ||||
| (for development, run `gem install --dev ./petstore-1.0.0.gem` to install the development dependencies) | ||||
| 
 | ||||
| or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/). | ||||
| 
 | ||||
| Finally add this to the Gemfile: | ||||
| 
 | ||||
|     gem 'petstore', '~> 1.0.0' | ||||
| 
 | ||||
| ### Install from Git | ||||
| 
 | ||||
| If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile: | ||||
| 
 | ||||
|     gem 'petstore', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git' | ||||
| 
 | ||||
| ### Include the Ruby code directly | ||||
| 
 | ||||
| Include the Ruby code directly using `-I` as follows: | ||||
| 
 | ||||
| ```shell | ||||
| ruby -Ilib script.rb | ||||
| ``` | ||||
| 
 | ||||
| ## Getting Started | ||||
| 
 | ||||
| Please follow the [installation](#installation) procedure and then run the following code: | ||||
| 
 | ||||
| ```ruby | ||||
| # Load the gem | ||||
| require 'petstore' | ||||
| 
 | ||||
| api_instance = Petstore::UsageApi.new | ||||
| opts = { | ||||
|   array_alias: Petstore::ArrayAlias.new # ArrayAlias |  | ||||
| } | ||||
| 
 | ||||
| begin | ||||
|   #Use alias to array | ||||
|   result = api_instance.array(opts) | ||||
|   p result | ||||
| rescue Petstore::ApiError => e | ||||
|   puts "Exception when calling UsageApi->array: #{e}" | ||||
| end | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| ## Documentation for API Endpoints | ||||
| 
 | ||||
| All URIs are relative to *http://petstore.swagger.io/v2* | ||||
| 
 | ||||
| Class | Method | HTTP request | Description | ||||
| ------------ | ------------- | ------------- | ------------- | ||||
| *Petstore::UsageApi* | [**array**](docs/UsageApi.md#array) | **GET** /array | Use alias to array | ||||
| *Petstore::UsageApi* | [**map**](docs/UsageApi.md#map) | **GET** /map | Use alias to map | ||||
| 
 | ||||
| 
 | ||||
| ## Documentation for Models | ||||
| 
 | ||||
|  - [Petstore::ArrayAlias](docs/ArrayAlias.md) | ||||
|  - [Petstore::MapAlias](docs/MapAlias.md) | ||||
| 
 | ||||
| 
 | ||||
| ## Documentation for Authorization | ||||
| 
 | ||||
|  All endpoints do not require authorization. | ||||
| 
 | ||||
| @ -0,0 +1,10 @@ | ||||
| require "bundler/gem_tasks" | ||||
| 
 | ||||
| begin | ||||
|   require 'rspec/core/rake_task' | ||||
| 
 | ||||
|   RSpec::Core::RakeTask.new(:spec) | ||||
|   task default: :spec | ||||
| rescue LoadError | ||||
|   # no rspec available | ||||
| end | ||||
| @ -0,0 +1,16 @@ | ||||
| # Petstore::ArrayAlias | ||||
| 
 | ||||
| ## Properties | ||||
| 
 | ||||
| Name | Type | Description | Notes | ||||
| ------------ | ------------- | ------------- | ------------- | ||||
| 
 | ||||
| ## Code Sample | ||||
| 
 | ||||
| ```ruby | ||||
| require 'Petstore' | ||||
| 
 | ||||
| instance = Petstore::ArrayAlias.new() | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,16 @@ | ||||
| # Petstore::MapAlias | ||||
| 
 | ||||
| ## Properties | ||||
| 
 | ||||
| Name | Type | Description | Notes | ||||
| ------------ | ------------- | ------------- | ------------- | ||||
| 
 | ||||
| ## Code Sample | ||||
| 
 | ||||
| ```ruby | ||||
| require 'Petstore' | ||||
| 
 | ||||
| instance = Petstore::MapAlias.new() | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,108 @@ | ||||
| # Petstore::UsageApi | ||||
| 
 | ||||
| All URIs are relative to *http://petstore.swagger.io/v2* | ||||
| 
 | ||||
| Method | HTTP request | Description | ||||
| ------------- | ------------- | ------------- | ||||
| [**array**](UsageApi.md#array) | **GET** /array | Use alias to array | ||||
| [**map**](UsageApi.md#map) | **GET** /map | Use alias to map | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## array | ||||
| 
 | ||||
| > Object array(opts) | ||||
| 
 | ||||
| Use alias to array | ||||
| 
 | ||||
| Use alias to array | ||||
| 
 | ||||
| ### Example | ||||
| 
 | ||||
| ```ruby | ||||
| # load the gem | ||||
| require 'petstore' | ||||
| 
 | ||||
| api_instance = Petstore::UsageApi.new | ||||
| opts = { | ||||
|   array_alias: Petstore::ArrayAlias.new # ArrayAlias |  | ||||
| } | ||||
| 
 | ||||
| begin | ||||
|   #Use alias to array | ||||
|   result = api_instance.array(opts) | ||||
|   p result | ||||
| rescue Petstore::ApiError => e | ||||
|   puts "Exception when calling UsageApi->array: #{e}" | ||||
| end | ||||
| ``` | ||||
| 
 | ||||
| ### Parameters | ||||
| 
 | ||||
| 
 | ||||
| Name | Type | Description  | Notes | ||||
| ------------- | ------------- | ------------- | ------------- | ||||
|  **array_alias** | [**ArrayAlias**](ArrayAlias.md)|  | [optional]  | ||||
| 
 | ||||
| ### Return type | ||||
| 
 | ||||
| **Object** | ||||
| 
 | ||||
| ### Authorization | ||||
| 
 | ||||
| No authorization required | ||||
| 
 | ||||
| ### HTTP request headers | ||||
| 
 | ||||
| - **Content-Type**: application/json | ||||
| - **Accept**: application/json | ||||
| 
 | ||||
| 
 | ||||
| ## map | ||||
| 
 | ||||
| > Object map(opts) | ||||
| 
 | ||||
| Use alias to map | ||||
| 
 | ||||
| Use alias to map | ||||
| 
 | ||||
| ### Example | ||||
| 
 | ||||
| ```ruby | ||||
| # load the gem | ||||
| require 'petstore' | ||||
| 
 | ||||
| api_instance = Petstore::UsageApi.new | ||||
| opts = { | ||||
|   map_alias: Petstore::MapAlias.new # MapAlias |  | ||||
| } | ||||
| 
 | ||||
| begin | ||||
|   #Use alias to map | ||||
|   result = api_instance.map(opts) | ||||
|   p result | ||||
| rescue Petstore::ApiError => e | ||||
|   puts "Exception when calling UsageApi->map: #{e}" | ||||
| end | ||||
| ``` | ||||
| 
 | ||||
| ### Parameters | ||||
| 
 | ||||
| 
 | ||||
| Name | Type | Description  | Notes | ||||
| ------------- | ------------- | ------------- | ------------- | ||||
|  **map_alias** | [**MapAlias**](MapAlias.md)|  | [optional]  | ||||
| 
 | ||||
| ### Return type | ||||
| 
 | ||||
| **Object** | ||||
| 
 | ||||
| ### Authorization | ||||
| 
 | ||||
| No authorization required | ||||
| 
 | ||||
| ### HTTP request headers | ||||
| 
 | ||||
| - **Content-Type**: application/json | ||||
| - **Accept**: application/json | ||||
| 
 | ||||
| @ -0,0 +1,58 @@ | ||||
| #!/bin/sh | ||||
| # ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ | ||||
| # | ||||
| # Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" "gitlab.com" | ||||
| 
 | ||||
| git_user_id=$1 | ||||
| git_repo_id=$2 | ||||
| release_note=$3 | ||||
| git_host=$4 | ||||
| 
 | ||||
| if [ "$git_host" = "" ]; then | ||||
|     git_host="github.com" | ||||
|     echo "[INFO] No command line input provided. Set \$git_host to $git_host" | ||||
| fi | ||||
| 
 | ||||
| if [ "$git_user_id" = "" ]; then | ||||
|     git_user_id="GIT_USER_ID" | ||||
|     echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" | ||||
| fi | ||||
| 
 | ||||
| if [ "$git_repo_id" = "" ]; then | ||||
|     git_repo_id="GIT_REPO_ID" | ||||
|     echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" | ||||
| fi | ||||
| 
 | ||||
| if [ "$release_note" = "" ]; then | ||||
|     release_note="Minor update" | ||||
|     echo "[INFO] No command line input provided. Set \$release_note to $release_note" | ||||
| fi | ||||
| 
 | ||||
| # Initialize the local directory as a Git repository | ||||
| git init | ||||
| 
 | ||||
| # Adds the files in the local repository and stages them for commit. | ||||
| git add . | ||||
| 
 | ||||
| # Commits the tracked changes and prepares them to be pushed to a remote repository. | ||||
| git commit -m "$release_note" | ||||
| 
 | ||||
| # Sets the new remote | ||||
| git_remote=`git remote` | ||||
| if [ "$git_remote" = "" ]; then # git remote not defined | ||||
| 
 | ||||
|     if [ "$GIT_TOKEN" = "" ]; then | ||||
|         echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." | ||||
|         git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git | ||||
|     else | ||||
|         git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git | ||||
|     fi | ||||
| 
 | ||||
| fi | ||||
| 
 | ||||
| git pull origin master | ||||
| 
 | ||||
| # Pushes (Forces) the changes in the local repository up to the remote repository | ||||
| echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git" | ||||
| git push origin master 2>&1 | grep -v 'To https' | ||||
| 
 | ||||
| @ -0,0 +1,42 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| # Common files | ||||
| require 'petstore/api_client' | ||||
| require 'petstore/api_error' | ||||
| require 'petstore/version' | ||||
| require 'petstore/configuration' | ||||
| 
 | ||||
| # Models | ||||
| require 'petstore/models/array_alias' | ||||
| require 'petstore/models/map_alias' | ||||
| 
 | ||||
| # APIs | ||||
| require 'petstore/api/usage_api' | ||||
| 
 | ||||
| module Petstore | ||||
|   class << self | ||||
|     # Customize default settings for the SDK using block. | ||||
|     #   Petstore.configure do |config| | ||||
|     #     config.username = "xxx" | ||||
|     #     config.password = "xxx" | ||||
|     #   end | ||||
|     # If no block given, return the default Configuration object. | ||||
|     def configure | ||||
|       if block_given? | ||||
|         yield(Configuration.default) | ||||
|       else | ||||
|         Configuration.default | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,142 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'cgi' | ||||
| 
 | ||||
| module Petstore | ||||
|   class UsageApi | ||||
|     attr_accessor :api_client | ||||
| 
 | ||||
|     def initialize(api_client = ApiClient.default) | ||||
|       @api_client = api_client | ||||
|     end | ||||
|     # Use alias to array | ||||
|     # Use alias to array | ||||
|     # @param [Hash] opts the optional parameters | ||||
|     # @option opts [ArrayAlias] :array_alias  | ||||
|     # @return [Object] | ||||
|     def array(opts = {}) | ||||
|       data, _status_code, _headers = array_with_http_info(opts) | ||||
|       data | ||||
|     end | ||||
| 
 | ||||
|     # Use alias to array | ||||
|     # Use alias to array | ||||
|     # @param [Hash] opts the optional parameters | ||||
|     # @option opts [ArrayAlias] :array_alias  | ||||
|     # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers | ||||
|     def array_with_http_info(opts = {}) | ||||
|       if @api_client.config.debugging | ||||
|         @api_client.config.logger.debug 'Calling API: UsageApi.array ...' | ||||
|       end | ||||
|       # resource path | ||||
|       local_var_path = '/array' | ||||
| 
 | ||||
|       # query parameters | ||||
|       query_params = opts[:query_params] || {} | ||||
| 
 | ||||
|       # header parameters | ||||
|       header_params = opts[:header_params] || {} | ||||
|       # HTTP header 'Accept' (if needed) | ||||
|       header_params['Accept'] = @api_client.select_header_accept(['application/json']) | ||||
|       # HTTP header 'Content-Type' | ||||
|       header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) | ||||
| 
 | ||||
|       # form parameters | ||||
|       form_params = opts[:form_params] || {} | ||||
| 
 | ||||
|       # http body (model) | ||||
|       post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'array_alias']) | ||||
| 
 | ||||
|       # return_type | ||||
|       return_type = opts[:debug_return_type] || 'Object' | ||||
| 
 | ||||
|       # auth_names | ||||
|       auth_names = opts[:debug_auth_names] || [] | ||||
| 
 | ||||
|       new_options = opts.merge( | ||||
|         :header_params => header_params, | ||||
|         :query_params => query_params, | ||||
|         :form_params => form_params, | ||||
|         :body => post_body, | ||||
|         :auth_names => auth_names, | ||||
|         :return_type => return_type | ||||
|       ) | ||||
| 
 | ||||
|       data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) | ||||
|       if @api_client.config.debugging | ||||
|         @api_client.config.logger.debug "API called: UsageApi#array\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" | ||||
|       end | ||||
|       return data, status_code, headers | ||||
|     end | ||||
| 
 | ||||
|     # Use alias to map | ||||
|     # Use alias to map | ||||
|     # @param [Hash] opts the optional parameters | ||||
|     # @option opts [MapAlias] :map_alias  | ||||
|     # @return [Object] | ||||
|     def map(opts = {}) | ||||
|       data, _status_code, _headers = map_with_http_info(opts) | ||||
|       data | ||||
|     end | ||||
| 
 | ||||
|     # Use alias to map | ||||
|     # Use alias to map | ||||
|     # @param [Hash] opts the optional parameters | ||||
|     # @option opts [MapAlias] :map_alias  | ||||
|     # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers | ||||
|     def map_with_http_info(opts = {}) | ||||
|       if @api_client.config.debugging | ||||
|         @api_client.config.logger.debug 'Calling API: UsageApi.map ...' | ||||
|       end | ||||
|       # resource path | ||||
|       local_var_path = '/map' | ||||
| 
 | ||||
|       # query parameters | ||||
|       query_params = opts[:query_params] || {} | ||||
| 
 | ||||
|       # header parameters | ||||
|       header_params = opts[:header_params] || {} | ||||
|       # HTTP header 'Accept' (if needed) | ||||
|       header_params['Accept'] = @api_client.select_header_accept(['application/json']) | ||||
|       # HTTP header 'Content-Type' | ||||
|       header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) | ||||
| 
 | ||||
|       # form parameters | ||||
|       form_params = opts[:form_params] || {} | ||||
| 
 | ||||
|       # http body (model) | ||||
|       post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'map_alias']) | ||||
| 
 | ||||
|       # return_type | ||||
|       return_type = opts[:debug_return_type] || 'Object' | ||||
| 
 | ||||
|       # auth_names | ||||
|       auth_names = opts[:debug_auth_names] || [] | ||||
| 
 | ||||
|       new_options = opts.merge( | ||||
|         :header_params => header_params, | ||||
|         :query_params => query_params, | ||||
|         :form_params => form_params, | ||||
|         :body => post_body, | ||||
|         :auth_names => auth_names, | ||||
|         :return_type => return_type | ||||
|       ) | ||||
| 
 | ||||
|       data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options) | ||||
|       if @api_client.config.debugging | ||||
|         @api_client.config.logger.debug "API called: UsageApi#map\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" | ||||
|       end | ||||
|       return data, status_code, headers | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,387 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'date' | ||||
| require 'json' | ||||
| require 'logger' | ||||
| require 'tempfile' | ||||
| require 'typhoeus' | ||||
| 
 | ||||
| module Petstore | ||||
|   class ApiClient | ||||
|     # The Configuration object holding settings to be used in the API client. | ||||
|     attr_accessor :config | ||||
| 
 | ||||
|     # Defines the headers to be used in HTTP requests of all API calls by default. | ||||
|     # | ||||
|     # @return [Hash] | ||||
|     attr_accessor :default_headers | ||||
| 
 | ||||
|     # Initializes the ApiClient | ||||
|     # @option config [Configuration] Configuration for initializing the object, default to Configuration.default | ||||
|     def initialize(config = Configuration.default) | ||||
|       @config = config | ||||
|       @user_agent = "OpenAPI-Generator/#{VERSION}/ruby" | ||||
|       @default_headers = { | ||||
|         'Content-Type' => 'application/json', | ||||
|         'User-Agent' => @user_agent | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     def self.default | ||||
|       @@default ||= ApiClient.new | ||||
|     end | ||||
| 
 | ||||
|     # Call an API with given options. | ||||
|     # | ||||
|     # @return [Array<(Object, Integer, Hash)>] an array of 3 elements: | ||||
|     #   the data deserialized from response body (could be nil), response status code and response headers. | ||||
|     def call_api(http_method, path, opts = {}) | ||||
|       request = build_request(http_method, path, opts) | ||||
|       response = request.run | ||||
| 
 | ||||
|       if @config.debugging | ||||
|         @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n" | ||||
|       end | ||||
| 
 | ||||
|       unless response.success? | ||||
|         if response.timed_out? | ||||
|           fail ApiError.new('Connection timed out') | ||||
|         elsif response.code == 0 | ||||
|           # Errors from libcurl will be made visible here | ||||
|           fail ApiError.new(:code => 0, | ||||
|                             :message => response.return_message) | ||||
|         else | ||||
|           fail ApiError.new(:code => response.code, | ||||
|                             :response_headers => response.headers, | ||||
|                             :response_body => response.body), | ||||
|                response.status_message | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       if opts[:return_type] | ||||
|         data = deserialize(response, opts[:return_type]) | ||||
|       else | ||||
|         data = nil | ||||
|       end | ||||
|       return data, response.code, response.headers | ||||
|     end | ||||
| 
 | ||||
|     # Builds the HTTP request | ||||
|     # | ||||
|     # @param [String] http_method HTTP method/verb (e.g. POST) | ||||
|     # @param [String] path URL path (e.g. /account/new) | ||||
|     # @option opts [Hash] :header_params Header parameters | ||||
|     # @option opts [Hash] :query_params Query parameters | ||||
|     # @option opts [Hash] :form_params Query parameters | ||||
|     # @option opts [Object] :body HTTP body (JSON/XML) | ||||
|     # @return [Typhoeus::Request] A Typhoeus Request | ||||
|     def build_request(http_method, path, opts = {}) | ||||
|       url = build_request_url(path) | ||||
|       http_method = http_method.to_sym.downcase | ||||
| 
 | ||||
|       header_params = @default_headers.merge(opts[:header_params] || {}) | ||||
|       query_params = opts[:query_params] || {} | ||||
|       form_params = opts[:form_params] || {} | ||||
| 
 | ||||
| 
 | ||||
|       # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false) | ||||
|       _verify_ssl_host = @config.verify_ssl_host ? 2 : 0 | ||||
| 
 | ||||
|       req_opts = { | ||||
|         :method => http_method, | ||||
|         :headers => header_params, | ||||
|         :params => query_params, | ||||
|         :params_encoding => @config.params_encoding, | ||||
|         :timeout => @config.timeout, | ||||
|         :ssl_verifypeer => @config.verify_ssl, | ||||
|         :ssl_verifyhost => _verify_ssl_host, | ||||
|         :sslcert => @config.cert_file, | ||||
|         :sslkey => @config.key_file, | ||||
|         :verbose => @config.debugging | ||||
|       } | ||||
| 
 | ||||
|       # set custom cert, if provided | ||||
|       req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert | ||||
| 
 | ||||
|       if [:post, :patch, :put, :delete].include?(http_method) | ||||
|         req_body = build_request_body(header_params, form_params, opts[:body]) | ||||
|         req_opts.update :body => req_body | ||||
|         if @config.debugging | ||||
|           @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n" | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       request = Typhoeus::Request.new(url, req_opts) | ||||
|       download_file(request) if opts[:return_type] == 'File' | ||||
|       request | ||||
|     end | ||||
| 
 | ||||
|     # Builds the HTTP request body | ||||
|     # | ||||
|     # @param [Hash] header_params Header parameters | ||||
|     # @param [Hash] form_params Query parameters | ||||
|     # @param [Object] body HTTP body (JSON/XML) | ||||
|     # @return [String] HTTP body data in the form of string | ||||
|     def build_request_body(header_params, form_params, body) | ||||
|       # http form | ||||
|       if header_params['Content-Type'] == 'application/x-www-form-urlencoded' || | ||||
|           header_params['Content-Type'] == 'multipart/form-data' | ||||
|         data = {} | ||||
|         form_params.each do |key, value| | ||||
|           case value | ||||
|           when ::File, ::Array, nil | ||||
|             # let typhoeus handle File, Array and nil parameters | ||||
|             data[key] = value | ||||
|           else | ||||
|             data[key] = value.to_s | ||||
|           end | ||||
|         end | ||||
|       elsif body | ||||
|         data = body.is_a?(String) ? body : body.to_json | ||||
|       else | ||||
|         data = nil | ||||
|       end | ||||
|       data | ||||
|     end | ||||
| 
 | ||||
|     # Check if the given MIME is a JSON MIME. | ||||
|     # JSON MIME examples: | ||||
|     #   application/json | ||||
|     #   application/json; charset=UTF8 | ||||
|     #   APPLICATION/JSON | ||||
|     #   */* | ||||
|     # @param [String] mime MIME | ||||
|     # @return [Boolean] True if the MIME is application/json | ||||
|     def json_mime?(mime) | ||||
|       (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil? | ||||
|     end | ||||
| 
 | ||||
|     # Deserialize the response to the given return type. | ||||
|     # | ||||
|     # @param [Response] response HTTP response | ||||
|     # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>" | ||||
|     def deserialize(response, return_type) | ||||
|       body = response.body | ||||
| 
 | ||||
|       # handle file downloading - return the File instance processed in request callbacks | ||||
|       # note that response body is empty when the file is written in chunks in request on_body callback | ||||
|       return @tempfile if return_type == 'File' | ||||
| 
 | ||||
|       return nil if body.nil? || body.empty? | ||||
| 
 | ||||
|       # return response body directly for String return type | ||||
|       return body if return_type == 'String' | ||||
| 
 | ||||
|       # ensuring a default content type | ||||
|       content_type = response.headers['Content-Type'] || 'application/json' | ||||
| 
 | ||||
|       fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type) | ||||
| 
 | ||||
|       begin | ||||
|         data = JSON.parse("[#{body}]", :symbolize_names => true)[0] | ||||
|       rescue JSON::ParserError => e | ||||
|         if %w(String Date DateTime).include?(return_type) | ||||
|           data = body | ||||
|         else | ||||
|           raise e | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       convert_to_type data, return_type | ||||
|     end | ||||
| 
 | ||||
|     # Convert data to the given return type. | ||||
|     # @param [Object] data Data to be converted | ||||
|     # @param [String] return_type Return type | ||||
|     # @return [Mixed] Data in a particular type | ||||
|     def convert_to_type(data, return_type) | ||||
|       return nil if data.nil? | ||||
|       case return_type | ||||
|       when 'String' | ||||
|         data.to_s | ||||
|       when 'Integer' | ||||
|         data.to_i | ||||
|       when 'Float' | ||||
|         data.to_f | ||||
|       when 'Boolean' | ||||
|         data == true | ||||
|       when 'DateTime' | ||||
|         # parse date time (expecting ISO 8601 format) | ||||
|         DateTime.parse data | ||||
|       when 'Date' | ||||
|         # parse date time (expecting ISO 8601 format) | ||||
|         Date.parse data | ||||
|       when 'Object' | ||||
|         # generic object (usually a Hash), return directly | ||||
|         data | ||||
|       when /\AArray<(.+)>\z/ | ||||
|         # e.g. Array<Pet> | ||||
|         sub_type = $1 | ||||
|         data.map { |item| convert_to_type(item, sub_type) } | ||||
|       when /\AHash\<String, (.+)\>\z/ | ||||
|         # e.g. Hash<String, Integer> | ||||
|         sub_type = $1 | ||||
|         {}.tap do |hash| | ||||
|           data.each { |k, v| hash[k] = convert_to_type(v, sub_type) } | ||||
|         end | ||||
|       else | ||||
|         # models, e.g. Pet | ||||
|         Petstore.const_get(return_type).build_from_hash(data) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Save response body into a file in (the defined) temporary folder, using the filename | ||||
|     # from the "Content-Disposition" header if provided, otherwise a random filename. | ||||
|     # The response body is written to the file in chunks in order to handle files which | ||||
|     # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby | ||||
|     # process can use. | ||||
|     # | ||||
|     # @see Configuration#temp_folder_path | ||||
|     def download_file(request) | ||||
|       tempfile = nil | ||||
|       encoding = nil | ||||
|       request.on_headers do |response| | ||||
|         content_disposition = response.headers['Content-Disposition'] | ||||
|         if content_disposition && content_disposition =~ /filename=/i | ||||
|           filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1] | ||||
|           prefix = sanitize_filename(filename) | ||||
|         else | ||||
|           prefix = 'download-' | ||||
|         end | ||||
|         prefix = prefix + '-' unless prefix.end_with?('-') | ||||
|         encoding = response.body.encoding | ||||
|         tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding) | ||||
|         @tempfile = tempfile | ||||
|       end | ||||
|       request.on_body do |chunk| | ||||
|         chunk.force_encoding(encoding) | ||||
|         tempfile.write(chunk) | ||||
|       end | ||||
|       request.on_complete do |response| | ||||
|         if tempfile | ||||
|           tempfile.close | ||||
|           @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\ | ||||
|                               "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\ | ||||
|                               "will be deleted automatically with GC. It's also recommended to delete the temp file "\ | ||||
|                               "explicitly with `tempfile.delete`" | ||||
|         end | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Sanitize filename by removing path. | ||||
|     # e.g. ../../sun.gif becomes sun.gif | ||||
|     # | ||||
|     # @param [String] filename the filename to be sanitized | ||||
|     # @return [String] the sanitized filename | ||||
|     def sanitize_filename(filename) | ||||
|       filename.gsub(/.*[\/\\]/, '') | ||||
|     end | ||||
| 
 | ||||
|     def build_request_url(path) | ||||
|       # Add leading and trailing slashes to path | ||||
|       path = "/#{path}".gsub(/\/+/, '/') | ||||
|       @config.base_url + path | ||||
|     end | ||||
| 
 | ||||
|     # Update hearder and query params based on authentication settings. | ||||
|     # | ||||
|     # @param [Hash] header_params Header parameters | ||||
|     # @param [Hash] query_params Query parameters | ||||
|     # @param [String] auth_names Authentication scheme name | ||||
|     def update_params_for_auth!(header_params, query_params, auth_names) | ||||
|       Array(auth_names).each do |auth_name| | ||||
|         auth_setting = @config.auth_settings[auth_name] | ||||
|         next unless auth_setting | ||||
|         case auth_setting[:in] | ||||
|         when 'header' then header_params[auth_setting[:key]] = auth_setting[:value] | ||||
|         when 'query'  then query_params[auth_setting[:key]] = auth_setting[:value] | ||||
|         else fail ArgumentError, 'Authentication token must be in `query` of `header`' | ||||
|         end | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Sets user agent in HTTP header | ||||
|     # | ||||
|     # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0) | ||||
|     def user_agent=(user_agent) | ||||
|       @user_agent = user_agent | ||||
|       @default_headers['User-Agent'] = @user_agent | ||||
|     end | ||||
| 
 | ||||
|     # Return Accept header based on an array of accepts provided. | ||||
|     # @param [Array] accepts array for Accept | ||||
|     # @return [String] the Accept header (e.g. application/json) | ||||
|     def select_header_accept(accepts) | ||||
|       return nil if accepts.nil? || accepts.empty? | ||||
|       # use JSON when present, otherwise use all of the provided | ||||
|       json_accept = accepts.find { |s| json_mime?(s) } | ||||
|       json_accept || accepts.join(',') | ||||
|     end | ||||
| 
 | ||||
|     # Return Content-Type header based on an array of content types provided. | ||||
|     # @param [Array] content_types array for Content-Type | ||||
|     # @return [String] the Content-Type header  (e.g. application/json) | ||||
|     def select_header_content_type(content_types) | ||||
|       # use application/json by default | ||||
|       return 'application/json' if content_types.nil? || content_types.empty? | ||||
|       # use JSON when present, otherwise use the first one | ||||
|       json_content_type = content_types.find { |s| json_mime?(s) } | ||||
|       json_content_type || content_types.first | ||||
|     end | ||||
| 
 | ||||
|     # Convert object (array, hash, object, etc) to JSON string. | ||||
|     # @param [Object] model object to be converted into JSON string | ||||
|     # @return [String] JSON string representation of the object | ||||
|     def object_to_http_body(model) | ||||
|       return model if model.nil? || model.is_a?(String) | ||||
|       local_body = nil | ||||
|       if model.is_a?(Array) | ||||
|         local_body = model.map { |m| object_to_hash(m) } | ||||
|       else | ||||
|         local_body = object_to_hash(model) | ||||
|       end | ||||
|       local_body.to_json | ||||
|     end | ||||
| 
 | ||||
|     # Convert object(non-array) to hash. | ||||
|     # @param [Object] obj object to be converted into JSON string | ||||
|     # @return [String] JSON string representation of the object | ||||
|     def object_to_hash(obj) | ||||
|       if obj.respond_to?(:to_hash) | ||||
|         obj.to_hash | ||||
|       else | ||||
|         obj | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Build parameter value according to the given collection format. | ||||
|     # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi | ||||
|     def build_collection_param(param, collection_format) | ||||
|       case collection_format | ||||
|       when :csv | ||||
|         param.join(',') | ||||
|       when :ssv | ||||
|         param.join(' ') | ||||
|       when :tsv | ||||
|         param.join("\t") | ||||
|       when :pipes | ||||
|         param.join('|') | ||||
|       when :multi | ||||
|         # return the array directly as typhoeus will handle it as expected | ||||
|         param | ||||
|       else | ||||
|         fail "unknown collection format: #{collection_format.inspect}" | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,57 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| module Petstore | ||||
|   class ApiError < StandardError | ||||
|     attr_reader :code, :response_headers, :response_body | ||||
| 
 | ||||
|     # Usage examples: | ||||
|     #   ApiError.new | ||||
|     #   ApiError.new("message") | ||||
|     #   ApiError.new(:code => 500, :response_headers => {}, :response_body => "") | ||||
|     #   ApiError.new(:code => 404, :message => "Not Found") | ||||
|     def initialize(arg = nil) | ||||
|       if arg.is_a? Hash | ||||
|         if arg.key?(:message) || arg.key?('message') | ||||
|           super(arg[:message] || arg['message']) | ||||
|         else | ||||
|           super arg | ||||
|         end | ||||
| 
 | ||||
|         arg.each do |k, v| | ||||
|           instance_variable_set "@#{k}", v | ||||
|         end | ||||
|       else | ||||
|         super arg | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Override to_s to display a friendly error message | ||||
|     def to_s | ||||
|       message | ||||
|     end | ||||
| 
 | ||||
|     def message | ||||
|       if @message.nil? | ||||
|         msg = "Error message: the server returns an error" | ||||
|       else | ||||
|         msg = @message | ||||
|       end | ||||
| 
 | ||||
|       msg += "\nHTTP status code: #{code}" if code | ||||
|       msg += "\nResponse headers: #{response_headers}" if response_headers | ||||
|       msg += "\nResponse body: #{response_body}" if response_body | ||||
| 
 | ||||
|       msg | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,241 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| module Petstore | ||||
|   class Configuration | ||||
|     # Defines url scheme | ||||
|     attr_accessor :scheme | ||||
| 
 | ||||
|     # Defines url host | ||||
|     attr_accessor :host | ||||
| 
 | ||||
|     # Defines url base path | ||||
|     attr_accessor :base_path | ||||
| 
 | ||||
|     # Defines API keys used with API Key authentications. | ||||
|     # | ||||
|     # @return [Hash] key: parameter name, value: parameter value (API key) | ||||
|     # | ||||
|     # @example parameter name is "api_key", API key is "xxx" (e.g. "api_key=xxx" in query string) | ||||
|     #   config.api_key['api_key'] = 'xxx' | ||||
|     attr_accessor :api_key | ||||
| 
 | ||||
|     # Defines API key prefixes used with API Key authentications. | ||||
|     # | ||||
|     # @return [Hash] key: parameter name, value: API key prefix | ||||
|     # | ||||
|     # @example parameter name is "Authorization", API key prefix is "Token" (e.g. "Authorization: Token xxx" in headers) | ||||
|     #   config.api_key_prefix['api_key'] = 'Token' | ||||
|     attr_accessor :api_key_prefix | ||||
| 
 | ||||
|     # Defines the username used with HTTP basic authentication. | ||||
|     # | ||||
|     # @return [String] | ||||
|     attr_accessor :username | ||||
| 
 | ||||
|     # Defines the password used with HTTP basic authentication. | ||||
|     # | ||||
|     # @return [String] | ||||
|     attr_accessor :password | ||||
| 
 | ||||
|     # Defines the access token (Bearer) used with OAuth2. | ||||
|     attr_accessor :access_token | ||||
| 
 | ||||
|     # Set this to enable/disable debugging. When enabled (set to true), HTTP request/response | ||||
|     # details will be logged with `logger.debug` (see the `logger` attribute). | ||||
|     # Default to false. | ||||
|     # | ||||
|     # @return [true, false] | ||||
|     attr_accessor :debugging | ||||
| 
 | ||||
|     # Defines the logger used for debugging. | ||||
|     # Default to `Rails.logger` (when in Rails) or logging to STDOUT. | ||||
|     # | ||||
|     # @return [#debug] | ||||
|     attr_accessor :logger | ||||
| 
 | ||||
|     # Defines the temporary folder to store downloaded files | ||||
|     # (for API endpoints that have file response). | ||||
|     # Default to use `Tempfile`. | ||||
|     # | ||||
|     # @return [String] | ||||
|     attr_accessor :temp_folder_path | ||||
| 
 | ||||
|     # The time limit for HTTP request in seconds. | ||||
|     # Default to 0 (never times out). | ||||
|     attr_accessor :timeout | ||||
| 
 | ||||
|     # Set this to false to skip client side validation in the operation. | ||||
|     # Default to true. | ||||
|     # @return [true, false] | ||||
|     attr_accessor :client_side_validation | ||||
| 
 | ||||
|     ### TLS/SSL setting | ||||
|     # Set this to false to skip verifying SSL certificate when calling API from https server. | ||||
|     # Default to true. | ||||
|     # | ||||
|     # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks. | ||||
|     # | ||||
|     # @return [true, false] | ||||
|     attr_accessor :verify_ssl | ||||
| 
 | ||||
|     ### TLS/SSL setting | ||||
|     # Set this to false to skip verifying SSL host name | ||||
|     # Default to true. | ||||
|     # | ||||
|     # @note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks. | ||||
|     # | ||||
|     # @return [true, false] | ||||
|     attr_accessor :verify_ssl_host | ||||
| 
 | ||||
|     ### TLS/SSL setting | ||||
|     # Set this to customize the certificate file to verify the peer. | ||||
|     # | ||||
|     # @return [String] the path to the certificate file | ||||
|     # | ||||
|     # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code: | ||||
|     # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145 | ||||
|     attr_accessor :ssl_ca_cert | ||||
| 
 | ||||
|     ### TLS/SSL setting | ||||
|     # Client certificate file (for client certificate) | ||||
|     attr_accessor :cert_file | ||||
| 
 | ||||
|     ### TLS/SSL setting | ||||
|     # Client private key file (for client certificate) | ||||
|     attr_accessor :key_file | ||||
| 
 | ||||
|     # Set this to customize parameters encoding of array parameter with multi collectionFormat. | ||||
|     # Default to nil. | ||||
|     # | ||||
|     # @see The params_encoding option of Ethon. Related source code: | ||||
|     # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96 | ||||
|     attr_accessor :params_encoding | ||||
| 
 | ||||
|     attr_accessor :inject_format | ||||
| 
 | ||||
|     attr_accessor :force_ending_format | ||||
| 
 | ||||
|     def initialize | ||||
|       @scheme = 'http' | ||||
|       @host = 'petstore.swagger.io:-1' | ||||
|       @base_path = '/v2' | ||||
|       @api_key = {} | ||||
|       @api_key_prefix = {} | ||||
|       @timeout = 0 | ||||
|       @client_side_validation = true | ||||
|       @verify_ssl = true | ||||
|       @verify_ssl_host = true | ||||
|       @params_encoding = nil | ||||
|       @cert_file = nil | ||||
|       @key_file = nil | ||||
|       @debugging = false | ||||
|       @inject_format = false | ||||
|       @force_ending_format = false | ||||
|       @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT) | ||||
| 
 | ||||
|       yield(self) if block_given? | ||||
|     end | ||||
| 
 | ||||
|     # The default Configuration object. | ||||
|     def self.default | ||||
|       @@default ||= Configuration.new | ||||
|     end | ||||
| 
 | ||||
|     def configure | ||||
|       yield(self) if block_given? | ||||
|     end | ||||
| 
 | ||||
|     def scheme=(scheme) | ||||
|       # remove :// from scheme | ||||
|       @scheme = scheme.sub(/:\/\//, '') | ||||
|     end | ||||
| 
 | ||||
|     def host=(host) | ||||
|       # remove http(s):// and anything after a slash | ||||
|       @host = host.sub(/https?:\/\//, '').split('/').first | ||||
|     end | ||||
| 
 | ||||
|     def base_path=(base_path) | ||||
|       # Add leading and trailing slashes to base_path | ||||
|       @base_path = "/#{base_path}".gsub(/\/+/, '/') | ||||
|       @base_path = '' if @base_path == '/' | ||||
|     end | ||||
| 
 | ||||
|     def base_url | ||||
|       "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') | ||||
|     end | ||||
| 
 | ||||
|     # Gets API key (with prefix if set). | ||||
|     # @param [String] param_name the parameter name of API key auth | ||||
|     def api_key_with_prefix(param_name) | ||||
|       if @api_key_prefix[param_name] | ||||
|         "#{@api_key_prefix[param_name]} #{@api_key[param_name]}" | ||||
|       else | ||||
|         @api_key[param_name] | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Gets Basic Auth token string | ||||
|     def basic_auth_token | ||||
|       'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n") | ||||
|     end | ||||
| 
 | ||||
|     # Returns Auth Settings hash for api client. | ||||
|     def auth_settings | ||||
|       { | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # Returns an array of Server setting | ||||
|     def server_settings | ||||
|       [ | ||||
|         { | ||||
|           url: "http://petstore.swagger.io/v2", | ||||
|           description: "petstore server", | ||||
|         } | ||||
|       ] | ||||
|     end | ||||
| 
 | ||||
|     # Returns URL based on server settings | ||||
|     # | ||||
|     # @param index array index of the server settings | ||||
|     # @param variables hash of variable and the corresponding value | ||||
|     def server_url(index, variables = {}) | ||||
|       servers = server_settings | ||||
| 
 | ||||
|       # check array index out of bound | ||||
|       if (index < 0 || index >= servers.size) | ||||
|         fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}" | ||||
|       end | ||||
| 
 | ||||
|       server = servers[index] | ||||
|       url = server[:url] | ||||
| 
 | ||||
|       # go through variable and assign a value | ||||
|       server[:variables].each do |name, variable| | ||||
|         if variables.key?(name) | ||||
|           if (server[:variables][name][:enum_values].include? variables[name]) | ||||
|             url.gsub! "{" + name.to_s + "}", variables[name] | ||||
|           else | ||||
|             fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}." | ||||
|           end | ||||
|         else | ||||
|           # use default value | ||||
|           url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value] | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       url | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,203 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'date' | ||||
| 
 | ||||
| module Petstore | ||||
|   class ArrayAlias < Array | ||||
|     # Attribute mapping from ruby-style variable name to JSON key. | ||||
|     def self.attribute_map | ||||
|       { | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # Attribute type mapping. | ||||
|     def self.openapi_types | ||||
|       { | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # List of attributes with nullable: true | ||||
|     def self.openapi_nullable | ||||
|       Set.new([ | ||||
|       ]) | ||||
|     end | ||||
| 
 | ||||
|     # Initializes the object | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     def initialize(attributes = {}) | ||||
|       if (!attributes.is_a?(Hash)) | ||||
|         fail ArgumentError, "The input argument (attributes) must be a hash in `Petstore::ArrayAlias` initialize method" | ||||
|       end | ||||
| 
 | ||||
|       # check to see if the attribute exists and convert string to symbol for hash key | ||||
|       attributes = attributes.each_with_object({}) { |(k, v), h| | ||||
|         if (!self.class.attribute_map.key?(k.to_sym)) | ||||
|           fail ArgumentError, "`#{k}` is not a valid attribute in `Petstore::ArrayAlias`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect | ||||
|         end | ||||
|         h[k.to_sym] = v | ||||
|       } | ||||
| 
 | ||||
|       # call parent's initialize | ||||
|       super(attributes) | ||||
|     end | ||||
| 
 | ||||
|     # Show invalid properties with the reasons. Usually used together with valid? | ||||
|     # @return Array for valid properties with the reasons | ||||
|     def list_invalid_properties | ||||
|       invalid_properties = super | ||||
|       invalid_properties | ||||
|     end | ||||
| 
 | ||||
|     # Check to see if the all the properties in the model are valid | ||||
|     # @return true if the model is valid | ||||
|     def valid? | ||||
|       true && super | ||||
|     end | ||||
| 
 | ||||
|     # Checks equality by comparing each attribute. | ||||
|     # @param [Object] Object to be compared | ||||
|     def ==(o) | ||||
|       return true if self.equal?(o) | ||||
|       self.class == o.class && super(o) | ||||
|     end | ||||
| 
 | ||||
|     # @see the `==` method | ||||
|     # @param [Object] Object to be compared | ||||
|     def eql?(o) | ||||
|       self == o | ||||
|     end | ||||
| 
 | ||||
|     # Calculates hash code according to all attributes. | ||||
|     # @return [Integer] Hash code | ||||
|     def hash | ||||
|       [].hash | ||||
|     end | ||||
| 
 | ||||
|     # Builds the object from hash | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     # @return [Object] Returns the model itself | ||||
|     def self.build_from_hash(attributes) | ||||
|       new.build_from_hash(attributes) | ||||
|     end | ||||
| 
 | ||||
|     # Builds the object from hash | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     # @return [Object] Returns the model itself | ||||
|     def build_from_hash(attributes) | ||||
|       return nil unless attributes.is_a?(Hash) | ||||
|       super(attributes) | ||||
|       self.class.openapi_types.each_pair do |key, type| | ||||
|         if type =~ /\AArray<(.*)>/i | ||||
|           # check to ensure the input is an array given that the attribute | ||||
|           # is documented as an array but the input is not | ||||
|           if attributes[self.class.attribute_map[key]].is_a?(Array) | ||||
|             self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) | ||||
|           end | ||||
|         elsif !attributes[self.class.attribute_map[key]].nil? | ||||
|           self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) | ||||
|         elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key) | ||||
|           self.send("#{key}=", nil) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       self | ||||
|     end | ||||
| 
 | ||||
|     # Deserializes the data based on type | ||||
|     # @param string type Data type | ||||
|     # @param string value Value to be deserialized | ||||
|     # @return [Object] Deserialized data | ||||
|     def _deserialize(type, value) | ||||
|       case type.to_sym | ||||
|       when :DateTime | ||||
|         DateTime.parse(value) | ||||
|       when :Date | ||||
|         Date.parse(value) | ||||
|       when :String | ||||
|         value.to_s | ||||
|       when :Integer | ||||
|         value.to_i | ||||
|       when :Float | ||||
|         value.to_f | ||||
|       when :Boolean | ||||
|         if value.to_s =~ /\A(true|t|yes|y|1)\z/i | ||||
|           true | ||||
|         else | ||||
|           false | ||||
|         end | ||||
|       when :Object | ||||
|         # generic object (usually a Hash), return directly | ||||
|         value | ||||
|       when /\AArray<(?<inner_type>.+)>\z/ | ||||
|         inner_type = Regexp.last_match[:inner_type] | ||||
|         value.map { |v| _deserialize(inner_type, v) } | ||||
|       when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/ | ||||
|         k_type = Regexp.last_match[:k_type] | ||||
|         v_type = Regexp.last_match[:v_type] | ||||
|         {}.tap do |hash| | ||||
|           value.each do |k, v| | ||||
|             hash[_deserialize(k_type, k)] = _deserialize(v_type, v) | ||||
|           end | ||||
|         end | ||||
|       else # model | ||||
|         Petstore.const_get(type).build_from_hash(value) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Returns the string representation of the object | ||||
|     # @return [String] String presentation of the object | ||||
|     def to_s | ||||
|       to_hash.to_s | ||||
|     end | ||||
| 
 | ||||
|     # to_body is an alias to to_hash (backward compatibility) | ||||
|     # @return [Hash] Returns the object in the form of hash | ||||
|     def to_body | ||||
|       to_hash | ||||
|     end | ||||
| 
 | ||||
|     # Returns the object in the form of hash | ||||
|     # @return [Hash] Returns the object in the form of hash | ||||
|     def to_hash | ||||
|       hash = super | ||||
|       self.class.attribute_map.each_pair do |attr, param| | ||||
|         value = self.send(attr) | ||||
|         if value.nil? | ||||
|           is_nullable = self.class.openapi_nullable.include?(attr) | ||||
|           next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) | ||||
|         end | ||||
|          | ||||
|         hash[param] = _to_hash(value) | ||||
|       end | ||||
|       hash | ||||
|     end | ||||
| 
 | ||||
|     # Outputs non-array value in the form of hash | ||||
|     # For object, use to_hash. Otherwise, just return the value | ||||
|     # @param [Object] value Any valid value | ||||
|     # @return [Hash] Returns the value in the form of hash | ||||
|     def _to_hash(value) | ||||
|       if value.is_a?(Array) | ||||
|         value.compact.map { |v| _to_hash(v) } | ||||
|       elsif value.is_a?(Hash) | ||||
|         {}.tap do |hash| | ||||
|           value.each { |k, v| hash[k] = _to_hash(v) } | ||||
|         end | ||||
|       elsif value.respond_to? :to_hash | ||||
|         value.to_hash | ||||
|       else | ||||
|         value | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,199 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'date' | ||||
| 
 | ||||
| module Petstore | ||||
|   class MapAlias | ||||
|     # Attribute mapping from ruby-style variable name to JSON key. | ||||
|     def self.attribute_map | ||||
|       { | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # Attribute type mapping. | ||||
|     def self.openapi_types | ||||
|       { | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # List of attributes with nullable: true | ||||
|     def self.openapi_nullable | ||||
|       Set.new([ | ||||
|       ]) | ||||
|     end | ||||
| 
 | ||||
|     # Initializes the object | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     def initialize(attributes = {}) | ||||
|       if (!attributes.is_a?(Hash)) | ||||
|         fail ArgumentError, "The input argument (attributes) must be a hash in `Petstore::MapAlias` initialize method" | ||||
|       end | ||||
| 
 | ||||
|       # check to see if the attribute exists and convert string to symbol for hash key | ||||
|       attributes = attributes.each_with_object({}) { |(k, v), h| | ||||
|         if (!self.class.attribute_map.key?(k.to_sym)) | ||||
|           fail ArgumentError, "`#{k}` is not a valid attribute in `Petstore::MapAlias`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect | ||||
|         end | ||||
|         h[k.to_sym] = v | ||||
|       } | ||||
|     end | ||||
| 
 | ||||
|     # Show invalid properties with the reasons. Usually used together with valid? | ||||
|     # @return Array for valid properties with the reasons | ||||
|     def list_invalid_properties | ||||
|       invalid_properties = Array.new | ||||
|       invalid_properties | ||||
|     end | ||||
| 
 | ||||
|     # Check to see if the all the properties in the model are valid | ||||
|     # @return true if the model is valid | ||||
|     def valid? | ||||
|       true | ||||
|     end | ||||
| 
 | ||||
|     # Checks equality by comparing each attribute. | ||||
|     # @param [Object] Object to be compared | ||||
|     def ==(o) | ||||
|       return true if self.equal?(o) | ||||
|       self.class == o.class | ||||
|     end | ||||
| 
 | ||||
|     # @see the `==` method | ||||
|     # @param [Object] Object to be compared | ||||
|     def eql?(o) | ||||
|       self == o | ||||
|     end | ||||
| 
 | ||||
|     # Calculates hash code according to all attributes. | ||||
|     # @return [Integer] Hash code | ||||
|     def hash | ||||
|       [].hash | ||||
|     end | ||||
| 
 | ||||
|     # Builds the object from hash | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     # @return [Object] Returns the model itself | ||||
|     def self.build_from_hash(attributes) | ||||
|       new.build_from_hash(attributes) | ||||
|     end | ||||
| 
 | ||||
|     # Builds the object from hash | ||||
|     # @param [Hash] attributes Model attributes in the form of hash | ||||
|     # @return [Object] Returns the model itself | ||||
|     def build_from_hash(attributes) | ||||
|       return nil unless attributes.is_a?(Hash) | ||||
|       self.class.openapi_types.each_pair do |key, type| | ||||
|         if type =~ /\AArray<(.*)>/i | ||||
|           # check to ensure the input is an array given that the attribute | ||||
|           # is documented as an array but the input is not | ||||
|           if attributes[self.class.attribute_map[key]].is_a?(Array) | ||||
|             self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) | ||||
|           end | ||||
|         elsif !attributes[self.class.attribute_map[key]].nil? | ||||
|           self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) | ||||
|         elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key) | ||||
|           self.send("#{key}=", nil) | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       self | ||||
|     end | ||||
| 
 | ||||
|     # Deserializes the data based on type | ||||
|     # @param string type Data type | ||||
|     # @param string value Value to be deserialized | ||||
|     # @return [Object] Deserialized data | ||||
|     def _deserialize(type, value) | ||||
|       case type.to_sym | ||||
|       when :DateTime | ||||
|         DateTime.parse(value) | ||||
|       when :Date | ||||
|         Date.parse(value) | ||||
|       when :String | ||||
|         value.to_s | ||||
|       when :Integer | ||||
|         value.to_i | ||||
|       when :Float | ||||
|         value.to_f | ||||
|       when :Boolean | ||||
|         if value.to_s =~ /\A(true|t|yes|y|1)\z/i | ||||
|           true | ||||
|         else | ||||
|           false | ||||
|         end | ||||
|       when :Object | ||||
|         # generic object (usually a Hash), return directly | ||||
|         value | ||||
|       when /\AArray<(?<inner_type>.+)>\z/ | ||||
|         inner_type = Regexp.last_match[:inner_type] | ||||
|         value.map { |v| _deserialize(inner_type, v) } | ||||
|       when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/ | ||||
|         k_type = Regexp.last_match[:k_type] | ||||
|         v_type = Regexp.last_match[:v_type] | ||||
|         {}.tap do |hash| | ||||
|           value.each do |k, v| | ||||
|             hash[_deserialize(k_type, k)] = _deserialize(v_type, v) | ||||
|           end | ||||
|         end | ||||
|       else # model | ||||
|         Petstore.const_get(type).build_from_hash(value) | ||||
|       end | ||||
|     end | ||||
| 
 | ||||
|     # Returns the string representation of the object | ||||
|     # @return [String] String presentation of the object | ||||
|     def to_s | ||||
|       to_hash.to_s | ||||
|     end | ||||
| 
 | ||||
|     # to_body is an alias to to_hash (backward compatibility) | ||||
|     # @return [Hash] Returns the object in the form of hash | ||||
|     def to_body | ||||
|       to_hash | ||||
|     end | ||||
| 
 | ||||
|     # Returns the object in the form of hash | ||||
|     # @return [Hash] Returns the object in the form of hash | ||||
|     def to_hash | ||||
|       hash = {} | ||||
|       self.class.attribute_map.each_pair do |attr, param| | ||||
|         value = self.send(attr) | ||||
|         if value.nil? | ||||
|           is_nullable = self.class.openapi_nullable.include?(attr) | ||||
|           next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) | ||||
|         end | ||||
|          | ||||
|         hash[param] = _to_hash(value) | ||||
|       end | ||||
|       hash | ||||
|     end | ||||
| 
 | ||||
|     # Outputs non-array value in the form of hash | ||||
|     # For object, use to_hash. Otherwise, just return the value | ||||
|     # @param [Object] value Any valid value | ||||
|     # @return [Hash] Returns the value in the form of hash | ||||
|     def _to_hash(value) | ||||
|       if value.is_a?(Array) | ||||
|         value.compact.map { |v| _to_hash(v) } | ||||
|       elsif value.is_a?(Hash) | ||||
|         {}.tap do |hash| | ||||
|           value.each { |k, v| hash[k] = _to_hash(v) } | ||||
|         end | ||||
|       elsif value.respond_to? :to_hash | ||||
|         value.to_hash | ||||
|       else | ||||
|         value | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,15 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| module Petstore | ||||
|   VERSION = '1.0.0' | ||||
| end | ||||
| @ -0,0 +1,38 @@ | ||||
| # -*- encoding: utf-8 -*- | ||||
| 
 | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| $:.push File.expand_path("../lib", __FILE__) | ||||
| require "petstore/version" | ||||
| 
 | ||||
| Gem::Specification.new do |s| | ||||
|   s.name        = "petstore" | ||||
|   s.version     = Petstore::VERSION | ||||
|   s.platform    = Gem::Platform::RUBY | ||||
|   s.authors     = ["OpenAPI-Generator"] | ||||
|   s.email       = [""] | ||||
|   s.homepage    = "https://openapi-generator.tech" | ||||
|   s.summary     = "OpenAPI Extension generating aliases to maps and arrays as models Ruby Gem" | ||||
|   s.description = "This specification shows how to generate aliases to maps and arrays as models." | ||||
|   s.license     = "Unlicense" | ||||
|   s.required_ruby_version = ">= 1.9" | ||||
| 
 | ||||
|   s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1' | ||||
| 
 | ||||
|   s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0' | ||||
| 
 | ||||
|   s.files         = `find *`.split("\n").uniq.sort.select { |f| !f.empty? } | ||||
|   s.test_files    = `find spec/*`.split("\n") | ||||
|   s.executables   = [] | ||||
|   s.require_paths = ["lib"] | ||||
| end | ||||
| @ -0,0 +1,59 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'spec_helper' | ||||
| require 'json' | ||||
| 
 | ||||
| # Unit tests for Petstore::UsageApi | ||||
| # Automatically generated by openapi-generator (https://openapi-generator.tech) | ||||
| # Please update as you see appropriate | ||||
| describe 'UsageApi' do | ||||
|   before do | ||||
|     # run before each test | ||||
|     @api_instance = Petstore::UsageApi.new | ||||
|   end | ||||
| 
 | ||||
|   after do | ||||
|     # run after each test | ||||
|   end | ||||
| 
 | ||||
|   describe 'test an instance of UsageApi' do | ||||
|     it 'should create an instance of UsageApi' do | ||||
|       expect(@api_instance).to be_instance_of(Petstore::UsageApi) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # unit tests for array | ||||
|   # Use alias to array | ||||
|   # Use alias to array | ||||
|   # @param [Hash] opts the optional parameters | ||||
|   # @option opts [ArrayAlias] :array_alias  | ||||
|   # @return [Object] | ||||
|   describe 'array test' do | ||||
|     it 'should work' do | ||||
|       # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # unit tests for map | ||||
|   # Use alias to map | ||||
|   # Use alias to map | ||||
|   # @param [Hash] opts the optional parameters | ||||
|   # @option opts [MapAlias] :map_alias  | ||||
|   # @return [Object] | ||||
|   describe 'map test' do | ||||
|     it 'should work' do | ||||
|       # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
| @ -0,0 +1,226 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'spec_helper' | ||||
| 
 | ||||
| describe Petstore::ApiClient do | ||||
|   context 'initialization' do | ||||
|     context 'URL stuff' do | ||||
|       context 'host' do | ||||
|         it 'removes http from host' do | ||||
|           Petstore.configure { |c| c.host = 'http://example.com' } | ||||
|           expect(Petstore::Configuration.default.host).to eq('example.com') | ||||
|         end | ||||
| 
 | ||||
|         it 'removes https from host' do | ||||
|           Petstore.configure { |c| c.host = 'https://wookiee.com' } | ||||
|           expect(Petstore::ApiClient.default.config.host).to eq('wookiee.com') | ||||
|         end | ||||
| 
 | ||||
|         it 'removes trailing path from host' do | ||||
|           Petstore.configure { |c| c.host = 'hobo.com/v4' } | ||||
|           expect(Petstore::Configuration.default.host).to eq('hobo.com') | ||||
|         end | ||||
|       end | ||||
| 
 | ||||
|       context 'base_path' do | ||||
|         it "prepends a slash to base_path" do | ||||
|           Petstore.configure { |c| c.base_path = 'v4/dog' } | ||||
|           expect(Petstore::Configuration.default.base_path).to eq('/v4/dog') | ||||
|         end | ||||
| 
 | ||||
|         it "doesn't prepend a slash if one is already there" do | ||||
|           Petstore.configure { |c| c.base_path = '/v4/dog' } | ||||
|           expect(Petstore::Configuration.default.base_path).to eq('/v4/dog') | ||||
|         end | ||||
| 
 | ||||
|         it "ends up as a blank string if nil" do | ||||
|           Petstore.configure { |c| c.base_path = nil } | ||||
|           expect(Petstore::Configuration.default.base_path).to eq('') | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'params_encoding in #build_request' do | ||||
|     let(:config) { Petstore::Configuration.new } | ||||
|     let(:api_client) { Petstore::ApiClient.new(config) } | ||||
| 
 | ||||
|     it 'defaults to nil' do | ||||
|       expect(Petstore::Configuration.default.params_encoding).to eq(nil) | ||||
|       expect(config.params_encoding).to eq(nil) | ||||
| 
 | ||||
|       request = api_client.build_request(:get, '/test') | ||||
|       expect(request.options[:params_encoding]).to eq(nil) | ||||
|     end | ||||
| 
 | ||||
|     it 'can be customized' do | ||||
|       config.params_encoding = :multi | ||||
|       request = api_client.build_request(:get, '/test') | ||||
|       expect(request.options[:params_encoding]).to eq(:multi) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe 'timeout in #build_request' do | ||||
|     let(:config) { Petstore::Configuration.new } | ||||
|     let(:api_client) { Petstore::ApiClient.new(config) } | ||||
| 
 | ||||
|     it 'defaults to 0' do | ||||
|       expect(Petstore::Configuration.default.timeout).to eq(0) | ||||
|       expect(config.timeout).to eq(0) | ||||
| 
 | ||||
|       request = api_client.build_request(:get, '/test') | ||||
|       expect(request.options[:timeout]).to eq(0) | ||||
|     end | ||||
| 
 | ||||
|     it 'can be customized' do | ||||
|       config.timeout = 100 | ||||
|       request = api_client.build_request(:get, '/test') | ||||
|       expect(request.options[:timeout]).to eq(100) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#deserialize' do | ||||
|     it "handles Array<Integer>" do | ||||
|       api_client = Petstore::ApiClient.new | ||||
|       headers = { 'Content-Type' => 'application/json' } | ||||
|       response = double('response', headers: headers, body: '[12, 34]') | ||||
|       data = api_client.deserialize(response, 'Array<Integer>') | ||||
|       expect(data).to be_instance_of(Array) | ||||
|       expect(data).to eq([12, 34]) | ||||
|     end | ||||
| 
 | ||||
|     it 'handles Array<Array<Integer>>' do | ||||
|       api_client = Petstore::ApiClient.new | ||||
|       headers = { 'Content-Type' => 'application/json' } | ||||
|       response = double('response', headers: headers, body: '[[12, 34], [56]]') | ||||
|       data = api_client.deserialize(response, 'Array<Array<Integer>>') | ||||
|       expect(data).to be_instance_of(Array) | ||||
|       expect(data).to eq([[12, 34], [56]]) | ||||
|     end | ||||
| 
 | ||||
|     it 'handles Hash<String, String>' do | ||||
|       api_client = Petstore::ApiClient.new | ||||
|       headers = { 'Content-Type' => 'application/json' } | ||||
|       response = double('response', headers: headers, body: '{"message": "Hello"}') | ||||
|       data = api_client.deserialize(response, 'Hash<String, String>') | ||||
|       expect(data).to be_instance_of(Hash) | ||||
|       expect(data).to eq(:message => 'Hello') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe "#object_to_hash" do | ||||
|     it 'ignores nils and includes empty arrays' do | ||||
|       # uncomment below to test object_to_hash for model | ||||
|       # api_client = Petstore::ApiClient.new | ||||
|       # _model = Petstore::ModelName.new | ||||
|       # update the model attribute below | ||||
|       # _model.id = 1 | ||||
|       # update the expected value (hash) below | ||||
|       # expected = {id: 1, name: '', tags: []} | ||||
|       # expect(api_client.object_to_hash(_model)).to eq(expected) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#build_collection_param' do | ||||
|     let(:param) { ['aa', 'bb', 'cc'] } | ||||
|     let(:api_client) { Petstore::ApiClient.new } | ||||
| 
 | ||||
|     it 'works for csv' do | ||||
|       expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc') | ||||
|     end | ||||
| 
 | ||||
|     it 'works for ssv' do | ||||
|       expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc') | ||||
|     end | ||||
| 
 | ||||
|     it 'works for tsv' do | ||||
|       expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc") | ||||
|     end | ||||
| 
 | ||||
|     it 'works for pipes' do | ||||
|       expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc') | ||||
|     end | ||||
| 
 | ||||
|     it 'works for multi' do | ||||
|       expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc']) | ||||
|     end | ||||
| 
 | ||||
|     it 'fails for invalid collection format' do | ||||
|       expect { api_client.build_collection_param(param, :INVALID) }.to raise_error(RuntimeError, 'unknown collection format: :INVALID') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#json_mime?' do | ||||
|     let(:api_client) { Petstore::ApiClient.new } | ||||
| 
 | ||||
|     it 'works' do | ||||
|       expect(api_client.json_mime?(nil)).to eq false | ||||
|       expect(api_client.json_mime?('')).to eq false | ||||
| 
 | ||||
|       expect(api_client.json_mime?('application/json')).to eq true | ||||
|       expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true | ||||
|       expect(api_client.json_mime?('APPLICATION/JSON')).to eq true | ||||
| 
 | ||||
|       expect(api_client.json_mime?('application/xml')).to eq false | ||||
|       expect(api_client.json_mime?('text/plain')).to eq false | ||||
|       expect(api_client.json_mime?('application/jsonp')).to eq false | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#select_header_accept' do | ||||
|     let(:api_client) { Petstore::ApiClient.new } | ||||
| 
 | ||||
|     it 'works' do | ||||
|       expect(api_client.select_header_accept(nil)).to be_nil | ||||
|       expect(api_client.select_header_accept([])).to be_nil | ||||
| 
 | ||||
|       expect(api_client.select_header_accept(['application/json'])).to eq('application/json') | ||||
|       expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8') | ||||
|       expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON') | ||||
| 
 | ||||
|       expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml') | ||||
|       expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#select_header_content_type' do | ||||
|     let(:api_client) { Petstore::ApiClient.new } | ||||
| 
 | ||||
|     it 'works' do | ||||
|       expect(api_client.select_header_content_type(nil)).to eq('application/json') | ||||
|       expect(api_client.select_header_content_type([])).to eq('application/json') | ||||
| 
 | ||||
|       expect(api_client.select_header_content_type(['application/json'])).to eq('application/json') | ||||
|       expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8') | ||||
|       expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON') | ||||
|       expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml') | ||||
|       expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   describe '#sanitize_filename' do | ||||
|     let(:api_client) { Petstore::ApiClient.new } | ||||
| 
 | ||||
|     it 'works' do | ||||
|       expect(api_client.sanitize_filename('sun')).to eq('sun') | ||||
|       expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif') | ||||
|       expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif') | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,42 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'spec_helper' | ||||
| 
 | ||||
| describe Petstore::Configuration do | ||||
|   let(:config) { Petstore::Configuration.default } | ||||
| 
 | ||||
|   before(:each) do | ||||
|     # uncomment below to setup host and base_path | ||||
|     # require 'URI' | ||||
|     # uri = URI.parse("http://petstore.swagger.io/v2") | ||||
|     # Petstore.configure do |c| | ||||
|     #   c.host = uri.host | ||||
|     #   c.base_path = uri.path | ||||
|     # end | ||||
|   end | ||||
| 
 | ||||
|   describe '#base_url' do | ||||
|     it 'should have the default value' do | ||||
|       # uncomment below to test default value of the base path | ||||
|       # expect(config.base_url).to eq("http://petstore.swagger.io/v2") | ||||
|     end | ||||
| 
 | ||||
|     it 'should remove trailing slashes' do | ||||
|       [nil, '', '/', '//'].each do |base_path| | ||||
|         config.base_path = base_path | ||||
|         # uncomment below to test trailing slashes | ||||
|         # expect(config.base_url).to eq("http://petstore.swagger.io/v2") | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,35 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'spec_helper' | ||||
| require 'json' | ||||
| require 'date' | ||||
| 
 | ||||
| # Unit tests for Petstore::ArrayAlias | ||||
| # Automatically generated by openapi-generator (https://openapi-generator.tech) | ||||
| # Please update as you see appropriate | ||||
| describe 'ArrayAlias' do | ||||
|   before do | ||||
|     # run before each test | ||||
|     @instance = Petstore::ArrayAlias.new | ||||
|   end | ||||
| 
 | ||||
|   after do | ||||
|     # run after each test | ||||
|   end | ||||
| 
 | ||||
|   describe 'test an instance of ArrayAlias' do | ||||
|     it 'should create an instance of ArrayAlias' do | ||||
|       expect(@instance).to be_instance_of(Petstore::ArrayAlias) | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,35 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| require 'spec_helper' | ||||
| require 'json' | ||||
| require 'date' | ||||
| 
 | ||||
| # Unit tests for Petstore::MapAlias | ||||
| # Automatically generated by openapi-generator (https://openapi-generator.tech) | ||||
| # Please update as you see appropriate | ||||
| describe 'MapAlias' do | ||||
|   before do | ||||
|     # run before each test | ||||
|     @instance = Petstore::MapAlias.new | ||||
|   end | ||||
| 
 | ||||
|   after do | ||||
|     # run after each test | ||||
|   end | ||||
| 
 | ||||
|   describe 'test an instance of MapAlias' do | ||||
|     it 'should create an instance of MapAlias' do | ||||
|       expect(@instance).to be_instance_of(Petstore::MapAlias) | ||||
|     end | ||||
|   end | ||||
| end | ||||
| @ -0,0 +1,111 @@ | ||||
| =begin | ||||
| #OpenAPI Extension generating aliases to maps and arrays as models | ||||
| 
 | ||||
| #This specification shows how to generate aliases to maps and arrays as models. | ||||
| 
 | ||||
| The version of the OpenAPI document: 1.0.0 | ||||
| 
 | ||||
| Generated by: https://openapi-generator.tech | ||||
| OpenAPI Generator version: 5.0.0-SNAPSHOT | ||||
| 
 | ||||
| =end | ||||
| 
 | ||||
| # load the gem | ||||
| require 'petstore' | ||||
| 
 | ||||
| # The following  was generated by the `rspec --init` command. Conventionally, all | ||||
| # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. | ||||
| # The generated `.rspec` file contains `--require spec_helper` which will cause | ||||
| # this file to always be loaded, without a need to explicitly require it in any | ||||
| # files. | ||||
| # | ||||
| # Given that it is always loaded, you are encouraged to keep this file as | ||||
| # light-weight as possible. Requiring heavyweight dependencies from this file | ||||
| # will add to the boot time of your test suite on EVERY test run, even for an | ||||
| # individual file that may not need all of that loaded. Instead, consider making | ||||
| # a separate helper file that requires the additional dependencies and performs | ||||
| # the additional setup, and require it from the spec files that actually need | ||||
| # it. | ||||
| # | ||||
| # The `.rspec` file also contains a few flags that are not defaults but that | ||||
| # users commonly want. | ||||
| # | ||||
| # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration | ||||
| RSpec.configure do |config| | ||||
|   # rspec-expectations config goes here. You can use an alternate | ||||
|   # assertion/expectation library such as wrong or the stdlib/minitest | ||||
|   # assertions if you prefer. | ||||
|   config.expect_with :rspec do |expectations| | ||||
|     # This option will default to `true` in RSpec 4. It makes the `description` | ||||
|     # and `failure_message` of custom matchers include text for helper methods | ||||
|     # defined using `chain`, e.g.: | ||||
|     #     be_bigger_than(2).and_smaller_than(4).description | ||||
|     #     # => "be bigger than 2 and smaller than 4" | ||||
|     # ...rather than: | ||||
|     #     # => "be bigger than 2" | ||||
|     expectations.include_chain_clauses_in_custom_matcher_descriptions = true | ||||
|   end | ||||
| 
 | ||||
|   # rspec-mocks config goes here. You can use an alternate test double | ||||
|   # library (such as bogus or mocha) by changing the `mock_with` option here. | ||||
|   config.mock_with :rspec do |mocks| | ||||
|     # Prevents you from mocking or stubbing a method that does not exist on | ||||
|     # a real object. This is generally recommended, and will default to | ||||
|     # `true` in RSpec 4. | ||||
|     mocks.verify_partial_doubles = true | ||||
|   end | ||||
| 
 | ||||
| # The settings below are suggested to provide a good initial experience | ||||
| # with RSpec, but feel free to customize to your heart's content. | ||||
| =begin | ||||
|   # These two settings work together to allow you to limit a spec run | ||||
|   # to individual examples or groups you care about by tagging them with | ||||
|   # `:focus` metadata. When nothing is tagged with `:focus`, all examples | ||||
|   # get run. | ||||
|   config.filter_run :focus | ||||
|   config.run_all_when_everything_filtered = true | ||||
| 
 | ||||
|   # Allows RSpec to persist some state between runs in order to support | ||||
|   # the `--only-failures` and `--next-failure` CLI options. We recommend | ||||
|   # you configure your source control system to ignore this file. | ||||
|   config.example_status_persistence_file_path = "spec/examples.txt" | ||||
| 
 | ||||
|   # Limits the available syntax to the non-monkey patched syntax that is | ||||
|   # recommended. For more details, see: | ||||
|   #   - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/ | ||||
|   #   - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ | ||||
|   #   - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode | ||||
|   config.disable_monkey_patching! | ||||
| 
 | ||||
|   # This setting enables warnings. It's recommended, but in some cases may | ||||
|   # be too noisy due to issues in dependencies. | ||||
|   config.warnings = true | ||||
| 
 | ||||
|   # Many RSpec users commonly either run the entire suite or an individual | ||||
|   # file, and it's useful to allow more verbose output when running an | ||||
|   # individual spec file. | ||||
|   if config.files_to_run.one? | ||||
|     # Use the documentation formatter for detailed output, | ||||
|     # unless a formatter has already been configured | ||||
|     # (e.g. via a command-line flag). | ||||
|     config.default_formatter = 'doc' | ||||
|   end | ||||
| 
 | ||||
|   # Print the 10 slowest examples and example groups at the | ||||
|   # end of the spec run, to help surface which specs are running | ||||
|   # particularly slow. | ||||
|   config.profile_examples = 10 | ||||
| 
 | ||||
|   # Run specs in random order to surface order dependencies. If you find an | ||||
|   # order dependency and want to debug it, you can fix the order by providing | ||||
|   # the seed, which is printed after each run. | ||||
|   #     --seed 1234 | ||||
|   config.order = :random | ||||
| 
 | ||||
|   # Seed global randomization in this process using the `--seed` CLI option. | ||||
|   # Setting this allows you to use `--seed` to deterministically reproduce | ||||
|   # test failures related to randomization by passing the same `--seed` value | ||||
|   # as the one that triggered the failure. | ||||
|   Kernel.srand config.seed | ||||
| =end | ||||
| end | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user