Skip to content

Commit b3b0eba

Browse files
committed
Merge pull request #226 from engineyard/infer-simple-parameter-descriptions
infer response_field description from name + scope
2 parents 2c8f4df + c531c9a commit b3b0eba

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

lib/rspec_api_documentation/dsl/resource.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,11 @@ def callback(*args, &block)
3939
end
4040

4141
def parameter(name, *args)
42-
options = args.extract_options!
43-
description = args.pop || "#{Array(options[:scope]).join(" ")} #{name}".humanize
44-
45-
parameters.push(options.merge(:name => name.to_s, :description => description))
42+
parameters.push(field_specification(name, *args))
4643
end
4744

48-
def response_field(name, description, options = {})
49-
response_fields.push(options.merge(:name => name.to_s, :description => description))
45+
def response_field(name, *args)
46+
response_fields.push(field_specification(name, *args))
5047
end
5148

5249
def header(name, value)
@@ -55,6 +52,13 @@ def header(name, value)
5552

5653
private
5754

55+
def field_specification(name, *args)
56+
options = args.extract_options!
57+
description = args.pop || "#{Array(options[:scope]).join(" ")} #{name}".humanize
58+
59+
options.merge(:name => name.to_s, :description => description)
60+
end
61+
5862
def safe_metadata(field, default)
5963
metadata[field] ||= default
6064
if superclass_metadata && metadata[field].equal?(superclass_metadata[field])

spec/dsl_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
response_field :type, "The type of drink you ordered.", :scope => :order
6363
response_field :size, "The size of drink you ordered.", :scope => :order
6464
response_field :note, "Any additional notes about your order.", :scope => :order
65+
response_field :name, :scope => :order
6566
response_field :id, "The order id"
6667

6768
let(:type) { "coffee" }
@@ -87,6 +88,7 @@
8788
{ :name => "type", :description => "The type of drink you ordered.", :scope => :order },
8889
{ :name => "size", :description => "The size of drink you ordered.", :scope => :order },
8990
{ :name => "note", :description => "Any additional notes about your order.", :scope => :order },
91+
{ :name => "name", :description => "Order name", :scope => :order },
9092
{ :name => "id", :description => "The order id" },
9193
]
9294
)

0 commit comments

Comments
 (0)