Skip to content

Commit 961e7ca

Browse files
Garrett BlehmGarrett BlehmLeFnord
authored
Modify full entity name to be RFC3986 compliant #797 (#798)
* Modify full entity name to be RFC3986 compliant #797 Signed-off-by: Garrett Blehm <[email protected]> * Update changelog and upgrading files Signed-off-by: Garrett Blehm <[email protected]> * Update Changelog * Corrects next version * Modified ineritance and discriminator spec Signed-off-by: Garrett Blehm <[email protected]> Co-authored-by: Garrett Blehm <[email protected]> Co-authored-by: peter scholz <[email protected]>
1 parent e86c9ba commit 961e7ca

File tree

7 files changed

+19
-14
lines changed

7 files changed

+19
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#### Fixes
99

1010
* Your contribution here.
11+
* [#798](https://github.com/ruby-grape/grape-swagger/pull/798): Modify full entity name separator - [@GarrettB71](https://github.com/GarrettB71).
1112
* [#796](https://github.com/ruby-grape/grape-swagger/pull/796): Support grape 1.4.0 - [@thedanielhanke](https://github.com/thedanielhanke).
1213

1314

UPGRADING.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## Upgrading Grape-swagger
22

3+
### Upgrading to >= 1.2.0
4+
5+
Full class name is modified to use `_` separator (e.g. `A_B_C` instead of `A::B::C`).
6+
37
### Upgrading to >= 1.1.0
48

59
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).

lib/grape-swagger/doc_methods/data_type.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ def parse_entity_name(model)
5151
if model.methods(false).include?(:entity_name)
5252
model.entity_name
5353
elsif model.to_s.end_with?('::Entity', '::Entities')
54-
model.to_s.split('::')[0..-2].join('::')
54+
model.to_s.split('::')[0..-2].join('_')
5555
elsif model.to_s.start_with?('Entity::', 'Entities::', 'Representable::')
56-
model.to_s.split('::')[1..-1].join('::')
56+
model.to_s.split('::')[1..-1].join('_')
5757
else
58-
model.to_s
58+
model.to_s.split('::').join('_')
5959
end
6060
end
6161

spec/issues/427_entity_as_string_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ class RoleEntity < Grape::Entity
3535
JSON.parse(last_response.body)['definitions']
3636
end
3737

38-
specify { expect(subject.keys).to include 'RoleEntity', 'Permission::WithoutRole' }
38+
specify { expect(subject.keys).to include 'RoleEntity', 'Permission_WithoutRole' }
3939
end

spec/issues/430_entity_definitions_spec.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ class NameApi < Grape::API
8282
JSON.parse(last_response.body)['definitions']
8383
end
8484

85-
specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class1' }
86-
specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class2' }
85+
specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class1' }
86+
specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class2' }
8787
specify { expect(subject).to include 'FooKlass' }
88-
specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class4::FourthEntity' }
89-
specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class5::FithEntity' }
88+
specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class4_FourthEntity' }
89+
specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class5_FithEntity' }
9090
specify { expect(subject).to include 'BarKlass' }
91-
specify { expect(subject).to include 'TestDefinition::DummyEntities::WithVeryLongName::AnotherGroupingModule::Class7::SeventhEntity' }
91+
specify { expect(subject).to include 'TestDefinition_DummyEntities_WithVeryLongName_AnotherGroupingModule_Class7_SeventhEntity' }
9292
end

spec/swagger_v2/api_swagger_v2_param_type_body_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ def app
189189
'type' => 'object',
190190
'properties' => {
191191
'data' => {
192-
'$ref' => '#/definitions/NestedModule::ApiResponse',
192+
'$ref' => '#/definitions/NestedModule_ApiResponse',
193193
'description' => 'request data'
194194
}
195195
},
@@ -207,7 +207,7 @@ def app
207207
end
208208

209209
specify do
210-
expect(subject['definitions']['NestedModule::ApiResponse']).not_to be_nil
210+
expect(subject['definitions']['NestedModule_ApiResponse']).not_to be_nil
211211
end
212212

213213
specify do

spec/swagger_v2/inheritance_and_discriminator_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ class NameApi < Grape::API
4848
end
4949

5050
specify do
51-
subject['InheritanceTest::Entities::Pet'].key?('discriminator')
52-
subject['InheritanceTest::Entities::Pet']['discriminator'] = 'type'
53-
subject['InheritanceTest::Entities::Cat'].key?('allOf')
51+
subject['InheritanceTest_Entities_Pet'].key?('discriminator')
52+
subject['InheritanceTest_Entities_Pet']['discriminator'] = 'type'
53+
subject['InheritanceTest_Entities_Cat'].key?('allOf')
5454
end
5555
end
5656
end

0 commit comments

Comments
 (0)