Module: Swagger::Blocks::InternalHelpers

Defined in:
lib/swagger/blocks.rb

Class Method Summary collapse

Class Method Details

.get_resource_listing(root_nodes) ⇒ Object

Make sure there is exactly one root_node and return it.



59
60
61
62
63
64
65
66
67
68
# File 'lib/swagger/blocks.rb', line 59

def self.get_resource_listing(root_nodes)
  if root_nodes.length == 0
    raise Swagger::Blocks::DeclarationError.new(
      'swagger_root must be declared')
  elsif root_nodes.length > 1
    raise Swagger::Blocks::DeclarationError.new(
      'Only one swagger_root declaration is allowed.')
  end
  root_nodes.first
end

.parse_swaggered_classes(swaggered_classes) ⇒ Object

Return [root_node, api_node_map] from all of the given swaggered_classes.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/swagger/blocks.rb', line 37

def self.parse_swaggered_classes(swaggered_classes)
  root_nodes = []
  api_node_map = {}
  models_nodes = []
  swaggered_classes.each do |swaggered_class|
    next if !swaggered_class.respond_to?(:_swagger_nodes, true)
    swagger_nodes = swaggered_class.send(:_swagger_nodes)
    root_node = swagger_nodes[:resource_listing_node]
    root_nodes << root_node if root_node
    api_node_map.merge!(swagger_nodes[:api_node_map])
    models_nodes << swagger_nodes[:models_node] if swagger_nodes[:models_node]
  end
  root_node = self.get_resource_listing(root_nodes)

  {
    root_node: root_node,
    api_node_map: api_node_map,
    models_nodes: models_nodes,
  }
end