class Swagger::Data::Document

Constants

DEFAULT_HOST
SPEC_VERSION

Public Class Methods

new() click to toggle source

create an empty document

# File lib/ruby-swagger/data/document.rb, line 24
def initialize
  @swagger = '2.0'
  @info = Swagger::Data::Info.new
  @paths = Swagger::Data::Paths.new
end
parse(document) click to toggle source

parse an hash document into a set of Swagger objects

document is a hash
# File lib/ruby-swagger/data/document.rb, line 32
def self.parse(document)
  raise ArgumentError.new('Swagger::Document#parse - document object is nil') unless document

  Swagger::Data::Document.new.bulk_set(document)
end

Public Instance Methods

add_tag(new_tag) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 159
def add_tag(new_tag)
  return nil unless new_tag

  unless new_tag.is_a?(Swagger::Data::Tag)
    new_tag = Swagger::Data::Tag.parse(new_tag)
  end

  @tags.push(new_tag)
end
basePath=(new_path) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 51
def basePath=(new_path)
  new_path = new_path.nil? ? '/' : new_path

  unless new_path =~ /^\/.+$/
    new_path = "/#{new_path}" # new path must start with a /
  end

  @basePath ||= new_path
end
consumes=(new_consumes) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 81
def consumes=(new_consumes)
  return nil unless new_consumes

  new_consumes.each do |consume|
    raise ArgumentError.new("Swagger::Data::Document#consumes= - unrecognized consume type #{consume}]") unless Swagger::Data::Mime.valid?(consume)
  end

  @consumes = new_consumes
end
definitions=(new_definitions) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 99
def definitions=(new_definitions)
  return nil unless new_definitions

  unless new_definitions.is_a?(Swagger::Data::Definitions)
    new_definitions = Swagger::Data::Definitions.parse(new_definitions)
  end

  @definitions = new_definitions
end
externalDocs=(new_externalDocs) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 169
def externalDocs=(new_externalDocs)
  return nil unless new_externalDocs

  unless new_externalDocs.is_a?(Swagger::Data::ExternalDocumentation)
    new_externalDocs = Swagger::Data::ExternalDocumentation.parse(new_externalDocs)
  end

  @externalDocs = new_externalDocs
end
info=(new_info) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 43
def info=(new_info)
  raise ArgumentError.new('Swagger::Document#info= - info object is nil') unless new_info

  new_info = Swagger::Data::Info.parse(new_info) unless new_info.is_a?(Swagger::Data::Info)

  @info = new_info
end
parameters=(new_parameters) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 109
def parameters=(new_parameters)
  return nil unless new_parameters

  unless new_parameters.is_a?(Swagger::Data::Parameters)
    new_parameters = Swagger::Data::Parameters.parse(new_parameters)
  end

  @parameters = new_parameters
end
paths=(new_paths) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 91
def paths=(new_paths)
  raise ArgumentError.new('Swagger::Data::Document#paths= - paths is nil') unless paths

  new_paths = Swagger::Data::Paths.parse(new_paths) unless new_paths.is_a?(Swagger::Data::Paths)

  @paths = new_paths
end
produces=(new_produces) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 71
def produces=(new_produces)
  return nil unless new_produces

  new_produces.each do |produce|
    raise ArgumentError.new("Swagger::Data::Document#produces= - unrecognized produce type #{produce}") unless Swagger::Data::Mime.valid?(produce)
  end

  @produces = new_produces
end
responses=(new_responses) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 119
def responses=(new_responses)
  return nil unless new_responses

  unless new_responses.is_a?(Swagger::Data::Responses)
    new_responses = Swagger::Data::Responses.parse(new_responses)
  end

  @responses = new_responses
end
schemes=(new_schemes) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 61
def schemes=(new_schemes)
  return nil unless new_schemes

  new_schemes.each do |scheme|
    raise ArgumentError.new("Swagger::Data::Document#schemes= - unrecognized scheme #{scheme}") unless %w(http https ws wss).include?(scheme)
  end

  @schemes = new_schemes
end
security=(new_security) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 139
def security=(new_security)
  return nil unless new_security

  unless new_security.is_a?(Swagger::Data::SecurityRequirement)
    new_security = Swagger::Data::SecurityRequirement.parse(new_security)
  end

  @security = new_security
end
securityDefinitions=(newSecurityDef) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 129
def securityDefinitions=(newSecurityDef)
  return nil unless newSecurityDef

  unless newSecurityDef.is_a?(Swagger::Data::SecurityDefinitions)
    newSecurityDef = Swagger::Data::SecurityDefinitions.parse(newSecurityDef)
  end

  @securityDefinitions = newSecurityDef
end
swagger=(new_swagger) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 38
def swagger=(new_swagger)
  raise ArgumentError.new("Swagger::Document#swagger= - the document is not a swagger #{SPEC_VERSION} version") unless '2.0' == new_swagger
  @swagger = new_swagger
end
tags=(new_tags) click to toggle source
# File lib/ruby-swagger/data/document.rb, line 149
def tags=(new_tags)
  return nil unless new_tags

  @tags = []

  new_tags.each do |tag|
    add_tag(tag)
  end
end