module Swagger::Blocks::ClassMethods

Private Instance Methods

_swagger_nodes() click to toggle source
# File lib/swagger/blocks/class_methods.rb, line 60
def _swagger_nodes
  # Avoid initialization warnings.
  @swagger_root_node ||= nil
  @swagger_path_node_map ||= {}
  @swagger_schema_node_map ||= nil
  @swagger_api_root_node_map ||= {}
  @swagger_models_node ||= nil
  @swagger_components_node ||= nil

  data = {root_node: @swagger_root_node}
  data[:path_node_map] = @swagger_path_node_map
  data[:schema_node_map] = @swagger_schema_node_map
  data[:api_node_map] = @swagger_api_root_node_map
  data[:models_node] = @swagger_models_node
  data[:component_node] = @swagger_components_node
  data
end
swagger_component(inline_keys = nil, &block) click to toggle source
# File lib/swagger/blocks/class_methods.rb, line 56
def swagger_component(inline_keys = nil, &block)
  @swagger_components_node ||= Swagger::Blocks::Nodes::ComponentNode.call(version: '3.0.0', inline_keys: inline_keys, &block)
end
swagger_path(path, &block) click to toggle source

v2.0: Defines a Swagger Path Item object github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#path-item-object

# File lib/swagger/blocks/class_methods.rb, line 22
def swagger_path(path, &block)
  path = path.to_sym

  # TODO enforce that path name begins with a '/'
  #   (or x- , but need to research Vendor Extensions first)

  @swagger_path_node_map ||= {}

  path_node = @swagger_path_node_map[path]
  if path_node
    # Merge this path declaration into the previous one
    path_node.instance_eval(&block)
  else
    # First time we've seen this path
    @swagger_path_node_map[path] = Swagger::Blocks::Nodes::PathNode.call(version: version, &block)
  end
end
swagger_root(inline_keys = nil, &block) click to toggle source

v2.0: Defines a Swagger Object v2.0: github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#swagger-object

# File lib/swagger/blocks/class_methods.rb, line 8
def swagger_root(inline_keys = nil, &block)
  @swagger_root_node ||= Swagger::Blocks::Nodes::RootNode.call(inline_keys: inline_keys, &block)
end
swagger_schema(name, inline_keys = nil, &block) click to toggle source

v2.0: Defines a Swagger Definition Schema, v2.0: github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#definitionsObject and v2.0: github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#schema-object

# File lib/swagger/blocks/class_methods.rb, line 43
def swagger_schema(name, inline_keys = nil, &block)
  @swagger_schema_node_map ||= {}

  schema_node = @swagger_schema_node_map[name]
  if schema_node
    # Merge this schema_node declaration into the previous one
    schema_node.instance_eval(&block)
  else
    # First time we've seen this schema_node
    @swagger_schema_node_map[name] = Swagger::Blocks::Nodes::SchemaNode.call(version: version, inline_keys: inline_keys, &block)
  end
end
version() click to toggle source
# File lib/swagger/blocks/class_methods.rb, line 12
def version
  if defined?(@swagger_root_node) && @swagger_root_node.data[:info] && @swagger_root_node.data[:info].version == '3.0.0'
    '3.0.0'
  else
    '2.0'
  end
end