From 753119b743373f612f19b8fa62a8f5418ddb380d Mon Sep 17 00:00:00 2001 From: Garrett Blehm Date: Wed, 17 Jun 2020 09:13:19 -0500 Subject: [PATCH 1/5] Modify full entity name to be RFC3986 compliant #797 Signed-off-by: Garrett Blehm --- lib/grape-swagger/doc_methods/data_type.rb | 6 +++--- spec/issues/427_entity_as_string_spec.rb | 2 +- spec/issues/430_entity_definitions_spec.rb | 10 +++++----- spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/grape-swagger/doc_methods/data_type.rb b/lib/grape-swagger/doc_methods/data_type.rb index 2e45a778..a3bd7986 100644 --- a/lib/grape-swagger/doc_methods/data_type.rb +++ b/lib/grape-swagger/doc_methods/data_type.rb @@ -51,11 +51,11 @@ def parse_entity_name(model) if model.methods(false).include?(:entity_name) model.entity_name elsif model.to_s.end_with?('::Entity', '::Entities') - model.to_s.split('::')[0..-2].join('::') + model.to_s.split('::')[0..-2].join('_') elsif model.to_s.start_with?('Entity::', 'Entities::', 'Representable::') - model.to_s.split('::')[1..-1].join('::') + model.to_s.split('::')[1..-1].join('_') else - model.to_s + model.to_s.split('::').join('_') end end diff --git a/spec/issues/427_entity_as_string_spec.rb b/spec/issues/427_entity_as_string_spec.rb index 3a00ebda..2c377591 100644 --- a/spec/issues/427_entity_as_string_spec.rb +++ b/spec/issues/427_entity_as_string_spec.rb @@ -35,5 +35,5 @@ class RoleEntity < Grape::Entity JSON.parse(last_response.body)['definitions'] end - specify { expect(subject.keys).to include 'RoleEntity', 'Permission::WithoutRole' } + specify { expect(subject.keys).to include 'RoleEntity', 'Permission_WithoutRole' } end diff --git a/spec/issues/430_entity_definitions_spec.rb b/spec/issues/430_entity_definitions_spec.rb index 6de6515c..346bce92 100644 --- a/spec/issues/430_entity_definitions_spec.rb +++ b/spec/issues/430_entity_definitions_spec.rb @@ -82,11 +82,11 @@ class NameApi < Grape::API JSON.parse(last_response.body)['definitions'] end - specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class1' } - specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class2' } + specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class1' } + specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class2' } specify { expect(subject).to include 'FooKlass' } - specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class4::FourthEntity' } - specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class5::FithEntity' } + specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class4_FourthEntity' } + specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class5_FithEntity' } specify { expect(subject).to include 'BarKlass' } - specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class7::SeventhEntity' } + specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class7_SeventhEntity' } end diff --git a/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb b/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb index 197510fb..1a539e85 100644 --- a/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb +++ b/spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb @@ -189,7 +189,7 @@ def app 'type' => 'object', 'properties' => { 'data' => { - '$ref' => '#/definitions/NestedModule::ApiResponse', + '$ref' => '#/definitions/NestedModule_ApiResponse', 'description' => 'request data' } }, @@ -207,7 +207,7 @@ def app end specify do - expect(subject['definitions']['NestedModule::ApiResponse']).not_to be_nil + expect(subject['definitions']['NestedModule_ApiResponse']).not_to be_nil end specify do From 7f71765142f268582479de08e048df8c9681f683 Mon Sep 17 00:00:00 2001 From: Garrett Blehm Date: Wed, 17 Jun 2020 09:25:42 -0500 Subject: [PATCH 2/5] Update changelog and upgrading files Signed-off-by: Garrett Blehm --- CHANGELOG.md | 1 + UPGRADING.md | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 216dacaa..4f432638 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ #### Fixes * Your contribution here. +* [#798](https://github.com/ruby-grape/grape-swagger/pull/798): Modify entity name separator #797 - [@GarrettB71](https://github.com/GarrettB71). * [#796](https://github.com/ruby-grape/grape-swagger/pull/796): Support grape 1.4.0 - [@thedanielhanke](https://github.com/thedanielhanke). diff --git a/UPGRADING.md b/UPGRADING.md index 47790dd9..3d7a2d0d 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,5 +1,9 @@ ## Upgrading Grape-swagger +### Upgrading to >= 1.1.1 + +Full class name is modified to use `_` separator (e.g. `A_B_C` instead of `A::B::C`). + ### Upgrading to >= 1.1.0 Full class name is used for referencing entity by default (e.g. `A::B::C` instead of just `C`). `Entity` and `Entities` suffixes and prefixes are omitted (e.g. if entity name is `Entities::SomeScope::MyFavourite::Entity` only `SomeScope::MyFavourite` will be used). From ed46d5beb7afa6f7569b6906525e609624b2924b Mon Sep 17 00:00:00 2001 From: Garrett Blehm Date: Mon, 29 Jun 2020 08:45:59 -0500 Subject: [PATCH 3/5] Update Changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f432638..44540551 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ #### Fixes * Your contribution here. -* [#798](https://github.com/ruby-grape/grape-swagger/pull/798): Modify entity name separator #797 - [@GarrettB71](https://github.com/GarrettB71). +* [#798](https://github.com/ruby-grape/grape-swagger/pull/798): Modify full entity name separator - [@GarrettB71](https://github.com/GarrettB71). * [#796](https://github.com/ruby-grape/grape-swagger/pull/796): Support grape 1.4.0 - [@thedanielhanke](https://github.com/thedanielhanke). From 5b0e0e0ff83b27ec65a15d9df3e2286ab4525ef7 Mon Sep 17 00:00:00 2001 From: peter scholz Date: Tue, 30 Jun 2020 10:26:06 +0200 Subject: [PATCH 4/5] Corrects next version --- UPGRADING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UPGRADING.md b/UPGRADING.md index 3d7a2d0d..e9f25386 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,6 +1,6 @@ ## Upgrading Grape-swagger -### Upgrading to >= 1.1.1 +### Upgrading to >= 1.2.0 Full class name is modified to use `_` separator (e.g. `A_B_C` instead of `A::B::C`). From 82577ef2a51430d54a10cde4fbc15074e2d03b14 Mon Sep 17 00:00:00 2001 From: Garrett Blehm Date: Tue, 30 Jun 2020 08:30:47 -0500 Subject: [PATCH 5/5] Modified ineritance and discriminator spec Signed-off-by: Garrett Blehm --- spec/swagger_v2/inheritance_and_discriminator_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/swagger_v2/inheritance_and_discriminator_spec.rb b/spec/swagger_v2/inheritance_and_discriminator_spec.rb index 189c3016..8486ffd6 100644 --- a/spec/swagger_v2/inheritance_and_discriminator_spec.rb +++ b/spec/swagger_v2/inheritance_and_discriminator_spec.rb @@ -48,9 +48,9 @@ class NameApi < Grape::API end specify do - subject['InheritanceTest::Entities::Pet'].key?('discriminator') - subject['InheritanceTest::Entities::Pet']['discriminator'] = 'type' - subject['InheritanceTest::Entities::Cat'].key?('allOf') + subject['InheritanceTest_Entities_Pet'].key?('discriminator') + subject['InheritanceTest_Entities_Pet']['discriminator'] = 'type' + subject['InheritanceTest_Entities_Cat'].key?('allOf') end end end