Skip to content

Commit 1286b1e

Browse files
committed
Fix rubocop
1 parent f05375d commit 1286b1e

2 files changed

Lines changed: 35 additions & 38 deletions

File tree

lib/grape-swagger/entity/helper.rb

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,36 @@
11
module GrapeSwagger
22
module Entity
3+
# Helper methods for DRY
34
class Helper
4-
def self.model_name(entity_model, endpoint)
5-
if endpoint.nil?
6-
entity_model.to_s.demodulize
7-
else
8-
endpoint.send(:expose_params_from_model, entity_model)
5+
class << self
6+
def model_name(entity_model, endpoint)
7+
if endpoint.nil?
8+
entity_model.to_s.demodulize
9+
else
10+
endpoint.send(:expose_params_from_model, entity_model)
11+
end
12+
end
13+
14+
def discriminator(entity_model)
15+
entity_model.superclass.root_exposures.detect do |value|
16+
value.documentation.try(:[], :is_discriminator)
17+
end
18+
end
19+
20+
def root_exposures_without_parent(entity_model)
21+
entity_model.root_exposures.select do |value|
22+
entity_model.superclass.root_exposures.find_by(value.attribute).nil?
23+
end
24+
end
25+
26+
def root_exposure_with_discriminator(entity_model)
27+
if discriminator(entity_model)
28+
root_exposures_without_parent(entity_model)
29+
else
30+
entity_model.root_exposures
31+
end
932
end
1033
end
1134
end
1235
end
13-
end
36+
end

lib/grape-swagger/entity/parser.rb

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,7 @@ def initialize(original, renamed)
2626
end
2727

2828
def extract_params(exposure)
29-
root_exposures =
30-
if discriminator(exposure)
31-
root_exposures_without_parent(exposure)
32-
else
33-
exposure.root_exposures
34-
end
35-
root_exposures.each_with_object({}) do |value, memo|
29+
GrapeSwagger::Entity::Helper.root_exposure_with_discriminator(exposure).each_with_object({}) do |value, memo|
3630
if value.for_merge && (value.respond_to?(:entity_class) || value.respond_to?(:using_class_name))
3731
entity_class = value.respond_to?(:entity_class) ? value.entity_class : value.using_class_name
3832

@@ -45,18 +39,6 @@ def extract_params(exposure)
4539
end
4640
end
4741

48-
def discriminator(exposure)
49-
exposure.superclass.root_exposures.detect do |value|
50-
value.documentation.try(:[], :is_discriminator)
51-
end
52-
end
53-
54-
def root_exposures_without_parent(exposure)
55-
exposure.root_exposures.select do |value|
56-
exposure.superclass.root_exposures.find_by(value.attribute).nil?
57-
end
58-
end
59-
6042
def parse_grape_entity_params(params, parent_model = nil)
6143
return unless params
6244

@@ -82,7 +64,7 @@ def parse_grape_entity_params(params, parent_model = nil)
8264
memo[final_entity_name][:description] = documentation[:desc] if documentation[:desc]
8365
end
8466

85-
discriminator = discriminator(model)
67+
discriminator = GrapeSwagger::Entity::Helper.discriminator(model)
8668
if discriminator
8769
respond_with_all_of(parsed, params, discriminator)
8870
else
@@ -91,14 +73,8 @@ def parse_grape_entity_params(params, parent_model = nil)
9173
end
9274

9375
def respond_with_all_of(parsed, params, discriminator)
94-
parent_name =
95-
GrapeSwagger::Entity::Helper.model_name(model.superclass, endpoint)
76+
parent_name = GrapeSwagger::Entity::Helper.model_name(model.superclass, endpoint)
9677

97-
if endpoint.nil?
98-
model.superclass.to_s.demodulize
99-
else
100-
endpoint.send(:expose_params_from_model, model.superclass)
101-
end
10278
{
10379
allOf: [
10480
{
@@ -116,11 +92,9 @@ def add_discriminator(parsed, discriminator)
11692
model_name = GrapeSwagger::Entity::Helper.model_name(model, endpoint)
11793

11894
parsed.merge(
119-
{
120-
discriminator.attribute => {
121-
type: 'string',
122-
enum: [model_name]
123-
}
95+
discriminator.attribute => {
96+
type: 'string',
97+
enum: [model_name]
12498
}
12599
)
126100
end

0 commit comments

Comments
 (0)