swagger_model 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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