apipierails3 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +17 -0
- data/.gitignore +14 -0
- data/.rspec +2 -0
- data/.travis.yml +27 -0
- data/APACHE-LICENSE-2.0 +202 -0
- data/CHANGELOG.md +469 -0
- data/Gemfile +1 -0
- data/Gemfile.rails32 +6 -0
- data/Gemfile.rails41 +6 -0
- data/Gemfile.rails42 +11 -0
- data/Gemfile.rails50 +6 -0
- data/Gemfile.rails51 +7 -0
- data/MIT-LICENSE +20 -0
- data/NOTICE +4 -0
- data/PROPOSAL_FOR_RESPONSE_DESCRIPTIONS.md +244 -0
- data/README.rst +1874 -0
- data/Rakefile +13 -0
- data/apipierails3.gemspec +27 -0
- data/app/controllers/apipie/apipies_controller.rb +199 -0
- data/app/helpers/apipie_helper.rb +10 -0
- data/app/public/apipie/javascripts/apipie.js +6 -0
- data/app/public/apipie/javascripts/bundled/bootstrap-collapse.js +138 -0
- data/app/public/apipie/javascripts/bundled/bootstrap.js +1726 -0
- data/app/public/apipie/javascripts/bundled/jquery.js +5 -0
- data/app/public/apipie/javascripts/bundled/prettify.js +28 -0
- data/app/public/apipie/stylesheets/application.css +7 -0
- data/app/public/apipie/stylesheets/bundled/bootstrap-responsive.min.css +12 -0
- data/app/public/apipie/stylesheets/bundled/bootstrap.min.css +689 -0
- data/app/public/apipie/stylesheets/bundled/prettify.css +30 -0
- data/app/views/apipie/apipies/_disqus.html.erb +13 -0
- data/app/views/apipie/apipies/_errors.html.erb +23 -0
- data/app/views/apipie/apipies/_headers.html.erb +26 -0
- data/app/views/apipie/apipies/_languages.erb +6 -0
- data/app/views/apipie/apipies/_metadata.erb +1 -0
- data/app/views/apipie/apipies/_method_detail.erb +61 -0
- data/app/views/apipie/apipies/_params.html.erb +42 -0
- data/app/views/apipie/apipies/_params_plain.html.erb +20 -0
- data/app/views/apipie/apipies/apipie_404.html.erb +17 -0
- data/app/views/apipie/apipies/apipie_checksum.json.erb +1 -0
- data/app/views/apipie/apipies/getting_started.html.erb +6 -0
- data/app/views/apipie/apipies/index.html.erb +56 -0
- data/app/views/apipie/apipies/method.html.erb +41 -0
- data/app/views/apipie/apipies/plain.html.erb +77 -0
- data/app/views/apipie/apipies/resource.html.erb +80 -0
- data/app/views/apipie/apipies/static.html.erb +103 -0
- data/app/views/layouts/apipie/apipie.html.erb +27 -0
- data/config/locales/de.yml +28 -0
- data/config/locales/en.yml +32 -0
- data/config/locales/es.yml +28 -0
- data/config/locales/fr.yml +31 -0
- data/config/locales/it.yml +31 -0
- data/config/locales/ja.yml +31 -0
- data/config/locales/pl.yml +28 -0
- data/config/locales/pt-BR.yml +28 -0
- data/config/locales/ru.yml +28 -0
- data/config/locales/tr.yml +28 -0
- data/config/locales/zh-CN.yml +28 -0
- data/config/locales/zh-TW.yml +28 -0
- data/images/screenshot-1.png +0 -0
- data/images/screenshot-2.png +0 -0
- data/lib/apipie/apipie_module.rb +83 -0
- data/lib/apipie/application.rb +462 -0
- data/lib/apipie/configuration.rb +186 -0
- data/lib/apipie/dsl_definition.rb +607 -0
- data/lib/apipie/error_description.rb +44 -0
- data/lib/apipie/errors.rb +86 -0
- data/lib/apipie/extractor.rb +177 -0
- data/lib/apipie/extractor/collector.rb +117 -0
- data/lib/apipie/extractor/recorder.rb +166 -0
- data/lib/apipie/extractor/writer.rb +454 -0
- data/lib/apipie/helpers.rb +73 -0
- data/lib/apipie/markup.rb +48 -0
- data/lib/apipie/method_description.rb +273 -0
- data/lib/apipie/middleware/checksum_in_headers.rb +35 -0
- data/lib/apipie/param_description.rb +280 -0
- data/lib/apipie/railtie.rb +9 -0
- data/lib/apipie/resource_description.rb +124 -0
- data/lib/apipie/response_description.rb +131 -0
- data/lib/apipie/response_description_adapter.rb +200 -0
- data/lib/apipie/routes_formatter.rb +33 -0
- data/lib/apipie/routing.rb +16 -0
- data/lib/apipie/rspec/response_validation_helper.rb +192 -0
- data/lib/apipie/see_description.rb +39 -0
- data/lib/apipie/static_dispatcher.rb +69 -0
- data/lib/apipie/swagger_generator.rb +707 -0
- data/lib/apipie/tag_list_description.rb +11 -0
- data/lib/apipie/validator.rb +526 -0
- data/lib/apipie/version.rb +3 -0
- data/lib/apipierails3.rb +25 -0
- data/lib/generators/apipie/install/README +6 -0
- data/lib/generators/apipie/install/install_generator.rb +25 -0
- data/lib/generators/apipie/install/templates/initializer.rb.erb +7 -0
- data/lib/generators/apipie/views_generator.rb +11 -0
- data/lib/tasks/apipie.rake +345 -0
- data/rel-eng/packages/.readme +3 -0
- data/rel-eng/packages/rubygem-apipie-rails +1 -0
- data/rel-eng/tito.props +5 -0
- data/spec/controllers/api/v1/architectures_controller_spec.rb +29 -0
- data/spec/controllers/api/v2/architectures_controller_spec.rb +12 -0
- data/spec/controllers/api/v2/nested/resources_controller_spec.rb +11 -0
- data/spec/controllers/apipies_controller_spec.rb +273 -0
- data/spec/controllers/concerns_controller_spec.rb +42 -0
- data/spec/controllers/extended_controller_spec.rb +11 -0
- data/spec/controllers/users_controller_spec.rb +740 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/api/base_controller.rb +4 -0
- data/spec/dummy/app/controllers/api/v1/architectures_controller.rb +43 -0
- data/spec/dummy/app/controllers/api/v1/base_controller.rb +11 -0
- data/spec/dummy/app/controllers/api/v2/architectures_controller.rb +30 -0
- data/spec/dummy/app/controllers/api/v2/base_controller.rb +11 -0
- data/spec/dummy/app/controllers/api/v2/nested/architectures_controller.rb +32 -0
- data/spec/dummy/app/controllers/api/v2/nested/resources_controller.rb +33 -0
- data/spec/dummy/app/controllers/application_controller.rb +18 -0
- data/spec/dummy/app/controllers/concerns/extending_concern.rb +11 -0
- data/spec/dummy/app/controllers/concerns/sample_controller.rb +41 -0
- data/spec/dummy/app/controllers/concerns_controller.rb +8 -0
- data/spec/dummy/app/controllers/extended_controller.rb +14 -0
- data/spec/dummy/app/controllers/files_controller.rb +5 -0
- data/spec/dummy/app/controllers/overridden_concerns_controller.rb +31 -0
- data/spec/dummy/app/controllers/pets_controller.rb +408 -0
- data/spec/dummy/app/controllers/pets_using_auto_views_controller.rb +73 -0
- data/spec/dummy/app/controllers/pets_using_self_describing_classes_controller.rb +95 -0
- data/spec/dummy/app/controllers/tagged_cats_controller.rb +32 -0
- data/spec/dummy/app/controllers/tagged_dogs_controller.rb +15 -0
- data/spec/dummy/app/controllers/twitter_example_controller.rb +307 -0
- data/spec/dummy/app/controllers/users_controller.rb +297 -0
- data/spec/dummy/app/views/layouts/application.html.erb +21 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +49 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +21 -0
- data/spec/dummy/config/environment.rb +8 -0
- data/spec/dummy/config/environments/development.rb +28 -0
- data/spec/dummy/config/environments/production.rb +52 -0
- data/spec/dummy/config/environments/test.rb +38 -0
- data/spec/dummy/config/initializers/apipie.rb +110 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +8 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +51 -0
- data/spec/dummy/db/.gitkeep +0 -0
- data/spec/dummy/doc/apipie_examples.json +1 -0
- data/spec/dummy/doc/users/desc_from_file.md +1 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/lib/application_spec.rb +49 -0
- data/spec/lib/extractor/extractor_spec.rb +9 -0
- data/spec/lib/extractor/middleware_spec.rb +44 -0
- data/spec/lib/extractor/writer_spec.rb +110 -0
- data/spec/lib/file_handler_spec.rb +18 -0
- data/spec/lib/method_description_spec.rb +98 -0
- data/spec/lib/param_description_spec.rb +345 -0
- data/spec/lib/param_group_spec.rb +60 -0
- data/spec/lib/rake_spec.rb +71 -0
- data/spec/lib/resource_description_spec.rb +48 -0
- data/spec/lib/swagger/openapi_2_0_schema.json +1607 -0
- data/spec/lib/swagger/rake_swagger_spec.rb +139 -0
- data/spec/lib/swagger/response_validation_spec.rb +104 -0
- data/spec/lib/swagger/swagger_dsl_spec.rb +658 -0
- data/spec/lib/validator_spec.rb +113 -0
- data/spec/lib/validators/array_validator_spec.rb +85 -0
- data/spec/spec_helper.rb +109 -0
- data/spec/support/rake.rb +21 -0
- metadata +415 -0
@@ -0,0 +1,297 @@
|
|
1
|
+
class UsersController < ApplicationController
|
2
|
+
|
3
|
+
resource_description do
|
4
|
+
short 'Site members'
|
5
|
+
path '/users'
|
6
|
+
formats ['json']
|
7
|
+
param :id, Fixnum, :desc => "User ID", :required => false
|
8
|
+
param :legacy_param, Hash, :desc => 'Deprecated parameter not documented', :show => false, :required => false do
|
9
|
+
param :resource_param, Hash, :desc => 'Param description for all methods' do
|
10
|
+
param :ausername, String, :desc => "Username for login", :required => true
|
11
|
+
param :apassword, String, :desc => "Password for login", :required => true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
api_version "development"
|
15
|
+
error 404, "Missing", :meta => {:some => "metadata"}
|
16
|
+
error 500, "Server crashed for some <%= reason %>"
|
17
|
+
meta :new_style => true, :author => { :name => 'John', :surname => 'Doe' }
|
18
|
+
description <<-EOS
|
19
|
+
== Long description
|
20
|
+
|
21
|
+
Example resource for rest api documentation
|
22
|
+
|
23
|
+
These can now be accessed in <tt>shared/header</tt> with:
|
24
|
+
|
25
|
+
Headline: <%= headline %>
|
26
|
+
First name: <%= person.first_name %>
|
27
|
+
|
28
|
+
If you need to find out whether a certain local variable has been assigned a value in a particular render call,
|
29
|
+
you need to use the following pattern:
|
30
|
+
|
31
|
+
<% if local_assigns.has_key? :headline %>
|
32
|
+
Headline: <%= headline %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
Testing using <tt>defined? headline</tt> will not work. This is an implementation restriction.
|
36
|
+
|
37
|
+
=== Template caching
|
38
|
+
|
39
|
+
By default, Rails will compile each template to a method in order to render it. When you alter a template,
|
40
|
+
Rails will check the file's modification time and recompile it in development mode.
|
41
|
+
EOS
|
42
|
+
header :CommonHeader, 'Common header description', required: true
|
43
|
+
end
|
44
|
+
|
45
|
+
description <<-eos
|
46
|
+
= Action View Base
|
47
|
+
|
48
|
+
Action View templates can be written in several ways. If the template file has a <tt>.erb</tt> extension then it uses a mixture of ERb
|
49
|
+
(included in Ruby) and HTML. If the template file has a <tt>.builder</tt> extension then Jim Weirich's Builder::XmlMarkup library is used.
|
50
|
+
|
51
|
+
== ERB
|
52
|
+
|
53
|
+
You trigger ERB by using embeddings such as <% %>, <% -%>, and <%= %>. The <%= %> tag set is used when you want output. Consider the
|
54
|
+
following loop for names:
|
55
|
+
|
56
|
+
<b>Names of all the people</b>
|
57
|
+
<% @people.each do |person| %>
|
58
|
+
Name: <%= person.name %><br/>
|
59
|
+
<% end %>
|
60
|
+
|
61
|
+
The loop is setup in regular embedding tags <% %> and the name is written using the output embedding tag <%= %>. Note that this
|
62
|
+
is not just a usage suggestion. Regular output functions like print or puts won't work with ERB templates. So this would be wrong:
|
63
|
+
|
64
|
+
<%# WRONG %>
|
65
|
+
Hi, Mr. <% puts "Frodo" %>
|
66
|
+
|
67
|
+
If you absolutely must write from within a function use +concat+.
|
68
|
+
|
69
|
+
<%- and -%> suppress leading and trailing whitespace, including the trailing newline, and can be used interchangeably with <% and %>.
|
70
|
+
|
71
|
+
=== Using sub templates
|
72
|
+
|
73
|
+
Using sub templates allows you to sidestep tedious replication and extract common display structures in shared templates. The
|
74
|
+
classic example is the use of a header and footer (even though the Action Pack-way would be to use Layouts):
|
75
|
+
|
76
|
+
<%= render "shared/header" %>
|
77
|
+
Something really specific and terrific
|
78
|
+
<%= render "shared/footer" %>
|
79
|
+
|
80
|
+
As you see, we use the output embeddings for the render methods. The render call itself will just return a string holding the
|
81
|
+
result of the rendering. The output embedding writes it to the current template.
|
82
|
+
|
83
|
+
But you don't have to restrict yourself to static includes. Templates can share variables amongst themselves by using instance
|
84
|
+
variables defined using the regular embedding tags. Like this:
|
85
|
+
|
86
|
+
<% @page_title = "A Wonderful Hello" %>
|
87
|
+
<%= render "shared/header" %>
|
88
|
+
|
89
|
+
Now the header can pick up on the <tt>@page_title</tt> variable and use it for outputting a title tag:
|
90
|
+
|
91
|
+
<title><%= @page_title %></title>
|
92
|
+
|
93
|
+
=== Passing local variables to sub templates
|
94
|
+
|
95
|
+
You can pass local variables to sub templates by using a hash with the variable names as keys and the objects as values:
|
96
|
+
|
97
|
+
<%= render "shared/header", { :headline => "Welcome", :person => person } %>
|
98
|
+
|
99
|
+
These can now be accessed in <tt>shared/header</tt> with:
|
100
|
+
|
101
|
+
Headline: <%= headline %>
|
102
|
+
First name: <%= person.first_name %>
|
103
|
+
|
104
|
+
If you need to find out whether a certain local variable has been assigned a value in a particular render call,
|
105
|
+
you need to use the following pattern:
|
106
|
+
|
107
|
+
<% if local_assigns.has_key? :headline %>
|
108
|
+
Headline: <%= headline %>
|
109
|
+
<% end %>
|
110
|
+
|
111
|
+
Testing using <tt>defined? headline</tt> will not work. This is an implementation restriction.
|
112
|
+
|
113
|
+
=== Template caching
|
114
|
+
|
115
|
+
By default, Rails will compile each template to a method in order to render it. When you alter a template,
|
116
|
+
Rails will check the file's modification time and recompile it in development mode.
|
117
|
+
|
118
|
+
== Builder
|
119
|
+
|
120
|
+
Builder templates are a more programmatic alternative to ERB. They are especially useful for generating XML content. An XmlMarkup object
|
121
|
+
named +xml+ is automatically made available to templates with a <tt>.builder</tt> extension.
|
122
|
+
|
123
|
+
Here are some basic examples:
|
124
|
+
|
125
|
+
xml.em("emphasized") # => <em>emphasized</em>
|
126
|
+
xml.em { xml.b("emph & bold") } # => <em><b>emph & bold</b></em>
|
127
|
+
xml.a("A Link", "href" => "http://onestepback.org") # => <a href="http://onestepback.org">A Link</a>
|
128
|
+
xml.target("name" => "compile", "option" => "fast") # => <target option="fast" name="compile"\>
|
129
|
+
# NOTE: order of attributes is not specified.
|
130
|
+
|
131
|
+
Any method with a block will be treated as an XML markup tag with nested markup in the block. For example, the following:
|
132
|
+
|
133
|
+
xml.div do
|
134
|
+
xml.h1(@person.name)
|
135
|
+
xml.p(@person.bio)
|
136
|
+
end
|
137
|
+
|
138
|
+
would produce something like:
|
139
|
+
|
140
|
+
<div>
|
141
|
+
<h1>David Heinemeier Hansson</h1>
|
142
|
+
<p>A product of Danish Design during the Winter of '79...</p>
|
143
|
+
</div>
|
144
|
+
|
145
|
+
A full-length RSS example actually used on Basecamp:
|
146
|
+
|
147
|
+
xml.rss("version" => "2.0", "xmlns:dc" => "http://purl.org/dc/elements/1.1/") do
|
148
|
+
xml.channel do
|
149
|
+
xml.title(@feed_title)
|
150
|
+
xml.link(@url)
|
151
|
+
xml.description "Basecamp: Recent items"
|
152
|
+
xml.language "en-us"
|
153
|
+
xml.ttl "40"
|
154
|
+
|
155
|
+
@recent_items.each do |item|
|
156
|
+
xml.item do
|
157
|
+
xml.title(item_title(item))
|
158
|
+
xml.description(item_description(item)) if item_description(item)
|
159
|
+
xml.pubDate(item_pubDate(item))
|
160
|
+
xml.guid(@person.firm.account.url + @recent_items.url(item))
|
161
|
+
xml.link(@person.firm.account.url + @recent_items.url(item))
|
162
|
+
|
163
|
+
xml.tag!("dc:creator", item.author_name) if item_has_creator?(item)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
More builder documentation can be found at http://builder.rubyforge.org.
|
170
|
+
eos
|
171
|
+
api :GET, "/users/:id", "Show user profile"
|
172
|
+
show false
|
173
|
+
formats ['json', 'jsonp']
|
174
|
+
error 401, "Unauthorized"
|
175
|
+
error :code => 404, :description => "Not Found"
|
176
|
+
param :id, Integer, :desc => "user id", :required => true
|
177
|
+
param :session, String, :desc => "user is logged in", :required => true, :missing_message => lambda { "session_parameter_is_required" }
|
178
|
+
param :regexp_param, /^[0-9]* years/, :desc => "regexp param"
|
179
|
+
param :regexp2, /\b[A-Z0-9._%+-=]+@[A-Z0-9.-]+.[A-Z]{2,}\b/i, :desc => "email regexp"
|
180
|
+
param :array_param, ["100", "one", "two", "1", "2"], :desc => "array validator"
|
181
|
+
param :boolean_param, [true, false], :desc => "array validator with boolean"
|
182
|
+
param :proc_param, lambda { |val|
|
183
|
+
val == "param value" ? true : "The only good value is 'param value'."
|
184
|
+
}, :desc => "proc validator"
|
185
|
+
param :briefer_dsl, String, "You dont need :desc => from now"
|
186
|
+
param :meta_param, String, :desc => "A parameter with some additional metadata", :meta => [:some, :more, :info]
|
187
|
+
meta :success_message => "Some message"
|
188
|
+
param :hash_param, Hash, :desc => "Hash param" do
|
189
|
+
param :dummy_hash, Hash do
|
190
|
+
param :dummy_2, String, :required => true
|
191
|
+
end
|
192
|
+
end
|
193
|
+
def show
|
194
|
+
unless params[:session] == "secret_hash"
|
195
|
+
render :plain => "Not authorized", :status => 401
|
196
|
+
return
|
197
|
+
end
|
198
|
+
|
199
|
+
unless params[:id].to_i == 5
|
200
|
+
render :plain => "Not Found", :status => 404 and return
|
201
|
+
end
|
202
|
+
|
203
|
+
render :plain => "OK"
|
204
|
+
end
|
205
|
+
|
206
|
+
def_param_group :credentials do
|
207
|
+
param :name, String, :desc => "Username for login", :required => true
|
208
|
+
param :pass, String, :desc => "Password for login", :required => true
|
209
|
+
end
|
210
|
+
|
211
|
+
def_param_group :user do
|
212
|
+
param :user, Hash, :desc => "User info", :required => true, :action_aware => true do
|
213
|
+
param_group :credentials
|
214
|
+
param :membership, ["standard","premium"], :desc => "User membership", :allow_nil => false
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
api :POST, "/users", "Create user"
|
219
|
+
param_group :user
|
220
|
+
param :user, Hash do
|
221
|
+
param :permalink, String
|
222
|
+
end
|
223
|
+
param :facts, Hash, :desc => "Additional optional facts about the user", :allow_nil => true
|
224
|
+
param :age, :number, :desc => "Age is just a number", :allow_blank => true
|
225
|
+
error :unprocessable_entity, 'Unprocessable Entity'
|
226
|
+
def create
|
227
|
+
render :plain => "OK #{params.inspect}"
|
228
|
+
end
|
229
|
+
|
230
|
+
api :PUT, "/users/:id", "Update an user"
|
231
|
+
param_group :user
|
232
|
+
param :comments, Array do
|
233
|
+
param :comment, String
|
234
|
+
end
|
235
|
+
def update
|
236
|
+
render :plain => "OK #{params.inspect}"
|
237
|
+
end
|
238
|
+
|
239
|
+
api :POST, "/users/admin", "Create admin user"
|
240
|
+
param_group :user, :as => :create
|
241
|
+
def admin_create
|
242
|
+
render :plain => "OK #{params.inspect}"
|
243
|
+
end
|
244
|
+
|
245
|
+
api :GET, "/users", "List users"
|
246
|
+
error :code => 401, :desc => "Unauthorized"
|
247
|
+
error :code => 404, :desc => "Not Found"
|
248
|
+
desc "List all users."
|
249
|
+
param :oauth, nil,
|
250
|
+
:desc => "Hide this global param (eg dont need auth here)"
|
251
|
+
def index
|
252
|
+
render :plain => "List of users"
|
253
|
+
end
|
254
|
+
|
255
|
+
api :GET, '/company_users', 'Get company users'
|
256
|
+
api :GET, '/company/:id/users', 'Get users working in given company'
|
257
|
+
param :id, Integer, :desc => "Company ID"
|
258
|
+
def two_urls
|
259
|
+
render :plain => 'List of users'
|
260
|
+
end
|
261
|
+
|
262
|
+
api :GET, '/users/see_another', 'Boring method'
|
263
|
+
show false
|
264
|
+
see 'development#users#create'
|
265
|
+
see 'development#users#index', "very interesting method reference"
|
266
|
+
desc 'This method is boring, look at users#create. It is hidden from documentation.'
|
267
|
+
def see_another
|
268
|
+
render :plain => 'This is very similar to create action'
|
269
|
+
end
|
270
|
+
|
271
|
+
api :GET, '/users/by_department', 'show users from a specific department'
|
272
|
+
param :department, ["finance", "operations", "sales", "marketing", "HR"], required: false, default_value: "sales"
|
273
|
+
def get_by_department
|
274
|
+
render :plain => 'nothing to see here'
|
275
|
+
end
|
276
|
+
|
277
|
+
api :GET, '/users/desc_from_file', 'desc from file'
|
278
|
+
document 'users/desc_from_file.md'
|
279
|
+
def desc_from_file
|
280
|
+
render :plain => 'document from file action'
|
281
|
+
end
|
282
|
+
|
283
|
+
api! 'Create user'
|
284
|
+
param_group :user
|
285
|
+
param :user, Hash do
|
286
|
+
param :permalink, String
|
287
|
+
end
|
288
|
+
param :facts, Hash, :desc => "Additional optional facts about the user", :allow_nil => true
|
289
|
+
def create_route
|
290
|
+
end
|
291
|
+
|
292
|
+
api :GET, '/users/action_with_headers'
|
293
|
+
header :RequredHeaderName, 'Required header description', required: true
|
294
|
+
header :OptionalHeaderName, 'Optional header description', required: false, type: 'string'
|
295
|
+
def action_with_headers
|
296
|
+
end
|
297
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy API</title>
|
5
|
+
<%= Apipie.include_stylesheets %>
|
6
|
+
</head>
|
7
|
+
<body style='background-color: #F5F6F7;'>
|
8
|
+
<div class="container">
|
9
|
+
<div class="row">
|
10
|
+
<div id='container' style='background-color: white;padding:10px;box-shadow:0px 0px 10px rgba(68,68,68,0.6);'>
|
11
|
+
<%= yield %>
|
12
|
+
<%= render 'disqus' if Apipie.configuration.use_disqus? %>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
<hr>
|
16
|
+
<footer><%= yield :apipie_footer %></footer>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<%= Apipie.include_javascripts %>
|
20
|
+
</body>
|
21
|
+
</html>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require "active_model/railtie"
|
4
|
+
require "active_record/railtie"
|
5
|
+
require "action_controller/railtie"
|
6
|
+
require "action_view/railtie"
|
7
|
+
require "action_mailer/railtie"
|
8
|
+
|
9
|
+
Bundler.require
|
10
|
+
require "apipierails3"
|
11
|
+
|
12
|
+
module Dummy
|
13
|
+
class Application < Rails::Application
|
14
|
+
# Settings in config/environments/* take precedence over those specified here.
|
15
|
+
# Application configuration should go into files in config/initializers
|
16
|
+
# -- all .rb files in that directory are automatically loaded.
|
17
|
+
|
18
|
+
# Custom directories with classes and modules you want to be autoloadable.
|
19
|
+
# config.autoload_paths += %W(#{config.root}/extras)
|
20
|
+
|
21
|
+
# Only load the plugins named here, in the order given (default is alphabetical).
|
22
|
+
# :all can be used as a placeholder for all plugins not explicitly named.
|
23
|
+
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
24
|
+
|
25
|
+
# Activate observers that should always be running.
|
26
|
+
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
27
|
+
|
28
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
29
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
30
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
31
|
+
|
32
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
33
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
34
|
+
# config.i18n.default_locale = :de
|
35
|
+
|
36
|
+
# JavaScript files you want as :defaults (application.js is always included).
|
37
|
+
# config.action_view.javascript_expansions[:defaults] = %w(jquery rails)
|
38
|
+
|
39
|
+
# Configure the default encoding used in templates for Ruby 1.9.
|
40
|
+
config.encoding = "utf-8"
|
41
|
+
|
42
|
+
# Configure sensitive parameters which will be filtered from the log file.
|
43
|
+
config.filter_parameters += [:password]
|
44
|
+
|
45
|
+
config.to_prepare do
|
46
|
+
ExtendedController.send(:include, Concerns::ExtendingConcern)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3
|
3
|
+
development:
|
4
|
+
adapter: sqlite3
|
5
|
+
database: db/development.sqlite3
|
6
|
+
pool: 5
|
7
|
+
timeout: 5000
|
8
|
+
|
9
|
+
# Warning: The database defined as "test" will be erased and
|
10
|
+
# re-generated from your development database when you run "rake".
|
11
|
+
# Do not set this db to the same as development or production.
|
12
|
+
test:
|
13
|
+
adapter: sqlite3
|
14
|
+
database: ":memory:"
|
15
|
+
timeout: 500
|
16
|
+
|
17
|
+
production:
|
18
|
+
adapter: sqlite3
|
19
|
+
database: db/production.sqlite3
|
20
|
+
pool: 5
|
21
|
+
timeout: 5000
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# uncomment this line to test rails relative url root
|
2
|
+
# ENV['RAILS_RELATIVE_URL_ROOT'] = '/relative/path'
|
3
|
+
|
4
|
+
# Load the rails application
|
5
|
+
require File.expand_path('../application', __FILE__)
|
6
|
+
|
7
|
+
# Initialize the rails application
|
8
|
+
Dummy::Application.initialize!
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Dummy::Application.configure do
|
2
|
+
# Settings specified here will take precedence over those in config/application.rb
|
3
|
+
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the webserver when you make code changes.
|
7
|
+
config.cache_classes = false
|
8
|
+
|
9
|
+
# Log error messages when you accidentally call methods on nil.
|
10
|
+
config.whiny_nils = true
|
11
|
+
|
12
|
+
# Show full error reports and disable caching
|
13
|
+
config.consider_all_requests_local = true
|
14
|
+
config.action_controller.perform_caching = false
|
15
|
+
|
16
|
+
# Don't care if the mailer can't send
|
17
|
+
config.action_mailer.raise_delivery_errors = false
|
18
|
+
|
19
|
+
# Print deprecation notices to the Rails logger
|
20
|
+
config.active_support.deprecation = :log
|
21
|
+
|
22
|
+
# Only use best-standards-support built into browsers
|
23
|
+
config.action_dispatch.best_standards_support = :builtin
|
24
|
+
|
25
|
+
# Do not eager load code on boot. (Rails 5)
|
26
|
+
config.eager_load = false
|
27
|
+
end
|
28
|
+
|