rspec_api_documentation 4.6.0 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5643d0ed3b32b595746931b4dddf583a56e31ed5
|
4
|
+
data.tar.gz: 87115d7eac49ebc0f51fbfec49fdc9780f9e4332
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f15ff0825beca5eca22adc6dc15a044682ea9c835280246a5759bb94e5cf04360e4ba6aa0c5b554cf8c67cd6005ecbe7e2a05ea331efcf390dd08adbc1bb087e
|
7
|
+
data.tar.gz: 9c0aefe90889c51b51e3ae671a3b77f5c0cba7a5d4aa38c7faa90aeb26f9a228493a8615ba772b46137fa4d51b94db98caad30e1bca5ab470492ba841e53b416
|
@@ -89,10 +89,9 @@ module RspecApiDocumentation
|
|
89
89
|
return nil if response_body.empty?
|
90
90
|
if response_body.encoding == Encoding::ASCII_8BIT
|
91
91
|
"[binary data]"
|
92
|
-
elsif response_content_type =~ /application\/json/
|
93
|
-
JSON.pretty_generate(JSON.parse(response_body))
|
94
92
|
else
|
95
|
-
|
93
|
+
formatter = RspecApiDocumentation.configuration.response_body_formatter
|
94
|
+
return formatter.call(response_content_type, response_body)
|
96
95
|
end
|
97
96
|
end
|
98
97
|
|
@@ -80,18 +80,42 @@ module RspecApiDocumentation
|
|
80
80
|
add_setting :response_headers_to_include, :default => nil
|
81
81
|
add_setting :html_embedded_css_file, :default => nil
|
82
82
|
|
83
|
+
# renamed to request_body_formatter. here for backwards compatibility
|
84
|
+
add_setting :post_body_formatter, :default => nil
|
85
|
+
|
83
86
|
# Change how the post body is formatted by default, you can still override by `raw_post`
|
84
87
|
# Can be :json, :xml, or a proc that will be passed the params
|
85
88
|
#
|
86
89
|
# RspecApiDocumentation.configure do |config|
|
87
|
-
# config.
|
90
|
+
# config.request_body_formatter = Proc.new do |params|
|
88
91
|
# # convert to whatever you want
|
89
92
|
# params.to_s
|
90
93
|
# end
|
91
94
|
# end
|
92
95
|
#
|
93
96
|
# See RspecApiDocumentation::DSL::Endpoint#do_request
|
94
|
-
add_setting :
|
97
|
+
add_setting :request_body_formatter, :default => Proc.new { |_| RspecApiDocumentation.configuration.post_body_formatter || Proc.new { |params| params } }
|
98
|
+
|
99
|
+
# Change how the response body is formatted
|
100
|
+
# Can be a proc that will be passed the response body
|
101
|
+
#
|
102
|
+
# RspecApiDocumentation.configure do |config|
|
103
|
+
# config.response_body_formatter = Proc.new do |content_type, response_body|
|
104
|
+
# # convert to whatever you want
|
105
|
+
# response_body
|
106
|
+
# end
|
107
|
+
# end
|
108
|
+
#
|
109
|
+
# See RspecApiDocumentation::DSL::Endpoint#do_request
|
110
|
+
add_setting :response_body_formatter, default: Proc.new { |_, _|
|
111
|
+
Proc.new do |content_type, response_body|
|
112
|
+
if content_type =~ /application\/json/
|
113
|
+
JSON.pretty_generate(JSON.parse(response_body))
|
114
|
+
else
|
115
|
+
response_body
|
116
|
+
end
|
117
|
+
end
|
118
|
+
}
|
95
119
|
|
96
120
|
def client_method=(new_client_method)
|
97
121
|
RspecApiDocumentation::DSL::Resource.module_eval <<-RUBY
|
@@ -18,9 +18,9 @@ module RspecApiDocumentation
|
|
18
18
|
# +block+:: Block to pass into describe
|
19
19
|
#
|
20
20
|
def resource(*args, &block)
|
21
|
-
options =
|
21
|
+
options = args.last.is_a?(Hash) ? args.pop : {}
|
22
22
|
options[:api_doc_dsl] = :resource
|
23
|
-
options[:resource_name] = args.first
|
23
|
+
options[:resource_name] = args.first.to_s
|
24
24
|
options[:document] ||= :all
|
25
25
|
args.push(options)
|
26
26
|
describe(*args, &block)
|
@@ -36,7 +36,7 @@ RSpec.configuration.include RspecApiDocumentation::DSL::Endpoint, :api_doc_dsl =
|
|
36
36
|
RSpec.configuration.include RspecApiDocumentation::DSL::Callback, :api_doc_dsl => :callback
|
37
37
|
RSpec.configuration.backtrace_exclusion_patterns << %r{lib/rspec_api_documentation/dsl/}
|
38
38
|
|
39
|
-
if defined? RSpec::Rails
|
39
|
+
if defined? RSpec::Rails::DIRECTORY_MAPPINGS
|
40
40
|
RSpec::Rails::DIRECTORY_MAPPINGS[:acceptance] = %w[spec acceptance]
|
41
41
|
RSpec.configuration.infer_spec_type_from_file_location!
|
42
42
|
end
|
@@ -41,7 +41,7 @@ module RspecApiDocumentation::DSL
|
|
41
41
|
if respond_to?(:raw_post)
|
42
42
|
params_or_body = raw_post
|
43
43
|
else
|
44
|
-
formatter = RspecApiDocumentation.configuration.
|
44
|
+
formatter = RspecApiDocumentation.configuration.request_body_formatter
|
45
45
|
case formatter
|
46
46
|
when :json
|
47
47
|
params_or_body = params.empty? ? nil : params.to_json
|
data/lib/tasks/docs.rake
CHANGED
@@ -9,5 +9,5 @@ end
|
|
9
9
|
desc 'Generate API request documentation from API specs (ordered)'
|
10
10
|
RSpec::Core::RakeTask.new('docs:generate:ordered') do |t|
|
11
11
|
t.pattern = 'spec/acceptance/**/*_spec.rb'
|
12
|
-
t.rspec_opts = ["--format RspecApiDocumentation::ApiFormatter", "--order
|
12
|
+
t.rspec_opts = ["--format RspecApiDocumentation::ApiFormatter", "--order defined"]
|
13
13
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec_api_documentation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Cahoon
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-01-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
@@ -323,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
323
323
|
version: 1.3.6
|
324
324
|
requirements: []
|
325
325
|
rubyforge_project:
|
326
|
-
rubygems_version: 2.
|
326
|
+
rubygems_version: 2.4.5
|
327
327
|
signing_key:
|
328
328
|
specification_version: 4
|
329
329
|
summary: A double black belt for your docs
|