Module: SwaggerYard

Defined in:
lib/swagger_yard.rb,
lib/swagger_yard/api.rb,
lib/swagger_yard/type.rb,
lib/swagger_yard/model.rb,
lib/swagger_yard/version.rb,
lib/swagger_yard/property.rb,
lib/swagger_yard/operation.rb,
lib/swagger_yard/parameter.rb,
lib/swagger_yard/listing_info.rb,
lib/swagger_yard/authorization.rb,
lib/swagger_yard/configuration.rb,
lib/swagger_yard/api_declaration.rb,
lib/swagger_yard/resource_listing.rb

Defined Under Namespace

Classes: Api, ApiDeclaration, Authorization, Configuration, ListingInfo, Model, Operation, Parameter, Property, ResourceListing, Type

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configObject



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

def config
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Configuration for Swagger Yard, use like:

SwaggerYard.configure do |config|
  config.swagger_version = "1.1"
  config.api_version = "0.1"
  config.doc_base_path = "http://swagger.example.com/doc"
  config.api_base_path = "http://swagger.example.com/api"
  config.reload = true # Rails.env.development?
end

Yields:



27
28
29
# File 'lib/swagger_yard.rb', line 27

def configure
  yield config
end

.register_custom_yard_tags!Object

Register some custom yard tags used by swagger-ui



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/swagger_yard.rb', line 53

def register_custom_yard_tags!
  ::YARD::Tags::Library.define_tag("Api resource", :resource)
  ::YARD::Tags::Library.define_tag("Resource path", :resource_path)
  ::YARD::Tags::Library.define_tag("Api path", :path, :with_types)
  ::YARD::Tags::Library.define_tag("Parameter", :parameter, :with_types_name_and_default)
  ::YARD::Tags::Library.define_tag("Parameter list", :parameter_list)
  ::YARD::Tags::Library.define_tag("Status code", :status_code)
  ::YARD::Tags::Library.define_tag("Implementation notes", :notes)
  ::YARD::Tags::Library.define_tag("Response type", :response_type, :with_types)
  ::YARD::Tags::Library.define_tag("Error response message", :error_message, :with_types_and_name)
  ::YARD::Tags::Library.define_tag("Api Summary", :summary)
  ::YARD::Tags::Library.define_tag("Model resource", :model)
  ::YARD::Tags::Library.define_tag("Model property", :property, :with_types_name_and_default)
  ::YARD::Tags::Library.define_tag("Authorization", :authorization, :with_types_and_name)
  ::YARD::Tags::Library.define_tag("Authorization Use", :authorize_with)
end

.yard_objects_from_file(file_path) ⇒ YARD

Use YARD to parse object tags from a file

Parameters:

  • file_path (string)

    The complete path to file

Returns:

  • (YARD)

    objects representing class/methods and tags from the file



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

def yard_objects_from_file(file_path)
  ::YARD::Registry.clear
  ::YARD.parse(file_path)
  ::YARD::Registry.all
end

.yard_objects_from_resource(resource_name) ⇒ Object



47
48
49
# File 'lib/swagger_yard.rb', line 47

def yard_objects_from_resource(resource_name)
  yard_objects_from_file(resource_to_file_path[resource_name])
end