swagger_model 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 70a7b07c81b02668f2669f4330cfcfd3df16351d
4
- data.tar.gz: 3f942dcf8fac1e9ee8b4dbb2bea7bb1ffa2aabaa
3
+ metadata.gz: cf57cf03d80813be9a9cae114628a6e95952bcec
4
+ data.tar.gz: 6e63d664c107c4b00f0ae4e089d1e1a497e11dc5
5
5
  SHA512:
6
- metadata.gz: 88e47d4ef78d6d1d4cdeb755cfcd85365829538eddc72a01b5c3c576edec15141cbad9c51f2f82b3c39caf9de76c95dbf994880fab2fbb0517392dc95329edfe
7
- data.tar.gz: 80aa617ffee27a101f488bd6f4da8db7efdf644c2c3870fdb7c78b4e980a2aa9169eadbe75eecb6e7af2a20b43fe8150321b2c0864074a45949ab676c7a6df9e
6
+ metadata.gz: c3dca478b40875ba2b859f8d34208895b3c07a347d261be7378c33c8e2cf0354f41f98f24a5ca1fef90eb97942763c54ce8ddcc3f47d70e7770dcece897f1181
7
+ data.tar.gz: 4249ff16b6ecb9793ae363ac39e9b2667bff5ed8f9345bb70e4623afa996ed9b3384fa36b09636efd62edb343de014999acd2252873e8025973cf126818310e7
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ example/output/
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- swagger_model (0.2.1)
4
+ swagger_model (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,3 +1,3 @@
1
1
  module SwaggerModel
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/swagger_model.rb CHANGED
@@ -4,6 +4,7 @@ require 'yaml'
4
4
  require 'date'
5
5
  require 'active_support'
6
6
  require 'active_support/core_ext'
7
+ require 'fileutils'
7
8
 
8
9
  module SwaggerModel
9
10
  def self.date_time_valid?(str)
@@ -22,6 +23,7 @@ module SwaggerModel
22
23
  when 'Hash'
23
24
  if value.has_key?('id') && value.has_key?('type')
24
25
  model_name = ActiveSupport::Inflector.classify(value['type'])
26
+ model[model_name] = {}
25
27
  object = parse_object(value, model, model_name)
26
28
  properties = object['properties']
27
29
  newProperties = {}
@@ -36,28 +38,28 @@ module SwaggerModel
36
38
  properties.delete('id')
37
39
  properties.delete('type')
38
40
  newProperties['allOf'][1]['properties'] = properties
39
- model[model_name] = newProperties
41
+ model[model_name][model_name] = newProperties
40
42
  obj['$ref'] = '#/components/schemas/' + model_name
41
43
  elsif key == 'attributes'
42
44
  object = parse_object(value, model, root_key)
43
45
  properties = object['properties']
44
46
  model_name = root_key + 'Attributes'
45
- model[model_name] = {}
46
- model[model_name]['type'] = 'object'
47
- model[model_name]['properties'] = properties
47
+ model[root_key][model_name] = {}
48
+ model[root_key][model_name]['type'] = 'object'
49
+ model[root_key][model_name]['properties'] = properties
48
50
  if object['required'].size > 0
49
- model[model_name]['required'] = object['required']
51
+ model[root_key][model_name]['required'] = object['required']
50
52
  end
51
53
  obj['$ref'] = '#/components/schemas/' + model_name
52
54
  elsif key == 'relationships'
53
55
  object = parse_object(value, model, root_key)
54
56
  properties = object['properties']
55
57
  model_name = root_key + 'Relationships'
56
- model[model_name] = {}
57
- model[model_name]['type'] = 'object'
58
- model[model_name]['properties'] = properties
58
+ model[root_key][model_name] = {}
59
+ model[root_key][model_name]['type'] = 'object'
60
+ model[root_key][model_name]['properties'] = properties
59
61
  if object['required'].size > 0
60
- model[model_name]['required'] = object['required']
62
+ model[root_key][model_name]['required'] = object['required']
61
63
  end
62
64
  obj['$ref'] = '#/components/schemas/' + model_name
63
65
  else
@@ -135,7 +137,8 @@ module SwaggerModel
135
137
  response_model = {}
136
138
  response_model[response_name] = {}
137
139
  response_model[response_name]['type'] = "object"
138
- object = parse_object(response, response_model, response_name)
140
+ model = {}
141
+ object = parse_object(response, model, response_name)
139
142
  properties = object['properties']
140
143
  if properties.has_key?('links')
141
144
  links = {}
@@ -154,10 +157,17 @@ module SwaggerModel
154
157
  response_model[response_name]['required'] = object['required']
155
158
  end
156
159
  output_path = params[:output_path] || './'
157
- if params[:output_type] == 'json'
158
- File.write(File.join(output_path, "#{response_name}_model.json"), response_model.to_json)
159
- else
160
- File.write(File.join(output_path, "#{response_name}_model.yaml"), response_model.to_yaml)
160
+ output_path_responses = File.join(output_path, 'Responses/')
161
+ output_path_models = File.join(output_path, 'Models/')
162
+
163
+ FileUtils::mkdir_p output_path_responses
164
+ FileUtils::mkdir_p output_path_models
165
+
166
+ File.write(File.join(output_path_responses, "#{response_name}.yaml"), response_model.to_yaml)
167
+
168
+ keys = model.keys
169
+ for key in keys do
170
+ File.write(File.join(output_path_models, "#{key}.yaml"), model[key].to_yaml)
161
171
  end
162
172
  end
163
173
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - marumemomo
@@ -82,7 +82,6 @@ files:
82
82
  - bin/console
83
83
  - bin/setup
84
84
  - example/Example.json
85
- - example/output/ExampleResponse_model.yaml
86
85
  - lib/swagger_model.rb
87
86
  - lib/swagger_model/version.rb
88
87
  - swagger_model.gemspec
@@ -1,30 +0,0 @@
1
- ---
2
- ExampleResponse:
3
- type: object
4
- properties:
5
- user:
6
- type: object
7
- properties:
8
- name:
9
- type: string
10
- example: marumemomo
11
- age:
12
- type: integer
13
- example: 24
14
- required:
15
- - name
16
- - age
17
- message:
18
- type: string
19
- example: hello
20
- created_at:
21
- type: string
22
- example: '2018-05-05T20:02:24.000+09:00'
23
- format: date-time
24
- updated_at:
25
- type: ''
26
- example: ''
27
- required:
28
- - user
29
- - message
30
- - created_at