apipie-rails 0.1.3 → 0.2.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.
Files changed (38) hide show
  1. data/.travis.yml +1 -2
  2. data/CHANGELOG.md +26 -0
  3. data/README.rst +94 -3
  4. data/app/controllers/apipie/apipies_controller.rb +28 -10
  5. data/app/views/apipie/apipies/_disqus.html.erb +4 -2
  6. data/app/views/apipie/apipies/_languages.erb +6 -0
  7. data/app/views/apipie/apipies/_method_detail.erb +7 -7
  8. data/app/views/apipie/apipies/_params.html.erb +2 -2
  9. data/app/views/apipie/apipies/_params_plain.html.erb +2 -2
  10. data/app/views/apipie/apipies/apipie_404.html.erb +7 -4
  11. data/app/views/apipie/apipies/getting_started.html.erb +5 -3
  12. data/app/views/apipie/apipies/index.html.erb +7 -6
  13. data/app/views/apipie/apipies/method.html.erb +4 -2
  14. data/app/views/apipie/apipies/plain.html.erb +3 -3
  15. data/app/views/apipie/apipies/resource.html.erb +3 -2
  16. data/app/views/apipie/apipies/static.html.erb +7 -7
  17. data/app/views/layouts/apipie/apipie.html.erb +1 -1
  18. data/config/locales/en.yml +27 -0
  19. data/lib/apipie-rails.rb +7 -0
  20. data/lib/apipie/apipie_module.rb +5 -2
  21. data/lib/apipie/application.rb +27 -16
  22. data/lib/apipie/configuration.rb +6 -1
  23. data/lib/apipie/extractor.rb +35 -26
  24. data/lib/apipie/extractor/recorder.rb +9 -5
  25. data/lib/apipie/extractor/writer.rb +36 -7
  26. data/lib/apipie/method_description.rb +6 -6
  27. data/lib/apipie/param_description.rb +9 -4
  28. data/lib/apipie/resource_description.rb +5 -5
  29. data/lib/apipie/routing.rb +1 -1
  30. data/lib/apipie/version.rb +1 -1
  31. data/lib/generators/apipie/install/templates/initializer.rb.erb +1 -1
  32. data/lib/tasks/apipie.rake +89 -47
  33. data/spec/dummy/doc/apipie_examples.json +1 -0
  34. data/spec/lib/extractor/middleware_spec.rb +21 -0
  35. data/spec/lib/extractor/writer_spec.rb +76 -0
  36. metadata +10 -5
  37. data/Gemfile.rails30 +0 -5
  38. data/spec/dummy/doc/apipie_examples.yml +0 -28
@@ -39,7 +39,8 @@ module Apipie
39
39
  @method_description = method_description
40
40
  @name = concern_subst(name)
41
41
  @as = options[:as] || @name
42
- @desc = concern_subst(Apipie.markup_to_html(@options[:desc] || ''))
42
+ @desc = preformat_text(@options[:desc])
43
+
43
44
  @parent = @options[:parent]
44
45
  @metadata = @options[:meta]
45
46
 
@@ -99,10 +100,10 @@ module Apipie
99
100
  ret
100
101
  end
101
102
 
102
- def to_json
103
+ def to_json(lang = nil)
103
104
  hash = { :name => name.to_s,
104
105
  :full_name => full_name,
105
- :description => desc,
106
+ :description => preformat_text(Apipie.app.translate(@options[:desc], lang)),
106
107
  :required => required,
107
108
  :allow_nil => allow_nil,
108
109
  :validator => validator.to_s,
@@ -110,7 +111,7 @@ module Apipie
110
111
  :metadata => metadata,
111
112
  :show => show }
112
113
  if sub_params = validator.params_ordered
113
- hash[:params] = sub_params.map(&:to_json)
114
+ hash[:params] = sub_params.map { |p| p.to_json(lang)}
114
115
  end
115
116
  hash
116
117
  end
@@ -198,6 +199,10 @@ module Apipie
198
199
  return replaced
199
200
  end
200
201
 
202
+ def preformat_text(text)
203
+ concern_subst(Apipie.markup_to_html(text || ''))
204
+ end
205
+
201
206
  end
202
207
 
203
208
  end
@@ -81,20 +81,20 @@ module Apipie
81
81
 
82
82
  def api_url; "#{Apipie.api_base_url(_version)}#{@_path}"; end
83
83
 
