avocado-docs 3.0.10 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/app/assets/javascripts/avocado/app.coffee +1 -0
- data/app/assets/javascripts/avocado/application.js.coffee +1 -18
- data/app/assets/javascripts/avocado/avocado-ctrl.coffee +50 -0
- data/app/assets/javascripts/avocado/{services/request.js.coffee → factories/request.coffee} +5 -3
- data/app/assets/javascripts/avocado/factories/resource.coffee +6 -0
- data/app/assets/javascripts/avocado/factories/response.coffee +11 -0
- data/app/assets/javascripts/avocado/factories/spec.coffee +27 -0
- data/app/assets/javascripts/avocado/filters/request-method-filter.coffee +15 -0
- data/app/assets/javascripts/avocado/filters/response-status-filter.coffee +15 -0
- data/app/controllers/avocado/specs_controller.rb +32 -2
- data/app/views/avocado/specs/index.html.erb +51 -0
- data/app/views/layouts/avocado.html.erb +20 -0
- data/config/routes.rb +1 -1
- data/lib/avocado-docs.rb +33 -15
- data/lib/avocado/adapters/base_adapter.rb +36 -0
- data/lib/avocado/adapters/cucumber_adapter.rb +15 -0
- data/lib/avocado/adapters/minitest_adapter.rb +10 -0
- data/lib/avocado/adapters/rspec_adapter.rb +13 -0
- data/lib/avocado/controller_patch.rb +24 -0
- data/lib/avocado/controller_response.rb +22 -0
- data/lib/avocado/cucumber.rb +14 -0
- data/lib/avocado/logger.rb +13 -0
- data/lib/avocado/minitest.rb +10 -23
- data/lib/avocado/rspec.rb +9 -18
- data/lib/avocado/serializers/request_serializer.rb +43 -0
- data/lib/avocado/serializers/resource_serializer.rb +20 -0
- data/lib/avocado/serializers/response_serializer.rb +16 -0
- data/lib/avocado/{request_store.rb → storage.rb} +6 -9
- data/lib/avocado/uploader.rb +41 -31
- data/lib/avocado/version.rb +1 -1
- metadata +59 -55
- data/app/assets/javascripts/avocado/angular-route.min.js +0 -14
- data/app/assets/javascripts/avocado/angular.min.js +0 -235
- data/app/assets/javascripts/avocado/app.js.coffee +0 -4
- data/app/assets/javascripts/avocado/controllers/avocado_ctrl.js.coffee +0 -93
- data/app/assets/javascripts/avocado/md5.js +0 -19
- data/app/assets/javascripts/avocado/services/endpoint.js.coffee +0 -23
- data/app/assets/javascripts/avocado/services/resource.js.coffee +0 -5
- data/app/assets/javascripts/avocado/services/response.js.coffee +0 -9
- data/app/assets/javascripts/avocado/ui-utils.min.js +0 -7
- data/app/controllers/avocado/avocado_controller.rb +0 -20
- data/app/models/avocado/endpoint.rb +0 -13
- data/app/models/avocado/parser.rb +0 -56
- data/app/models/avocado/request.rb +0 -37
- data/app/models/avocado/resource.rb +0 -17
- data/app/views/layouts/avocado/avocado.html.erb +0 -15
- data/app/views/template.html.erb +0 -46
- data/lib/avocado/config.rb +0 -36
- data/lib/avocado/controller.rb +0 -26
- data/lib/avocado/middleware.rb +0 -37
- data/lib/avocado/middleware/defaults.rb +0 -17
- data/lib/avocado/middleware/document_if_configuration.rb +0 -12
- data/lib/avocado/middleware/document_metadata.rb +0 -14
- data/lib/avocado/middleware/example_serialization.rb +0 -10
- data/lib/avocado/middleware/ignore_xhr_requests.rb +0 -10
- data/lib/avocado/middleware/request_serialization.rb +0 -48
- data/lib/avocado/middleware/resource_serialization.rb +0 -20
- data/lib/avocado/middleware/response_serialization.rb +0 -20
- data/lib/avocado/packages/minitest_package.rb +0 -15
- data/lib/avocado/packages/package.rb +0 -23
- data/lib/avocado/packages/rspec_package.rb +0 -15
@@ -0,0 +1,24 @@
|
|
1
|
+
# This concern gets patched into ActionController::Base during testing
|
2
|
+
# The after_action will ensure every request gets documented regardless of the
|
3
|
+
# type of test (controller, integration, etc)
|
4
|
+
module Avocado
|
5
|
+
module ControllerPatch
|
6
|
+
def self.included(base)
|
7
|
+
base.around_action :_avocado_store_request
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.apply
|
11
|
+
ActionController::Base.send :include, Avocado::ControllerPatch
|
12
|
+
end
|
13
|
+
|
14
|
+
def _avocado_store_request
|
15
|
+
yield
|
16
|
+
ensure
|
17
|
+
Avocado.storage.store(request, response) if _avocado_response.documentable?
|
18
|
+
end
|
19
|
+
|
20
|
+
def _avocado_response
|
21
|
+
@__avocado_response ||= Avocado::ControllerResponse.new response
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Avocado
|
2
|
+
class ControllerResponse
|
3
|
+
def initialize(response)
|
4
|
+
@response = response
|
5
|
+
end
|
6
|
+
|
7
|
+
def documentable?
|
8
|
+
blank_204? || json?
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def blank_204?
|
13
|
+
@response.status == 204 && @response.body.blank?
|
14
|
+
end
|
15
|
+
|
16
|
+
def json?
|
17
|
+
JSON.parse @response.body
|
18
|
+
rescue JSON::ParserError, TypeError
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
Avocado::ControllerPatch.apply
|
2
|
+
|
3
|
+
After do |scenario|
|
4
|
+
request = Avocado.storage.request
|
5
|
+
response = Avocado.storage.response
|
6
|
+
adapter = Avocado::Adapters::CucumberAdapter.new scenario, request, response
|
7
|
+
|
8
|
+
Avocado.uploader.payload << adapter.to_h if adapter.upload?
|
9
|
+
Avocado.storage.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
at_exit do
|
13
|
+
Avocado.uploader.upload
|
14
|
+
end
|
data/lib/avocado/minitest.rb
CHANGED
@@ -1,36 +1,23 @@
|
|
1
|
-
module
|
1
|
+
module Avocado::Minitest
|
2
2
|
def before_setup
|
3
3
|
super
|
4
|
-
|
5
|
-
ActionController::API.send :include, Avocado::Controller if defined?(ActionController::API)
|
4
|
+
Avocado::ControllerPatch.apply
|
6
5
|
end
|
7
6
|
|
8
7
|
def before_teardown
|
9
8
|
super
|
10
|
-
request = Avocado::RequestStore.instance.request
|
11
|
-
response = Avocado::RequestStore.instance.response
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
Avocado::Uploader.instance.payload << Avocado::RequestStore.instance.json
|
17
|
-
end
|
18
|
-
end
|
10
|
+
request = Avocado.storage.request
|
11
|
+
response = Avocado.storage.response
|
12
|
+
adapter = Avocado::Adapters::MinitestAdapter.new name, request, response
|
19
13
|
|
20
|
-
Avocado
|
14
|
+
Avocado.uploader.payload << adapter.to_h if adapter.upload?
|
15
|
+
Avocado.storage.clear
|
21
16
|
end
|
22
17
|
end
|
23
18
|
|
24
|
-
|
25
|
-
include MinitestAvocadoPlugin
|
26
|
-
end
|
19
|
+
Minitest::Test.send :include, Avocado::Minitest
|
27
20
|
|
28
|
-
|
29
|
-
|
30
|
-
Avocado::Uploader.instance.upload!
|
31
|
-
end
|
32
|
-
else
|
33
|
-
MiniTest.after_run do
|
34
|
-
Avocado::Uploader.instance.upload!
|
35
|
-
end
|
21
|
+
Minitest.after_run do
|
22
|
+
Avocado.uploader.upload
|
36
23
|
end
|
data/lib/avocado/rspec.rb
CHANGED
@@ -1,30 +1,21 @@
|
|
1
1
|
RSpec.configure do |config|
|
2
|
-
|
3
2
|
config.before(:suite) do
|
4
|
-
|
5
|
-
ActionController::API.send :include, Avocado::Controller if defined?(ActionController::API)
|
3
|
+
Avocado::ControllerPatch.apply
|
6
4
|
end
|
7
5
|
|
8
|
-
# Invoke all middleware with the request/response stored from the after_action in the controller
|
9
|
-
# The final action is to store the request JSON in the Avocado module until after(:suite) executes
|
10
6
|
config.after(:each) do |ex|
|
11
|
-
|
12
|
-
|
13
|
-
response = Avocado::RequestStore.instance.response
|
7
|
+
# Older versions of RSpec use the global `example` object
|
8
|
+
spec = defined?(example) ? example : ex
|
14
9
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
Avocado::Uploader.instance.payload << Avocado::RequestStore.instance.json
|
19
|
-
end
|
20
|
-
end
|
10
|
+
request = Avocado.storage.request
|
11
|
+
response = Avocado.storage.response
|
12
|
+
adapter = Avocado::Adapters::RSpecAdapter.new spec, request, response
|
21
13
|
|
22
|
-
Avocado
|
14
|
+
Avocado.uploader.payload << adapter.to_h if adapter.upload?
|
15
|
+
Avocado.storage.clear
|
23
16
|
end
|
24
17
|
|
25
|
-
# Upload avocado.json to the configured URL if one is given
|
26
18
|
config.after(:suite) do
|
27
|
-
Avocado
|
19
|
+
Avocado.uploader.upload
|
28
20
|
end
|
29
|
-
|
30
21
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module Avocado
|
2
|
+
module Serializers
|
3
|
+
class RequestSerializer
|
4
|
+
def initialize(request)
|
5
|
+
@request = request
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_h
|
9
|
+
{
|
10
|
+
method: @request.method,
|
11
|
+
path: @request.path,
|
12
|
+
params: sanitize_params(@request.params).to_h,
|
13
|
+
headers: headers
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
def headers
|
19
|
+
hash = {}
|
20
|
+
Avocado.headers.each do |name|
|
21
|
+
hash[name] = @request.headers.env["HTTP_#{name.tr('-', '_')}".upcase]
|
22
|
+
end
|
23
|
+
hash.select { |_, value| !value.nil? }
|
24
|
+
end
|
25
|
+
|
26
|
+
def sanitize_params(params)
|
27
|
+
params = params.except *Avocado.ignored_params.flatten
|
28
|
+
deep_replace_file_uploads_with_text params
|
29
|
+
params
|
30
|
+
end
|
31
|
+
|
32
|
+
def deep_replace_file_uploads_with_text(hash)
|
33
|
+
hash.each do |k, v|
|
34
|
+
if v.respond_to? :eof
|
35
|
+
hash[k] = '<Multipart File Upload>'
|
36
|
+
elsif v.is_a? Hash
|
37
|
+
deep_replace_file_uploads_with_text v
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Avocado
|
2
|
+
module Serializers
|
3
|
+
class ResourceSerializer
|
4
|
+
def initialize(request)
|
5
|
+
@request = request
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_h
|
9
|
+
{ name: infer_resource_name_from_request }
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def infer_resource_name_from_request
|
14
|
+
controller = @request.params[:controller]
|
15
|
+
name = controller.partition('/').reject(&:blank?).last
|
16
|
+
name.titleize.split('/').last
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,22 +1,19 @@
|
|
1
1
|
# Temporarily store a JSON request/response. Ultimately RSpec will determine
|
2
2
|
# if this request/response gets documented or not in an after(:each) block
|
3
3
|
module Avocado
|
4
|
-
class
|
4
|
+
class Storage
|
5
5
|
include Singleton
|
6
6
|
|
7
|
-
attr_accessor :request, :response
|
7
|
+
attr_accessor :request, :response
|
8
8
|
|
9
9
|
def store(request, response)
|
10
|
-
@
|
11
|
-
@request = request
|
10
|
+
@request = request
|
12
11
|
@response = response
|
13
12
|
end
|
14
13
|
|
15
|
-
def
|
16
|
-
@
|
17
|
-
@request = nil
|
14
|
+
def clear
|
15
|
+
@request = nil
|
18
16
|
@response = nil
|
19
17
|
end
|
20
|
-
|
21
18
|
end
|
22
|
-
end
|
19
|
+
end
|
data/lib/avocado/uploader.rb
CHANGED
@@ -1,54 +1,64 @@
|
|
1
|
+
require 'net/http/post/multipart'
|
2
|
+
|
1
3
|
module Avocado
|
2
4
|
class Uploader
|
3
5
|
include Singleton
|
6
|
+
include Logger
|
4
7
|
|
5
8
|
attr_accessor :payload
|
6
9
|
|
7
10
|
def initialize
|
11
|
+
reset
|
12
|
+
end
|
13
|
+
|
14
|
+
def reset
|
8
15
|
@payload = []
|
9
16
|
end
|
10
17
|
|
11
|
-
def upload
|
12
|
-
return
|
13
|
-
|
14
|
-
|
15
|
-
request
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
response
|
24
|
-
end
|
18
|
+
def upload
|
19
|
+
return if payload.blank? || url.blank?
|
20
|
+
|
21
|
+
response = Net::HTTP.start(url.host, url.port, use_ssl: https?) do |http|
|
22
|
+
http.request multipart_req
|
23
|
+
end
|
24
|
+
|
25
|
+
if success? response
|
26
|
+
logger.info "Successfully uploaded to #{url}"
|
27
|
+
else
|
28
|
+
logger.error "Failed to upload to #{url} (response code #{response.code}). Full response:"
|
29
|
+
logger.error response.body
|
25
30
|
end
|
26
|
-
|
27
|
-
|
31
|
+
end
|
32
|
+
|
33
|
+
def url
|
34
|
+
URI.parse Avocado.url.to_s if Avocado.url
|
35
|
+
rescue URI::InvalidURIError
|
36
|
+
logger.error "Could not parse the URI #{Avocado.url}--Avocado will not upload documentation!"
|
37
|
+
nil
|
28
38
|
end
|
29
39
|
|
30
40
|
private
|
41
|
+
def multipart_req
|
42
|
+
@_multipart_req ||= Net::HTTP::Post::Multipart.new url.path, file: uploadable_file, upload_id: upload_id
|
43
|
+
end
|
31
44
|
|
32
|
-
def
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
ensure
|
38
|
-
file.close
|
39
|
-
File.delete file.path
|
45
|
+
def uploadable_file
|
46
|
+
@_uploadable_file ||= begin
|
47
|
+
file = StringIO.new JSON[payload]
|
48
|
+
UploadIO.new file, 'application/json'
|
49
|
+
end
|
40
50
|
end
|
41
51
|
|
42
|
-
def
|
43
|
-
|
52
|
+
def upload_id
|
53
|
+
@_upload_id ||= Avocado.upload_id.call
|
44
54
|
end
|
45
55
|
|
46
|
-
def
|
47
|
-
|
48
|
-
rescue URI::InvalidURIError
|
49
|
-
raise "Avocado::Config.url is set but is not a valid URL!"
|
56
|
+
def https?
|
57
|
+
url.to_s.include? 'https://'
|
50
58
|
end
|
51
59
|
|
60
|
+
def success?(response)
|
61
|
+
(200..399).cover? response.code.to_i
|
62
|
+
end
|
52
63
|
end
|
53
64
|
end
|
54
|
-
|
data/lib/avocado/version.rb
CHANGED
metadata
CHANGED
@@ -1,99 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avocado-docs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Logan Serman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4
|
19
|
+
version: '4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: multipart-post
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '3.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '3.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: combustion
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0.5'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.5'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: webmock
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ~>
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '1.15'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - ~>
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '1.15'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: timecop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Avocado listens for JSON responses in the test environment and generates
|
98
112
|
a YAML file describing them, which it sends to a configurable URL.
|
99
113
|
email:
|
@@ -105,47 +119,37 @@ files:
|
|
105
119
|
- MIT-LICENSE
|
106
120
|
- Rakefile
|
107
121
|
- app/assets/images/avocado/filter-icon.png
|
108
|
-
- app/assets/javascripts/avocado/
|
109
|
-
- app/assets/javascripts/avocado/angular.min.js
|
110
|
-
- app/assets/javascripts/avocado/app.js.coffee
|
122
|
+
- app/assets/javascripts/avocado/app.coffee
|
111
123
|
- app/assets/javascripts/avocado/application.js.coffee
|
112
|
-
- app/assets/javascripts/avocado/
|
113
|
-
- app/assets/javascripts/avocado/
|
114
|
-
- app/assets/javascripts/avocado/
|
115
|
-
- app/assets/javascripts/avocado/
|
116
|
-
- app/assets/javascripts/avocado/
|
117
|
-
- app/assets/javascripts/avocado/
|
118
|
-
- app/assets/javascripts/avocado/
|
124
|
+
- app/assets/javascripts/avocado/avocado-ctrl.coffee
|
125
|
+
- app/assets/javascripts/avocado/factories/request.coffee
|
126
|
+
- app/assets/javascripts/avocado/factories/resource.coffee
|
127
|
+
- app/assets/javascripts/avocado/factories/response.coffee
|
128
|
+
- app/assets/javascripts/avocado/factories/spec.coffee
|
129
|
+
- app/assets/javascripts/avocado/filters/request-method-filter.coffee
|
130
|
+
- app/assets/javascripts/avocado/filters/response-status-filter.coffee
|
119
131
|
- app/assets/stylesheets/avocado/application.css.scss
|
120
132
|
- app/assets/stylesheets/avocado/bootstrap.css
|
121
|
-
- app/controllers/avocado/avocado_controller.rb
|
122
133
|
- app/controllers/avocado/specs_controller.rb
|
123
|
-
- app/
|
124
|
-
- app/
|
125
|
-
- app/models/avocado/request.rb
|
126
|
-
- app/models/avocado/resource.rb
|
127
|
-
- app/views/layouts/avocado/avocado.html.erb
|
128
|
-
- app/views/template.html.erb
|
134
|
+
- app/views/avocado/specs/index.html.erb
|
135
|
+
- app/views/layouts/avocado.html.erb
|
129
136
|
- config/routes.rb
|
130
137
|
- lib/avocado-docs.rb
|
131
|
-
- lib/avocado/
|
132
|
-
- lib/avocado/
|
138
|
+
- lib/avocado/adapters/base_adapter.rb
|
139
|
+
- lib/avocado/adapters/cucumber_adapter.rb
|
140
|
+
- lib/avocado/adapters/minitest_adapter.rb
|
141
|
+
- lib/avocado/adapters/rspec_adapter.rb
|
142
|
+
- lib/avocado/controller_patch.rb
|
143
|
+
- lib/avocado/controller_response.rb
|
144
|
+
- lib/avocado/cucumber.rb
|
133
145
|
- lib/avocado/engine.rb
|
134
|
-
- lib/avocado/
|
135
|
-
- lib/avocado/middleware/defaults.rb
|
136
|
-
- lib/avocado/middleware/document_if_configuration.rb
|
137
|
-
- lib/avocado/middleware/document_metadata.rb
|
138
|
-
- lib/avocado/middleware/example_serialization.rb
|
139
|
-
- lib/avocado/middleware/ignore_xhr_requests.rb
|
140
|
-
- lib/avocado/middleware/request_serialization.rb
|
141
|
-
- lib/avocado/middleware/resource_serialization.rb
|
142
|
-
- lib/avocado/middleware/response_serialization.rb
|
146
|
+
- lib/avocado/logger.rb
|
143
147
|
- lib/avocado/minitest.rb
|
144
|
-
- lib/avocado/packages/minitest_package.rb
|
145
|
-
- lib/avocado/packages/package.rb
|
146
|
-
- lib/avocado/packages/rspec_package.rb
|
147
|
-
- lib/avocado/request_store.rb
|
148
148
|
- lib/avocado/rspec.rb
|
149
|
+
- lib/avocado/serializers/request_serializer.rb
|
150
|
+
- lib/avocado/serializers/resource_serializer.rb
|
151
|
+
- lib/avocado/serializers/response_serializer.rb
|
152
|
+
- lib/avocado/storage.rb
|
149
153
|
- lib/avocado/uploader.rb
|
150
154
|
- lib/avocado/version.rb
|
151
155
|
homepage: http://github.com/metova/avocado
|
@@ -157,17 +161,17 @@ require_paths:
|
|
157
161
|
- lib
|
158
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
159
163
|
requirements:
|
160
|
-
- -
|
164
|
+
- - ">="
|
161
165
|
- !ruby/object:Gem::Version
|
162
166
|
version: '0'
|
163
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
168
|
requirements:
|
165
|
-
- -
|
169
|
+
- - ">="
|
166
170
|
- !ruby/object:Gem::Version
|
167
171
|
version: '0'
|
168
172
|
requirements: []
|
169
173
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.
|
174
|
+
rubygems_version: 2.6.6
|
171
175
|
signing_key:
|
172
176
|
specification_version: 4
|
173
177
|
summary: Automatic API documentation from RSpec tests
|