Skip to content

Commit 0af5fd1

Browse files
committed
Merge pull request #225 from engineyard/infer-simple-parameter-descriptions
infer parameter description from name and scope
2 parents 1c7f917 + c371bcc commit 0af5fd1

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

lib/rspec_api_documentation/dsl/resource.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module Resource
66
module ClassMethods
77
def self.define_action(method)
88
define_method method do |*args, &block|
9-
options = if args.last.is_a?(Hash) then args.pop else {} end
9+
options = args.extract_options!
1010
options[:method] = method
1111
options[:route] = args.first
1212
options[:api_doc_dsl] = :endpoint
@@ -38,7 +38,10 @@ def callback(*args, &block)
3838
context(*args, &block)
3939
end
4040

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

@@ -89,7 +92,7 @@ def no_doc(&block)
8992
requests = example.metadata[:requests]
9093
example.metadata[:requests] = []
9194

92-
instance_eval &block
95+
instance_eval(&block)
9396

9497
example.metadata[:requests] = requests
9598
end

spec/dsl_spec.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
parameter :type, "The type of drink you want.", :required => true
5858
parameter :size, "The size of drink you want.", :required => true
5959
parameter :note, "Any additional notes about your order."
60+
parameter :name, :scope => :order
6061

6162
response_field :type, "The type of drink you ordered.", :scope => :order
6263
response_field :size, "The size of drink you ordered.", :scope => :order
@@ -74,7 +75,8 @@
7475
[
7576
{ :name => "type", :description => "The type of drink you want.", :required => true },
7677
{ :name => "size", :description => "The size of drink you want.", :required => true },
77-
{ :name => "note", :description => "Any additional notes about your order." }
78+
{ :name => "note", :description => "Any additional notes about your order." },
79+
{ :name => "name", :description => "Order name", :scope => :order},
7880
]
7981
)
8082
end

0 commit comments

Comments
 (0)