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.
- data/.travis.yml +1 -2
- data/CHANGELOG.md +26 -0
- data/README.rst +94 -3
- data/app/controllers/apipie/apipies_controller.rb +28 -10
- data/app/views/apipie/apipies/_disqus.html.erb +4 -2
- data/app/views/apipie/apipies/_languages.erb +6 -0
- data/app/views/apipie/apipies/_method_detail.erb +7 -7
- data/app/views/apipie/apipies/_params.html.erb +2 -2
- data/app/views/apipie/apipies/_params_plain.html.erb +2 -2
- data/app/views/apipie/apipies/apipie_404.html.erb +7 -4
- data/app/views/apipie/apipies/getting_started.html.erb +5 -3
- data/app/views/apipie/apipies/index.html.erb +7 -6
- data/app/views/apipie/apipies/method.html.erb +4 -2
- data/app/views/apipie/apipies/plain.html.erb +3 -3
- data/app/views/apipie/apipies/resource.html.erb +3 -2
- data/app/views/apipie/apipies/static.html.erb +7 -7
- data/app/views/layouts/apipie/apipie.html.erb +1 -1
- data/config/locales/en.yml +27 -0
- data/lib/apipie-rails.rb +7 -0
- data/lib/apipie/apipie_module.rb +5 -2
- data/lib/apipie/application.rb +27 -16
- data/lib/apipie/configuration.rb +6 -1
- data/lib/apipie/extractor.rb +35 -26
- data/lib/apipie/extractor/recorder.rb +9 -5
- data/lib/apipie/extractor/writer.rb +36 -7
- data/lib/apipie/method_description.rb +6 -6
- data/lib/apipie/param_description.rb +9 -4
- data/lib/apipie/resource_description.rb +5 -5
- data/lib/apipie/routing.rb +1 -1
- data/lib/apipie/version.rb +1 -1
- data/lib/generators/apipie/install/templates/initializer.rb.erb +1 -1
- data/lib/tasks/apipie.rake +89 -47
- data/spec/dummy/doc/apipie_examples.json +1 -0
- data/spec/lib/extractor/middleware_spec.rb +21 -0
- data/spec/lib/extractor/writer_spec.rb +76 -0
- metadata +10 -5
- data/Gemfile.rails30 +0 -5
- 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 =
|
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(
|
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,
|
data/lib/apipie/routing.rb
CHANGED
@@ -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
|
data/lib/apipie/version.rb
CHANGED
@@ -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
|
-
#
|
5
|
+
# where is your API defined?
|
6
6
|
config.api_controllers_matcher = "#{Rails.root}/app/controllers/*.rb"
|
7
7
|
end
|
data/lib/tasks/apipie.rake
CHANGED
@@ -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.
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
|
45
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
Apipie.
|
62
|
-
doc =
|
63
|
-
generate_index_page(
|
64
|
-
Apipie.
|
65
|
-
|
66
|
-
|
67
|
-
|
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 =
|
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]
|
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],
|
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
|
-
|
131
|
-
|
132
|
-
|
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
|
-
|
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.
|
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-
|
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.
|
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.
|
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
|