lib/rspec_api_docs/formatter/resource.rb in rspec-api-docs-0.9.0 vs lib/rspec_api_docs/formatter/resource.rb in rspec-api-docs-0.10.0
- old
+ new
@@ -2,10 +2,12 @@
require 'rspec_api_docs/formatter/resource/parameter'
require 'rspec_api_docs/formatter/resource/response_field'
module RspecApiDocs
class Resource
+ MAX_PRECEDENCE = 9_999
+
attr_reader :rspec_example
def initialize(rspec_example)
@rspec_example = rspec_example
@examples = []
@@ -15,11 +17,11 @@
#
# E.g. "Characters"
#
# @return [String]
def name
- metadata.fetch(:resource_name, rspec_example.metadata[:example_group][:description])
+ metadata.fetch(:resource_name) { rspec_example.metadata[:example_group][:description] }
end
# The description of the resource.
#
# E.g. "Orders can be created, viewed, and deleted"
@@ -31,22 +33,29 @@
# Returns an array of {Example}s
#
# @return [Array<Example>]
def examples
- @examples.sort_by { |example| [example.precedence, example.name].join }
+ @examples.sort_by { |example| [example.precedence, example.name] }
end
# Add an example
#
# @return [void]
def add_example(example)
@examples << example
end
- # @return [String, nil]
+ # @return [Integer]
def precedence
- metadata[:resource_precedence]
+ @precedence ||= metadata.fetch(:resource_precedence, MAX_PRECEDENCE)
+ end
+
+ # Set the resource precedence
+ #
+ # @return [void]
+ def precedence=(value)
+ @precedence = value
end
def inspect
"#<RspecApiDocs::Resource #{name.inspect}, @examples=#{examples.inspect}>"
end