grape-swagger-entity 0.5.3 → 0.5.4

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
  SHA256:
3
- metadata.gz: add308a25b9c529ea00b8527b3b435738f226a9af7c25e95aac0725c672b714b
4
- data.tar.gz: a8e5cc48c165535bc489c8cff7879e5ad6cf4650996a8f9838a073bd1bfc3840
3
+ metadata.gz: 66316a1c70ab713f2d7f9899880ed1503f2759d42a3243bf88582f26607f62c3
4
+ data.tar.gz: 8261dc51d4a3b267dd616c3a1e904539962ffe934df614d40ab0a7f378fe79ba
5
5
  SHA512:
6
- metadata.gz: 2fd8fc5aff26713b93abf4290ce6c56054c3e497a860c9873c8a6675b1769807f6a236cdbe62961fae6891a4667fbd250579db4f2c5c82ef2875713d8917e90c
7
- data.tar.gz: 54248e88317f33f1a12d2f7ede6b5f897e2b3e5ea21927b1fc4a078358a46cb6d36abff7455cebc11d066c9fd75421b044686dfb1417d76312953f9b6de96b54
6
+ metadata.gz: '05932d2302fe021785def61b163221e75da82bbb6106026ab5f879b629fd62a2af97034340df6f9273f19a511b56fc913d2471f4c3210e3c09ce679b92d7410a'
7
+ data.tar.gz: 0c86bc0f11753b472db09c658643353dae2e01f369b16f57e19aa816bf9ccf3a249685c2c4b5a4a8fc6a9cde237feec8e81dee7f71ef298e2279653fc0d2a894
@@ -10,7 +10,7 @@ jobs:
10
10
  name: RuboCop
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v3
13
+ - uses: actions/checkout@v4
14
14
 
15
15
  - name: Set up Ruby
16
16
  uses: ruby/setup-ruby@v1
@@ -24,16 +24,16 @@ jobs:
24
24
 
25
25
  test:
26
26
  env:
27
- GRAPE_ENTITY: 0.8.0
27
+ GRAPE_ENTITY: 1.0.0
28
28
 
29
29
  runs-on: ubuntu-latest
30
30
  strategy:
31
31
  fail-fast: false
32
32
  matrix:
33
- ruby-version: ['3.0', '3.1', '3.2']
33
+ ruby-version: ['3.0', '3.1', '3.2', '3.3']
34
34
 
35
35
  steps:
36
- - uses: actions/checkout@v3
36
+ - uses: actions/checkout@v4
37
37
  - name: Set up Ruby
38
38
  uses: ruby/setup-ruby@v1
39
39
  with:
data/.rubocop_todo.yml CHANGED
@@ -58,6 +58,7 @@ Metrics/BlockLength:
58
58
  # Configuration parameters: CountComments, Max, CountAsOne.
59
59
  Metrics/ClassLength:
60
60
  Exclude:
61
+ - 'lib/grape-swagger/entity/attribute_parser.rb'
61
62
  - 'lib/grape-swagger/entity/parser.rb'
62
63
 
63
64
  # Offense count: 2
data/CHANGELOG.md CHANGED
@@ -1,12 +1,13 @@
1
- ### Next
1
+ ### 0.5.4 (2024/04/19)
2
2
 
3
3
  #### Features
4
4
 
