end
##
- # Returns the parsed section of the discovery document that applies to
- # this version of the service.
+ # Returns a human-readable title for the API.
#
- # @return [Hash] The service description.
+ # @return [Hash] The API title.
+ def title
+ return @discovery_document['title']
+ end
+
+ ##
+ # Returns a human-readable description of the API.
+ #
+ # @return [Hash] The API description.
def description
return @discovery_document['description']
end
+ ##
+ # Returns a URI for the API documentation.
+ #
+ # @return [Hash] The API documentation.
+ def documentation
+ return Addressable::URI.parse(@discovery_document['documentationLink'])
+ end
+
##
# Returns true if this is the preferred version of this API.
#
# @return [TrueClass, FalseClass]
# Whether or not this is the preferred version of this API.
def preferred
- return @discovery_document['preferred']
+ return !!@discovery_document['preferred']
+ end
+
+ ##
+ # Returns the list of API features.
+ #
+ # @return [Array]
+ # The features supported by this API.
+ def features
+ return @discovery_document['features'] || []
+ end
+
+ ##
+ # Returns true if this API uses a data wrapper.
+ #
+ # @return [TrueClass, FalseClass]
+ # Whether or not this API uses a data wrapper.
+ def data_wrapper?
+ return self.features.include?('dataWrapper')
end
##
)
end
+ ##
+ # Allows deep inspection of the discovery document.
+ def [](key)
+ return @discovery_document[key]
+ end
+
##
# Converts the service to a flat mapping of RPC names and method objects.
#