Class: SwaggerYard::ResourceListing

Inherits:
Object
  • Object
show all
Defined in:
lib/swagger_yard/resource_listing.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller_path, model_path) ⇒ ResourceListing

Returns a new instance of ResourceListing.



9
10
11
12
13
14
15
# File 'lib/swagger_yard/resource_listing.rb', line 9

def initialize(controller_path, model_path)
  @model_paths = [*model_path].compact
  @controller_paths = [*controller_path].compact

  @resource_to_file_path = {}
  @authorizations = []
end

Instance Attribute Details

#authorizationsObject

Returns the value of attribute authorizations.



3
4
5
# File 'lib/swagger_yard/resource_listing.rb', line 3

def authorizations
  @authorizations
end

Class Method Details

.allObject



5
6
7
# File 'lib/swagger_yard/resource_listing.rb', line 5

def self.all
  new(SwaggerYard.config.controller_path, SwaggerYard.config.model_path)
end

Instance Method Details

#controllersObject



21
22
23
# File 'lib/swagger_yard/resource_listing.rb', line 21

def controllers
  @controllers ||= parse_controllers
end

#model_objectsObject



41
42
43
# File 'lib/swagger_yard/resource_listing.rb', line 41

def model_objects
  Hash[models.map {|m| [m.id, m.to_h]}]
end

#modelsObject



17
18
19
# File 'lib/swagger_yard/resource_listing.rb', line 17

def models
  @models ||= parse_models
end

#path_objectsObject



32
33
34
# File 'lib/swagger_yard/resource_listing.rb', line 32

def path_objects
  controllers.map(&:apis_hash).reduce({}, :merge)
end

#security_objectsObject



45
46
47
48
49
50
# File 'lib/swagger_yard/resource_listing.rb', line 45

def security_objects
  controllers # triggers controller parsing in case it did not happen before
  SwaggerYard.config.security_definitions.merge(
    Hash[authorizations.map {|auth| [auth.name, auth.to_h]}]
  )
end

#tag_objectsObject

Resources



37
38
39
# File 'lib/swagger_yard/resource_listing.rb', line 37

def tag_objects
  controllers.map(&:to_tag)
end

#to_hObject



25
26
27
28
29
30
# File 'lib/swagger_yard/resource_listing.rb', line 25

def to_h
  { "paths"               => path_objects,
    "definitions"         => model_objects,
    "tags"                => tag_objects,
    "securityDefinitions" => security_objects }
end