5
- * Your contribution here.
5
+ * [#69](https://github.com/ruby-grape/grape-swagger-entity/pull/67): Add support for minimum and maximum - [@storey](https://github.com/storey).
6
6
 
7
7
  #### Fixes
8
8
 
9
- * Your contribution here.
9
+ * [#67](https://github.com/ruby-grape/grape-swagger-entity/pull/67): Various build updates - [@mscrivo](https://github.com/mscrivo).
10
+ * [#68](https://github.com/ruby-grape/grape-swagger-entity/pull/68): Properly render `example` for array exposure done using another entity - [@magni-](https://github.com/magni-).
10
11
 
11
12
  ### 0.5.3 (2024/02/02)
12
13
 
data/Gemfile CHANGED
@@ -21,7 +21,7 @@ end
21
21
  gem 'grape-swagger', git: 'https://github.com/ruby-grape/grape-swagger.git'
22
22
 
23
23
  group :test do
24
- gem 'grape-entity', ENV.fetch('GRAPE_ENTITY', '0.6.1')
24
+ gem 'grape-entity', ENV.fetch('GRAPE_ENTITY', '1.0.0')
25
25
  gem 'ruby-grape-danger', '~> 0.2.1', require: false
26
26
  gem 'simplecov', require: false
27
27
  end
data/RELEASING.md CHANGED
@@ -29,7 +29,7 @@ Remove the line with "Your contribution here.", since there will be no more cont
29
29
  Commit your changes.
30
30
 
31
31
  ```
32
- git add CHANGELOG.md lib/grape-swagger-entity/version.rb
32
+ git add CHANGELOG.md lib/grape-swagger/entity/version.rb CHANGELOG.md
33
33
  git commit -m "Preparing for release, 0.1.1."
34
34
  git push origin master
35
35
  ```
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
19
19
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  s.require_paths = ['lib']
21
21
 
22
- s.required_ruby_version = '>= 2.4'
23
- s.add_runtime_dependency 'grape-entity', '>= 0.6.0'
24
- s.add_runtime_dependency 'grape-swagger', '>= 1.2.0'
22
+ s.required_ruby_version = '>= 3.0'
23
+ s.add_runtime_dependency 'grape-entity', '~> 1'
24
+ s.add_runtime_dependency 'grape-swagger', '~> 2'
25
25
  s.metadata['rubygems_mfa_required'] = 'true'
26
26
  end
@@ -10,41 +10,30 @@ module GrapeSwagger
10
10
  end
11
11
 
12
12
  def call(entity_options)
13
- documentation = entity_options[:documentation]
14
- entity_model = model_from(entity_options)
15
-
16
- if entity_model
17
- name = GrapeSwagger::Entity::Helper.model_name(entity_model, endpoint)
18
-
19
- entity_model_type = entity_model_type(name, entity_options)
20
- return entity_model_type unless documentation
21
-
22
- add_extension_documentation(entity_model_type, documentation)
23
- add_array_documentation(entity_model_type, documentation) if documentation[:is_array]
13
+ param = if (entity_model = model_from(entity_options))
14
+ name = GrapeSwagger::Entity::Helper.model_name(entity_model, endpoint)
15
+ entity_model_type(name, entity_options)
16
+ else
17
+ data_type_from(entity_options)
18
+ end
24
19
 
25
- entity_model_type
26
- else
27
- param = data_type_from(entity_options)
28
- return param unless documentation
20
+ documentation = entity_options[:documentation]
21
+ return param if documentation.nil?
29
22
 
30
- if (values = documentation[:values]) && values.is_a?(Array)
31
- param[:enum] = values
32
- end
23
+ if (values = documentation[:values]) && values.is_a?(Array)
24
+ param[:enum] = values
25
+ end
33
26
 
34
- if documentation[:is_array]
35
- param = { type: :array, items: param }
36
- add_array_documentation(param, documentation)
37
- end
27
+ add_array_documentation(param, documentation) if documentation[:is_array]
38
28
 
39
- add_attribute_sample(param, documentation, :default)
40
- add_attribute_sample(param, documentation, :example)
29
+ add_attribute_sample(param, documentation, :default)
30
+ add_attribute_sample(param, documentation, :example)
41
31
 
42
- add_attribute_documentation(param, documentation)
32
+ add_attribute_documentation(param, documentation)
43
33
 
44
- add_extension_documentation(param, documentation)
45
- add_discriminator_extension(param, documentation)
46
- param
47
- end
34
+ add_extension_documentation(param, documentation)
35
+ add_discriminator_extension(param, documentation)
36
+ param
48
37
  end
49
38
 
50
39
  private
@@ -79,7 +68,16 @@ module GrapeSwagger
79
68
 
80
69
  data_type = GrapeSwagger::DocMethods::DataType.call(documented_type)
81
70
 
82
- document_data_type(documentation[:documentation], data_type)
71
+ documented_data_type = document_data_type(documentation[:documentation], data_type)
72
+
73
+ if documentation[:documentation] && documentation[:documentation][:is_array]
74
+ {
75
+ type: :array,
76
+ items: documented_data_type
77
+ }
78
+ else
79
+ documented_data_type
80
+ end
83
81
  end
84
82
 
85
83
  def document_data_type(documentation, data_type)
@@ -117,6 +115,15 @@ module GrapeSwagger
117
115
  end
118
116
 
119
117
  def add_attribute_documentation(param, documentation)
118
+ param[:minimum] = documentation[:minimum] if documentation.key?(:minimum)
119
+ param[:maximum] = documentation[:maximum] if documentation.key?(:maximum)
120
+
121
+ values = documentation[:values]
122
+ if values&.is_a?(Range)
123
+ param[:minimum] = values.begin if values.begin.is_a?(Numeric)
124
+ param[:maximum] = values.end if values.end.is_a?(Numeric)
125
+ end
126
+
120
127
  param[:minLength] = documentation[:min_length] if documentation.key?(:min_length)
121
128
  param[:maxLength] = documentation[:max_length] if documentation.key?(:max_length)
122
129
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GrapeSwagger
4
4
  module Entity
5
- VERSION = '0.5.3'
5
+ VERSION = '0.5.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-swagger-entity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Zaitsev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-02 00:00:00.000000000 Z
11
+ date: 2024-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grape-entity
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.0
19
+ version: '1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.0
26
+ version: '1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: grape-swagger
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2.0
33
+ version: '2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.2.0
40
+ version: '2'
41
41
  description:
42
42
  email:
43
43
  - kirik910@gmail.com
@@ -80,7 +80,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: '2.4'
83
+ version: '3.0'
84
84
  required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="