grape-swagger-entity 0.5.3 → 0.5.4

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
  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
  - - ">="