Class: Apiwork::Introspection::API::Info

Inherits:
Object
  • Object
show all
Defined in:
lib/apiwork/introspection/api/info.rb,
lib/apiwork/introspection/api/info/server.rb,
lib/apiwork/introspection/api/info/contact.rb,
lib/apiwork/introspection/api/info/license.rb

Overview

Wraps API metadata/info.

Examples:

info = api.info
info.title # => "My API"
info.version # => "1.0.0"
info.description # => "API for managing resources"
info.contact&.email # => "support@example.com"
info.license&.name # => "MIT"

Defined Under Namespace

Classes: Contact, License, Server

Instance Method Summary collapse

Constructor Details

#initialize(dump) ⇒ Info

Returns a new instance of Info.



17
18
19
# File 'lib/apiwork/introspection/api/info.rb', line 17

def initialize(dump)
  @dump = dump
end

Instance Method Details

#contactInfo::Contact?

The API contact.

Returns:

See Also:



66
67
68
# File 'lib/apiwork/introspection/api/info.rb', line 66

def contact
  @contact ||= @dump[:contact] ? Contact.new(@dump[:contact]) : nil
end

#descriptionString?

The API description.

Returns:

  • (String, nil)


41
42
43
# File 'lib/apiwork/introspection/api/info.rb', line 41

def description
  @dump[:description]
end

#licenseInfo::License?

The API license.

Returns:

See Also:



75
76
77
# File 'lib/apiwork/introspection/api/info.rb', line 75

def license
  @license ||= @dump[:license] ? License.new(@dump[:license]) : nil
end

#serversArray<Info::Server>

The API servers.

Returns:

See Also:



84
85
86
# File 'lib/apiwork/introspection/api/info.rb', line 84

def servers
  @servers ||= @dump[:servers].map { |server| Server.new(server) }
end

#summaryString?

The API summary.

Returns:

  • (String, nil)


49
50
51
# File 'lib/apiwork/introspection/api/info.rb', line 49

def summary
  @dump[:summary]
end

#terms_of_serviceString?

The API terms of service.

Returns:

  • (String, nil)


57
58
59
# File 'lib/apiwork/introspection/api/info.rb', line 57

def terms_of_service
  @dump[:terms_of_service]
end

#titleString?

The API title.

Returns:

  • (String, nil)


25
26
27
# File 'lib/apiwork/introspection/api/info.rb', line 25

def title
  @dump[:title]
end

#to_hHash

Converts the API info to a hash.

Returns:

  • (Hash)


92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/apiwork/introspection/api/info.rb', line 92

def to_h
  {
    contact: contact&.to_h,
    description: description,
    license: license&.to_h,
    servers: servers.map(&:to_h),
    summary: summary,
    terms_of_service: terms_of_service,
    title: title,
    version: version,
  }
end

#versionString?

The API version.

Returns:

  • (String, nil)


33
34
35
# File 'lib/apiwork/introspection/api/info.rb', line 33

def version
  @dump[:version]
end