84
- def to_json(method_name = nil)
84
+ def to_json(method_name = nil, lang = nil)
85
85
 
86
86
  methods = if method_name.blank?
87
- @_methods.collect { |key, method_description| method_description.to_json}
87
+ @_methods.collect { |key, method_description| method_description.to_json(lang) }
88
88
  else
89
- [@_methods[method_name.to_sym].to_json]
89
+ [@_methods[method_name.to_sym].to_json(lang)]
90
90
  end
91
91
 
92
92
  {
93
93
  :doc_url => doc_url,
94
94
  :api_url => api_url,
95
95
  :name => @_name,
96
- :short_description => @_short_description,
97
- :full_description => @_full_description,
96
+ :short_description => Apipie.app.translate(@_short_description, lang),
97
+ :full_description => Apipie.app.translate(@_full_description, lang),
98
98
  :version => _version,
99
99
  :formats => @_formats,
100
100
  :metadata => @_metadata,
@@ -4,7 +4,7 @@ module Apipie
4
4
  def apipie
5
5
  namespace "apipie", :path => Apipie.configuration.doc_base_url do
6
6
  get 'apipie_checksum', :to => "apipies#apipie_checksum", :format => "json"
7
- constraints(:version => /[^\/]+/) do
7
+ constraints(:version => /[^\/]+/, :resource => /[^\/]+/, :method => /[^\/]+/) do
8
8
  get("(:version)/(:resource)/(:method)" => "apipies#index", :as => :apipie)
9
9
  end
10
10
  end
@@ -1,3 +1,3 @@
1
1
  module Apipie
2
- VERSION = '0.1.3'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -2,6 +2,6 @@ Apipie.configure do |config|
2
2
  config.app_name = "<%= Rails.application.class.name[/^\w+/] %>"
3
3
  config.api_base_url = "<%= options.api_path %>"
4
4
  config.doc_base_url = "<%= options.route %>"
5
- # were is your API defined?
5
+ # where is your API defined?
6
6
  config.api_controllers_matcher = "#{Rails.root}/app/controllers/*.rb"
7
7
  end
@@ -23,16 +23,19 @@ namespace :apipie do
23
23
  subdir = File.basename(out)
24
24
  copy_jscss(out)
25
25
  Apipie.configuration.version_in_url = false
26
- Apipie.url_prefix = "./#{subdir}"
27
- doc = Apipie.to_json(args[:version])
28
- doc[:docs][:link_extension] = '.html'
29
- generate_one_page(out, doc)
30
- generate_plain_page(out, doc)
31
- generate_index_page(out, doc)
32
- Apipie.url_prefix = "../#{subdir}"
33
- generate_resource_pages(args[:version], out, doc)
34
- Apipie.url_prefix = "../../#{subdir}"
35
- generate_method_pages(args[:version], out, doc)
26
+ ([nil] + Apipie.configuration.languages).each do |lang|
27
+ I18n.locale = lang || Apipie.configuration.default_locale
28
+ Apipie.url_prefix = "./#{subdir}"
29
+ doc = Apipie.to_json(args[:version], nil, nil, lang)
30
+ doc[:docs][:link_extension] = "#{lang_ext(lang)}.html"
31
+ generate_one_page(out, doc, lang)
32
+ generate_plain_page(out, doc, lang)
33
+ generate_index_page(out, doc, false, false, lang)
34
+ Apipie.url_prefix = "../#{subdir}"
35
+ generate_resource_pages(args[:version], out, doc, false, lang)
36
+ Apipie.url_prefix = "../../#{subdir}"
37
+ generate_method_pages(args[:version], out, doc, false, lang)
38
+ end
36
39
  end
37
40
  end
38
41
 
@@ -41,32 +44,43 @@ namespace :apipie do
41
44
  with_loaded_documentation do
42
45
  args.with_defaults(:version => Apipie.configuration.default_version)
43
46
  out = ENV["OUT"] || File.join(::Rails.root, 'doc', 'apidoc')
44
- doc = Apipie.to_json(args[:version])
45
- generate_json_page(out, doc)
47
+ ([nil] + Apipie.configuration.languages).each do |lang|
48
+ doc = Apipie.to_json(args[:version], nil, nil, lang)
49
+ generate_json_page(out, doc, lang)
50
+ end
46
51
  end
47
52
  end
48
53
 
49
54
  desc "Generate cache to avoid production dependencies on markup languages"
50
55
  task :cache => :environment do
56
+ puts "#{Time.now} | Started"
51
57
  with_loaded_documentation do
52
- cache_dir = Apipie.configuration.cache_dir
53
- subdir = Apipie.configuration.doc_base_url.sub(/\A\//,"")
54
-
55
- file_base = File.join(cache_dir, Apipie.configuration.doc_base_url)
56
- Apipie.url_prefix = "./#{subdir}"
57
- doc = Apipie.to_json(Apipie.configuration.default_version)
58
- generate_index_page(file_base, doc, true)
59
- Apipie.available_versions.each do |version|
60
- file_base_version = File.join(file_base, version)
61
- Apipie.url_prefix = "../#{subdir}"
62
- doc = Apipie.to_json(version)
63
- generate_index_page(file_base_version, doc, true, true)
64
- Apipie.url_prefix = "../../#{subdir}"
65
- generate_resource_pages(version, file_base_version, doc, true)
66
- Apipie.url_prefix = "../../../#{subdir}"
67
- generate_method_pages(version, file_base_version, doc, true)
58
+ puts "#{Time.now} | Documents loaded..."
59
+ ([nil] + Apipie.configuration.languages).each do |lang|
60
+ I18n.locale = lang || Apipie.configuration.default_locale
61
+ puts "#{Time.now} | Processing docs for #{lang}"
62
+ cache_dir = Apipie.configuration.cache_dir
63
+ subdir = Apipie.configuration.doc_base_url.sub(/\A\//,"")
64
+
65
+ file_base = File.join(cache_dir, Apipie.configuration.doc_base_url)
66
+ Apipie.url_prefix = "./#{subdir}"
67
+ doc = Apipie.to_json(Apipie.configuration.default_version, nil, nil, lang)
68
+ doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
69
+ generate_index_page(file_base, doc, true, false, lang)
70
+ Apipie.available_versions.each do |version|
71
+ file_base_version = File.join(file_base, version)
72
+ Apipie.url_prefix = "../#{subdir}"
73
+ doc = Apipie.to_json(version, nil, nil, lang)
74
+ doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
75
+ generate_index_page(file_base_version, doc, true, true, lang)
76
+ Apipie.url_prefix = "../../#{subdir}"
77
+ generate_resource_pages(version, file_base_version, doc, true, lang)
78
+ Apipie.url_prefix = "../../../#{subdir}"
79
+ generate_method_pages(version, file_base_version, doc, true, lang)
80
+ end
68
81
  end
69
82
  end
83
+ puts "#{Time.now} | Finished"
70
84
  end
71
85
 
72
86
  # Attempt to use the Rails application views, otherwise default to built in views
@@ -94,57 +108,64 @@ namespace :apipie do
94
108
  end
95
109
  end
96
110
 
97
- def generate_json_page(file_base, doc)
111
+ def generate_json_page(file_base, doc, lang = nil)
98
112
  FileUtils.mkdir_p(file_base) unless File.exists?(file_base)
99
113
 
100
- filename = 'schema_apipie.json'
114
+ filename = "schema_apipie#{lang_ext(lang)}.json"
101
115
  File.open("#{file_base}/#{filename}", 'w') { |file| file.write(JSON.pretty_generate(doc)) }
102
116
  end
103
117
 
104
- def generate_one_page(file_base, doc)
118
+ def generate_one_page(file_base, doc, lang = nil)
105
119
  FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
106
120
 
107
- render_page("#{file_base}-onepage.html", "static", {:doc => doc[:docs]})
121
+ render_page("#{file_base}-onepage#{lang_ext(lang)}.html", "static", {:doc => doc[:docs],
122
+ :language => lang, :languages => Apipie.configuration.languages})
108
123
  end
109
124
 
110
- def generate_plain_page(file_base, doc)
125
+ def generate_plain_page(file_base, doc, lang = nil)
111
126
  FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
112
127
 
113
- render_page("#{file_base}-plain.html", "plain", {:doc => doc[:docs]}, nil)
128
+ render_page("#{file_base}-plain#{lang_ext(lang)}.html", "plain", {:doc => doc[:docs],
129
+ :language => lang, :languages => Apipie.configuration.languages}, nil)
114
130
  end
115
131
 
116
- def generate_index_page(file_base, doc, include_json = false, show_versions = false)
132
+ def generate_index_page(file_base, doc, include_json = false, show_versions = false, lang = nil)
117
133
  FileUtils.mkdir_p(File.dirname(file_base)) unless File.exists?(File.dirname(file_base))
118
134
  versions = show_versions && Apipie.available_versions
119
- render_page("#{file_base}.html", "index", {:doc => doc[:docs], :versions => versions})
135
+ render_page("#{file_base}#{lang_ext(lang)}.html", "index", {:doc => doc[:docs],
136
+ :versions => versions, :language => lang, :languages => Apipie.configuration.languages})
120
137
 
121
- File.open("#{file_base}.json", "w") { |f| f << doc.to_json } if include_json
138
+ File.open("#{file_base}#{lang_ext(lang)}.json", "w") { |f| f << doc.to_json } if include_json
122
139
  end
123
140
 
124
- def generate_resource_pages(version, file_base, doc, include_json = false)
141
+ def generate_resource_pages(version, file_base, doc, include_json = false, lang = nil)
125
142
  doc[:docs][:resources].each do |resource_name, _|
126
143
  resource_file_base = File.join(file_base, resource_name.to_s)
127
144
  FileUtils.mkdir_p(File.dirname(resource_file_base)) unless File.exists?(File.dirname(resource_file_base))
128
145
 
129
- doc = Apipie.to_json(version, resource_name)
130
- render_page("#{resource_file_base}.html", "resource", {:doc => doc[:docs],
131
- :resource => doc[:docs][:resources].first})
132
- File.open("#{resource_file_base}.json", "w") { |f| f << doc.to_json } if include_json
146
+ doc = Apipie.to_json(version, resource_name, nil, lang)
147
+ doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
148
+ render_page("#{resource_file_base}#{lang_ext(lang)}.html", "resource", {:doc => doc[:docs],
149
+ :resource => doc[:docs][:resources].first, :language => lang, :languages => Apipie.configuration.languages})
150
+ File.open("#{resource_file_base}#{lang_ext(lang)}.json", "w") { |f| f << doc.to_json } if include_json
133
151
  end
134
152
  end
135
153
 
136
- def generate_method_pages(version, file_base, doc, include_json = false)
154
+ def generate_method_pages(version, file_base, doc, include_json = false, lang = nil)
137
155
  doc[:docs][:resources].each do |resource_name, resource_params|
138
156
  resource_params[:methods].each do |method|
139
157
  method_file_base = File.join(file_base, resource_name.to_s, method[:name].to_s)
140
158
  FileUtils.mkdir_p(File.dirname(method_file_base)) unless File.exists?(File.dirname(method_file_base))
141
159
 
142
- doc = Apipie.to_json(version, resource_name, method[:name])
143
- render_page("#{method_file_base}.html", "method", {:doc => doc[:docs],
160
+ doc = Apipie.to_json(version, resource_name, method[:name], lang)
161
+ doc[:docs][:link_extension] = (lang ? ".#{lang}.html" : ".html")
162
+ render_page("#{method_file_base}#{lang_ext(lang)}.html", "method", {:doc => doc[:docs],
144
163
  :resource => doc[:docs][:resources].first,
145
- :method => doc[:docs][:resources].first[:methods].first})
164
+ :method => doc[:docs][:resources].first[:methods].first,
165
+ :language => lang,
166
+ :languages => Apipie.configuration.languages})
146
167
 
147
- File.open("#{method_file_base}.json", "w") { |f| f << doc.to_json } if include_json
168
+ File.open("#{method_file_base}#{lang_ext(lang)}.json", "w") { |f| f << doc.to_json } if include_json
148
169
  end
149
170
  end
150
171
  end
@@ -155,12 +176,17 @@ namespace :apipie do
155
176
  yield
156
177
  end
157
178
 
179
+
158
180
  def copy_jscss(dest)
159
181
  src = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'app', 'public', 'apipie'))
160
182
  FileUtils.mkdir_p dest
161
183
  FileUtils.cp_r "#{src}/.", dest
162
184
  end
163
185
 
186
+ def lang_ext(lang = nil)
187
+ lang ? ".#{lang}" : ""
188
+ end
189
+
164
190
  desc "Generate CLI client for API documented with apipie gem. (deprecated)"
165
191
  task :client do
166
192
  puts <<MESSAGE
@@ -190,4 +216,20 @@ MESSAGE
190
216
  end
191
217
  end
192
218
 
219
+ desc "Convert your examples from the old yaml into the new json format"
220
+ task :convert_examples => :environment do
221
+ yaml_examples_file = File.join(Rails.root, "doc", "apipie_examples.yml")
222
+ if File.exists?(yaml_examples_file)
223
+ #if SafeYAML gem is enabled, it will load examples as an array of Hash, instead of hash
224
+ if defined? SafeYAML
225
+ examples = YAML.load_file(yaml_examples_file, :safe=>false)
226
+ else
227
+ examples = YAML.load_file(yaml_examples_file)
228
+ end
229
+ else
230
+ examples = {}
231
+ end
232
+ Apipie::Extractor::Writer.write_recorded_examples(examples)
233
+ end
234
+
193
235
  end
@@ -0,0 +1 @@
1
+ {"users#show":[{"verb":"GET","path":"/users/15","query":null,"request_data":null,"response_data":null,"code":"404","show_in_doc":2,"recorded":true},{"verb":"GET","path":"/users/14","query":"verbose=true","request_data":null,"response_data":"{\n \"name\": \"Test User\"\n}","code":"200","show_in_doc":1,"recorded":true},{"verb":"GET","path":"/users/15","query":"verbose=true","request_data":null,"response_data":"{\n \"name\": \"Test User\"\n}","code":"200","show_in_doc":0,"recorded":true}]}
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+
3
+ describe Apipie::Extractor::Recorder::Middleware do
4
+ let(:app) { ->(env) { [200, env, "app"] } }
5
+ let(:stack) { Apipie::Extractor::Recorder::Middleware.new(app) }
6
+ let(:request) { Rack::MockRequest.new(stack) }
7
+ let(:response) { request.get('/') }
8
+
9
+ it 'correctly process request without recording' do
10
+ expect(stack).not_to receive(:analyze)
11
+ response
12
+ end
13
+
14
+ it "analyze request if recording is set" do
15
+ Apipie.configuration.record = true
16
+ expect(Apipie::Extractor.call_recorder).to receive(:analyse_env)
17
+ expect(Apipie::Extractor.call_recorder).to receive(:analyse_response)
18
+ expect(Apipie::Extractor).to receive(:clean_call_recorder)
19
+ response
20
+ end
21
+ end
@@ -0,0 +1,76 @@
1
+ require "spec_helper"
2
+
3
+ describe Apipie::Extractor::Writer do
4
+
5
+ let(:collector) { double "collector" }
6
+ let(:writer_class) { Apipie::Extractor::Writer }
7
+ let(:writer) { writer_class.new(collector) }
8
+ let(:test_examples_file) { File.join(Rails.root, "doc", "apipie_examples_test.json") }
9
+ let(:records) { {
10
+ "concern_resources#show" =>
11
+ [{
12
+ :controller=>ConcernsController,
13
+ :action=>"show",
14
+ :verb=>:GET,
15
+ :path=>"/api/concerns/5",
16
+ :params=>{},
17
+ :query=>"session=secret_hash",
18
+ :request_data=>nil,
19
+ :response_data=>"OK {\"session\"=>\"secret_hash\", \"id\"=>\"5\", \"controller\"=>\"concerns\", \"action\"=>\"show\"}",
20
+ :code=>"200"
21
+ }, {
22
+ :controller=>ConcernsController,
23
+ :action=>"show",
24
+ :verb=>:GET,
25
+ :path=>"/api/concerns/5",
26
+ :params=>{},
27
+ :query=>"",
28
+ :request_data=>nil,
29
+ :response_data=>"OK {\"id\"=>\"5\", \"controller\"=>\"concerns\", \"action\"=>\"show\"}",
30
+ :code=>"200"
31
+ }]
32
+ }
33
+ }
34
+ let(:loaded_records) { {
35
+ "concern_resources#show" =>
36
+ [{
37
+ "verb"=>:GET,
38
+ "path"=>"/api/concerns/5",
39
+ "versions"=>["development"],
40
+ "query"=>"session=secret_hash",
41
+ "request_data"=>nil,
42
+ "response_data"=>"OK {\"session\"=>\"secret_hash\", \"id\"=>\"5\", \"controller\"=>\"concerns\", \"action\"=>\"show\"}",
43
+ "code"=>"200",
44
+ "show_in_doc"=>1,
45
+ "recorded"=>true
46
+ }, {
47
+ "verb"=>:GET,
48
+ "path"=>"/api/concerns/5",
49
+ "versions"=>["development"],
50
+ "query"=>"",
51
+ "request_data"=>nil,
52
+ "response_data"=>"OK {\"id\"=>\"5\", \"controller\"=>\"concerns\", \"action\"=>\"show\"}",
53
+ "code"=>"200",
54
+ "show_in_doc"=>0,
55
+ "recorded"=>true
56
+ }]
57
+ }
58
+ }
59
+
60
+
61
+ describe "storing of examples" do
62
+ before do
63
+ writer_class.stub(:examples_file) { test_examples_file }
64
+ collector.should_receive(:records).and_return(records)
65
+ end
66
+
67
+ it "should read and write examples" do
68
+ writer.write_examples
69
+ writer.send(:load_recorded_examples).should eq(loaded_records)
70
+ end
71
+
72
+ after do
73
+ File.unlink(test_examples_file) if File.exists?(test_examples_file)
74
+ end
75
+ end
76
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apipie-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-04-04 00:00:00.000000000 Z
13
+ date: 2014-05-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -170,7 +170,6 @@ files:
170
170
  - APACHE-LICENSE-2.0
171
171
  - CHANGELOG.md
172
172
  - Gemfile
173
- - Gemfile.rails30
174
173
  - Gemfile.rails32
175
174
  - Gemfile.rails40
176
175
  - Gemfile.rails41
@@ -191,6 +190,7 @@ files:
191
190
  - app/public/apipie/stylesheets/bundled/bootstrap.min.css
192
191
  - app/public/apipie/stylesheets/bundled/prettify.css
193
192
  - app/views/apipie/apipies/_disqus.html.erb
193
+ - app/views/apipie/apipies/_languages.erb
194
194
  - app/views/apipie/apipies/_metadata.erb
195
195
  - app/views/apipie/apipies/_method_detail.erb
196
196
  - app/views/apipie/apipies/_params.html.erb
@@ -204,6 +204,7 @@ files:
204
204
  - app/views/apipie/apipies/resource.html.erb
205
205
  - app/views/apipie/apipies/static.html.erb
206
206
  - app/views/layouts/apipie/apipie.html.erb
207
+ - config/locales/en.yml
207
208
  - lib/apipie-rails.rb
208
209
  - lib/apipie/apipie_module.rb
209
210
  - lib/apipie/application.rb
@@ -273,7 +274,7 @@ files:
273
274
  - spec/dummy/config/locales/en.yml
274
275
  - spec/dummy/config/routes.rb
275
276
  - spec/dummy/db/.gitkeep
276
- - spec/dummy/doc/apipie_examples.yml
277
+ - spec/dummy/doc/apipie_examples.json
277
278
  - spec/dummy/doc/users/desc_from_file.md
278
279
  - spec/dummy/public/404.html
279
280
  - spec/dummy/public/422.html
@@ -288,6 +289,8 @@ files:
288
289
  - spec/dummy/public/stylesheets/.gitkeep
289
290
  - spec/dummy/script/rails
290
291
  - spec/lib/application_spec.rb
292
+ - spec/lib/extractor/middleware_spec.rb
293
+ - spec/lib/extractor/writer_spec.rb
291
294
  - spec/lib/method_description_spec.rb
292
295
  - spec/lib/param_description_spec.rb
293
296
  - spec/lib/param_group_spec.rb
@@ -358,7 +361,7 @@ test_files:
358
361
  - spec/dummy/config/locales/en.yml
359
362
  - spec/dummy/config/routes.rb
360
363
  - spec/dummy/db/.gitkeep
361
- - spec/dummy/doc/apipie_examples.yml
364
+ - spec/dummy/doc/apipie_examples.json
362
365
  - spec/dummy/doc/users/desc_from_file.md
363
366
  - spec/dummy/public/404.html
364
367
  - spec/dummy/public/422.html
@@ -373,6 +376,8 @@ test_files:
373
376
  - spec/dummy/public/stylesheets/.gitkeep
374
377
  - spec/dummy/script/rails
375
378
  - spec/lib/application_spec.rb
379
+ - spec/lib/extractor/middleware_spec.rb
380
+ - spec/lib/extractor/writer_spec.rb
376
381
  - spec/lib/method_description_spec.rb
377
382
  - spec/lib/param_description_spec.rb
378
383
  - spec/lib/param_group_spec.rb