Skip to content

Commit e7896e9

Browse files
committed
Generate petstore for generate alias as model feature
1 parent c27c500 commit e7896e9

File tree

30 files changed

+2443
-0
lines changed

30 files changed

+2443
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
generatorName: ruby
2+
outputDir: samples/openapi3/client/features/generate-alias-as-model/ruby-client/
3+
library: typhoeus
4+
inputSpec: modules/openapi-generator/src/test/resources/3_0/features/generate-alias-as-model.yaml
5+
templateDir: modules/openapi-generator/src/main/resources/ruby-client
6+
additionalProperties:
7+
gemVersion: 1.0.0
8+
moduleName: Petstore
9+
gemName: petstore
10+
skipFormModel: "true"
11+
strictSpecBehavior: false
12+
generateAliasAsModel: true
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
openapi: 3.0.0
2+
info:
3+
description: This specification shows how to generate aliases to maps and arrays as models.
4+
version: 1.0.0
5+
title: OpenAPI Extension generating aliases to maps and arrays as models
6+
license:
7+
name: Apache-2.0
8+
url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
9+
tags:
10+
- name: usage
11+
description: Show usage of x-generate-alias-as-model extension
12+
servers:
13+
- url: 'http://petstore.swagger.io/v2'
14+
description: petstore server
15+
paths:
16+
/map:
17+
get:
18+
tags:
19+
- usage
20+
summary: Use alias to map
21+
description: Use alias to map
22+
operationId: map
23+
requestBody:
24+
content:
25+
"application/json":
26+
schema:
27+
$ref: "#/components/schemas/MapAlias"
28+
responses:
29+
'200':
30+
description: successful operation
31+
content:
32+
application/json:
33+
schema:
34+
type: object
35+
/array:
36+
get:
37+
tags:
38+
- usage
39+
summary: Use alias to array
40+
description: Use alias to array
41+
operationId: array
42+
requestBody:
43+
content:
44+
"application/json":
45+
schema:
46+
$ref: "#/components/schemas/ArrayAlias"
47+
responses:
48+
'200':
49+
description: successful operation
50+
content:
51+
application/json:
52+
schema:
53+
type: object
54+
55+
components:
56+
schemas:
57+
ArrayAlias:
58+
type: array
59+
items:
60+
type: integer
61+
62+
MapAlias:
63+
type: object
64+
additionalProperties:
65+
type: string
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Generated by: https://openapi-generator.tech
2+
#
3+
4+
*.gem
5+
*.rbc
6+
/.config
7+
/coverage/
8+
/InstalledFiles
9+
/pkg/
10+
/spec/reports/
11+
/spec/examples.txt
12+
/test/tmp/
13+
/test/version_tmp/
14+
/tmp/
15+
16+
## Specific to RubyMotion:
17+
.dat*
18+
.repl_history
19+
build/
20+
21+
## Documentation cache and generated files:
22+
/.yardoc/
23+
/_yardoc/
24+
/doc/
25+
/rdoc/
26+
27+
## Environment normalization:
28+
/.bundle/
29+
/vendor/bundle
30+
/lib/bundler/man/
31+
32+
# for a library or gem, you might want to ignore these files since the code is
33+
# intended to run in multiple environments; otherwise, check them in:
34+
# Gemfile.lock
35+
# .ruby-version
36+
# .ruby-gemset
37+
38+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
39+
.rvmrc
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# OpenAPI Generator Ignore
2+
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
3+
4+
# Use this file to prevent files from being overwritten by the generator.
5+
# The patterns follow closely to .gitignore or .dockerignore.
6+
7+
# As an example, the C# client generator defines ApiClient.cs.
8+
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
9+
#ApiClient.cs
10+
11+
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
12+
#foo/*/qux
13+
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
14+
15+
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
16+
#foo/**/qux
17+
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
18+
19+
# You can also negate patterns with an exclamation (!).
20+
# For example, you can ignore all files in a docs folder with the file extension .md:
21+
#docs/*.md
22+
# Then explicitly reverse the ignore rule for a single file:
23+
#!docs/README.md
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5.0.0-SNAPSHOT
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
--color
2+
--require spec_helper
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# This file is based on https://github.com/rails/rails/blob/master/.rubocop.yml (MIT license)
2+
# Automatically generated by OpenAPI Generator (https://openapi-generator.tech)
3+
AllCops:
4+
TargetRubyVersion: 2.4
5+
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
6+
# to ignore them, so only the ones explicitly set in this file are enabled.
7+
DisabledByDefault: true
8+
Exclude:
9+
- '**/templates/**/*'
10+
- '**/vendor/**/*'
11+
- 'actionpack/lib/action_dispatch/journey/parser.rb'
12+
13+
# Prefer &&/|| over and/or.
14+
Style/AndOr:
15+
Enabled: true
16+
17+
# Align `when` with `case`.
18+
Layout/CaseIndentation:
19+
Enabled: true
20+
21+
# Align comments with method definitions.
22+
Layout/CommentIndentation:
23+
Enabled: true
24+
25+
Layout/ElseAlignment:
26+
Enabled: true
27+
28+
Layout/EmptyLineAfterMagicComment:
29+
Enabled: true
30+
31+
# In a regular class definition, no empty lines around the body.
32+
Layout/EmptyLinesAroundClassBody:
33+
Enabled: true
34+
35+
# In a regular method definition, no empty lines around the body.
36+
Layout/EmptyLinesAroundMethodBody:
37+
Enabled: true
38+
39+
# In a regular module definition, no empty lines around the body.
40+
Layout/EmptyLinesAroundModuleBody:
41+
Enabled: true
42+
43+
Layout/FirstArgumentIndentation:
44+
Enabled: true
45+
46+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
47+
Style/HashSyntax:
48+
Enabled: false
49+
50+
# Method definitions after `private` or `protected` isolated calls need one
51+
# extra level of indentation.
52+
Layout/IndentationConsistency:
53+
Enabled: true
54+
EnforcedStyle: indented_internal_methods
55+
56+
# Two spaces, no tabs (for indentation).
57+
Layout/IndentationWidth:
58+
Enabled: true
59+
60+
Layout/LeadingCommentSpace:
61+
Enabled: true
62+
63+
Layout/SpaceAfterColon:
64+
Enabled: true
65+
66+
Layout/SpaceAfterComma:
67+
Enabled: true
68+
69+
Layout/SpaceAroundEqualsInParameterDefault:
70+
Enabled: true
71+
72+
Layout/SpaceAroundKeyword:
73+
Enabled: true
74+
75+
Layout/SpaceAroundOperators:
76+
Enabled: true
77+
78+
Layout/SpaceBeforeComma:
79+
Enabled: true
80+
81+
Layout/SpaceBeforeFirstArg:
82+
Enabled: true
83+
84+
Style/DefWithParentheses:
85+
Enabled: true
86+
87+
# Defining a method with parameters needs parentheses.
88+
Style/MethodDefParentheses:
89+
Enabled: true
90+
91+
Style/FrozenStringLiteralComment:
92+
Enabled: false
93+
EnforcedStyle: always
94+
95+
# Use `foo {}` not `foo{}`.
96+
Layout/SpaceBeforeBlockBraces:
97+
Enabled: true
98+
99+
# Use `foo { bar }` not `foo {bar}`.
100+
Layout/SpaceInsideBlockBraces:
101+
Enabled: true
102+
103+
# Use `{ a: 1 }` not `{a:1}`.
104+
Layout/SpaceInsideHashLiteralBraces:
105+
Enabled: true
106+
107+
Layout/SpaceInsideParens:
108+
Enabled: true
109+
110+
# Check quotes usage according to lint rule below.
111+
#Style/StringLiterals:
112+
# Enabled: true
113+
# EnforcedStyle: single_quotes
114+
115+
# Detect hard tabs, no hard tabs.
116+
Layout/IndentationStyle:
117+
Enabled: true
118+
119+
# Blank lines should not have any spaces.
120+
Layout/TrailingEmptyLines:
121+
Enabled: true
122+
123+
# No trailing whitespace.
124+
Layout/TrailingWhitespace:
125+
Enabled: false
126+
127+
# Use quotes for string literals when they are enough.
128+
Style/RedundantPercentQ:
129+
Enabled: true
130+
131+
# Align `end` with the matching keyword or starting expression except for
132+
# assignments, where it should be aligned with the LHS.
133+
Layout/EndAlignment:
134+
Enabled: true
135+
EnforcedStyleAlignWith: variable
136+
AutoCorrect: true
137+
138+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
139+
Lint/RequireParentheses:
140+
Enabled: true
141+
142+
Style/RedundantReturn:
143+
Enabled: true
144+
AllowMultipleReturnValues: true
145+
146+
Style/Semicolon:
147+
Enabled: true
148+
AllowAsExpressionSeparator: true
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: ruby
2+
cache: bundler
3+
rvm:
4+
- 2.3
5+
- 2.4
6+
- 2.5
7+
script:
8+
- bundle install --path vendor/bundle
9+
- bundle exec rspec
10+
- gem build petstore.gemspec
11+
- gem install ./petstore-1.0.0.gem
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
source 'https://rubygems.org'
2+
3+
gemspec
4+
5+
group :development, :test do
6+
gem 'rake', '~> 13.0.1'
7+
gem 'pry-byebug'
8+
gem 'rubocop', '~> 0.66.0'
9+
end

0 commit comments

Comments
 (0)