apipie-rails 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTljNTJlOWI1NzIzODJhNDg5MjlhODc4ZmY4OTc4MzY2MzRiNmYzMA==
5
+ data.tar.gz: !binary |-
6
+ Nzk2MjA1OGE1MDliZjk3M2IzMTkzZTYzODc3YTY3YWQ0ZDY3OWNmYw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ OGFlOWZmOWY3ZjUyZGRkMmZkZGRkYWExMDY3MDJmYTA0NDIyODRlOTZlOTk4
10
+ ZDQ1NjAxOWU4NWVlOTBjOWZmMjUxNDY0OTg2YWNlMGQ1NTdjMTA0NDFjZTk3
11
+ NDc1ODQ4MGU4YTFkNjg5YWE2ZmM2N2NjOTY2YzgzMTgwYjA3NzU=
12
+ data.tar.gz: !binary |-
13
+ Y2ZhMjhlMDY4N2Q1NTE3NmZiOGE0M2FlOGM0ODMxMWQ5NGI3NjRlYTVlM2E5
14
+ YzU0ZmIyOWI4OWM5NzFhOWJiZWJlYTVmZjliOGYzODY0YmE0MjdhZGE1NTJh
15
+ MDFlMTFjMTNiMDRiMmI5NDkzOWQ0YTI1ZGYxNmNjYjhjZDU3ZTc=
@@ -2,6 +2,26 @@
2
2
  Changelog
3
3
  ===========
4
4
 
5
+ v0.3.5
6
+ ------
7
+
8
+ * Cleaning up unreachable code
9
+ [#385](https://github.com/Apipie/apipie-rails/pull/385) [@voxik][]
10
+ * Russian translation
11
+ [#352](https://github.com/Apipie/apipie-rails/pull/352) [@Le6ow5k1][]
12
+ * Ability to hide controller methods from documentation
13
+ [#356](https://github.com/Apipie/apipie-rails/pull/356) [@davidcollie][]
14
+ * Use doc_path configuration in rake tasks
15
+ [#358](https://github.com/Apipie/apipie-rails/pull/358) [@saneshark][]
16
+ * Chinese translation
17
+ [#363](https://github.com/Apipie/apipie-rails/pull/363) [@debbbbie][]
18
+ * Polish translation
19
+ [#375](https://github.com/Apipie/apipie-rails/pull/375) [@dbackowski][]
20
+ * Spanish translation
21
+ [#376](https://github.com/Apipie/apipie-rails/pull/376) [@isseu][]
22
+ * Add an alternative to action aware required param
23
+ [#377](https://github.com/Apipie/apipie-rails/pull/377) [@mourad-ifeelgoods][]
24
+
5
25
  v0.3.4
6
26
  ------
7
27
 
@@ -291,3 +311,10 @@ v0.0.15
291
311
  [@iliabylich]: https://github.com/iliabylich
292
312
  [@dadario]: https://github.com/dadario
293
313
  [@saneshark]: https://github.com/saneshark
314
+ [@voxik]: https://github.com/voxik
315
+ [@Le6ow5k1]: https://github.com/Le6ow5k1
316
+ [@davidcollie]: https://github.com/davidcollie
317
+ [@saneshark]: https://github.com/saneshark
318
+ [@debbbbie]: https://github.com/debbbbie
319
+ [@dbackowski]: https://github.com/dbackowski
320
+ [@isseu]: https://github.com/isseu
data/README.rst CHANGED
@@ -27,11 +27,11 @@ Getting started
27
27
 
28
28
  The easiest way to get Apipie up and running with your app is:
29
29
 
30
- .. code::
30
+ .. code:: sh
31
31
 
32
- $ echo "gem 'apipie-rails'" >> Gemfile
33
- $ bundle install
34
- $ rails g apipie:install
32
+ echo "gem 'apipie-rails'" >> Gemfile
33
+ bundle install
34
+ rails g apipie:install
35
35
 
36
36
  Now you can start documenting your resources and actions (see
37
37
  `DSL Reference`_ for more info):
@@ -56,8 +56,8 @@ features such as generating documentation from tests, recording examples etc.
56
56
  Screenshots
57
57
  -----------
58
58
 
59
- .. image:: https://img.skitch.com/20120428-nruk3e87xs2cu4ydsjujdh11fq.png
60
- .. image:: https://img.skitch.com/20120428-bni2cmq5cyhjuw1jkd78e3qjxn.png
59
+ .. image:: https://github.com/Apipie/apipie-rails/blob/master/images/screenshot-1.png
60
+ .. image:: https://github.com/Apipie/apipie-rails/blob/master/images/screenshot-2.png
61
61
 
62
62
  Authors
63
63
  -------
@@ -224,6 +224,9 @@ see
224
224
  meta
225
225
  Hash or array with custom metadata.
226
226
 
227
+ show
228
+ Resource is hidden from documentation when set to false (true by default)
229
+
227
230
  Example:
228
231
  ~~~~~~~~
229
232
 
@@ -236,6 +239,7 @@ Example:
236
239
 
237
240
  # More complex example
238
241
  api :GET, "/users/:id", "Show user profile"
242
+ show false
239
243
  error :code => 401, :desc => "Unauthorized"
240
244
  error :code => 404, :desc => "Not Found", :meta => {:anything => "you can think of"}
241
245
  param :session, String, :desc => "user is logged in", :required => true
@@ -857,8 +861,8 @@ Adding custom validator
857
861
  Only basic validators are included but it is really easy to add your own.
858
862
  Create a new initializer with a subclass of Apipie::Validator::BaseValidator.
859
863
  Two methods are required to implement this - instance method
860
- <tt>validate(value)</tt> and class method
861
- <tt>build(param_description, argument, options, block)</tt>.
864
+ :code:`validate(value)` and class method
865
+ :code:`build(param_description, argument, options, block)`.
862
866
 
863
867
  When searching for the validator +build+ method, every subclass of
864
868
  Apipie::Validator::BaseValidator is called. The first one that returns the
@@ -1095,6 +1099,9 @@ When you want to avoid any unnecessary computation in production mode,
1095
1099
  you can generate a cache with ``rake apipie:cache`` and configure the
1096
1100
  app to use it in production with ``config.use_cache = Rails.env.production?``
1097
1101
 
1102
+ Default cache dir is ``File.join(Rails.root, "public", "apipie-cache")``,
1103
+ you can change it to where you want, example: ``config.cache_dir = File.join(Rails.root, "doc", "apidoc")``.
1104
+
1098
1105
  If, for some complex cases, you need to generate/re-generate just part of the cache
1099
1106
  use ``rake apipie:cache cache_part=index`` resp. ``rake apipie:cache cache_part=resources``
1100
1107
  To generate it for different locations for further processing use ``rake apipie:cache OUT=/tmp/apipie_cache``.
@@ -1263,8 +1270,8 @@ further versions.
1263
1270
 
1264
1271
  There is, however, an even better and more flexible way to reuse your API
1265
1272
  documentation for this purpose: using the API the Apipie
1266
- provides in the generator code. Check out
1267
- `Foreman API bindings <https://github.com/mbacovsky/foreman_api>`_, as they
1273
+ provides in the generator code. Check out our sister project
1274
+ `apipie-bindings <https://github.com/Apipie/apipie-bindings>`_, as they
1268
1275
  use exactly this approach. You also don't need to run the service,
1269
1276
  provided it uses Apipie as a backend.
1270
1277
 
@@ -1294,4 +1301,4 @@ configuration:
1294
1301
 
1295
1302
  * `Read-world application usage with versioning <https://github.com/theforeman/foreman>`_
1296
1303
 
1297
- * `Using Apipie API to generate bindings <https://github.com/mbacovsky/foreman_api>`_
1304
+ * `Using Apipie API to generate bindings <https://github.com/Apipie/apipie-bindings>`_
@@ -1,4 +1,5 @@
1
1
  module ApipieHelper
2
+ include ActionView::Helpers::TagHelper
2
3
 
3
4
  def heading(title, level=1)
4
5
  content_tag("h#{level}") do
@@ -28,6 +28,9 @@
28
28
  </thead>
29
29
  <tbody>
30
30
  <% api[:methods].each do |m| %>
31
+ <% if !m[:show] %>
32
+ <% next %>
33
+ <% end %>
31
34
  <% m[:apis].each do |a| %>
32
35
  <tr>
33
36
  <td>
@@ -2,6 +2,9 @@
2
2
  <h4><a href='#<%= key %>'><%= resource[:name] %></a></h4>
3
3
  <ul>
4
4
  <% resource[:methods].each do |method| %>
5
+ <% if !method[:show] %>
6
+ <% next %>
7
+ <% end %>
5
8
  <li><a href='#<%= key %>-<%= method[:name] %>'><%= method[:name] %></a></li>
6
9
  <% end %>
7
10
  </ul>
@@ -26,6 +29,9 @@
26
29
  <div>
27
30
 
28
31
  <% resource[:methods].each do |method| %>
32
+ <% if !method[:show] %>
33
+ <% next %>
34
+ <% end %>
29
35
  <hr/>
30
36
 
31
37
  <h3 id="<%= "#{key}-#{method[:name]}" %>">
@@ -37,6 +37,9 @@
37
37
  <div class='accordion' id='accordion'>
38
38
 
39
39
  <% @resource[:methods].each do |m| %>
40
+ <% if !m[:show] %>
41
+ <% next %>
42
+ <% end %>
40
43
  <hr>
41
44
  <div class='pull-right small'>
42
45
  <a href='<%= m[:doc_url] %><%= @doc[:link_extension] %>'> >>> </a>
@@ -2,6 +2,9 @@
2
2
  <h4><a href='#<%= key %>'><%= resource[:name] %></a></h4>
3
3
  <ul>
4
4
  <% resource[:methods].each do |method| %>
5
+ <% if !method[:show] %>
6
+ <% next %>
7
+ <% end %>
5
8
  <li><a href='#<%= key %>-<%= method[:name] %>'><%= method[:name] %></a></li>
6
9
  <% end %>
7
10
  </ul>
@@ -34,6 +37,9 @@
34
37
  <div class='accordion' id='accordion'>
35
38
 
36
39
  <% resource[:methods].each do |method| %>
40
+ <% if !method[:show] %>
41
+ <% next %>
42
+ <% end %>
37
43
  <hr>
38
44
 
39
45
  <ul class='breadcrumb' id='<%= key %>-<%= method[:name] %>'>
@@ -0,0 +1,28 @@
1
+ es:
2
+ apipie:
3
+ resources: Recursos
4
+ resource: Recurso
5
+ description: Descripción
6
+ no_docs_found: No se encontró la documentación
7
+ no_docs_found_descr: No hemos encontrado ninguna documentación para tu API.
8
+ follow_instructions_html: Siga %{href} sobre cómo describir sus controladores.
9
+ follow_instructions_href: más instrucciones
10
+ oops: Huy!!
11
+ resource_not_found_html: Recurso %{res} no encontrado.
12
+ method_not_found_html: Método %{method} no encontrado para el recurso %{resource}.
13
+ goto_homepage_html: Trate de ir a %{href}
14
+ goto_homepage_href: "%{app_name} página de documentación API "
15
+ required: requerido
16
+ optional: opcional
17
+ nil_allowed: nil permitido
18
+ param_name: Nombre del parámetro
19
+ params: Parámetros
20
+ examples: Ejemplos
21
+ metadata: Metadatos
22
+ errors: Errores
23
+ supported_formats: Formatos soportados
24
+ enable_javascript_html: Por favor, active JavaScript para ver el %{comments_href}.
25
+ comments_powered_by_disqus: comentarios gracias a %{disqus}
26
+ api_documentation: Documentación de la API
27
+ headers: Cabeceras
28
+ header_name: Nombre de cabecera
@@ -0,0 +1,29 @@
1
+ pl:
2
+ apipie:
3
+ resources: Zasoby
4
+ resource: Zasób
5
+ description: Opis
6
+ no_docs_found: Nie znalezionio dokumentacji
7
+ no_docs_found_descr: Nie znaleziono dokumentacji dla twojego API.
8
+ follow_instructions_html: Przejdź do %{href} aby opisać swoje kontrolery.
9
+ follow_instructions_href: dalsze instrukcje
10
+ oops: Ups!!
11
+ resource_not_found_html: Zasób %{res} nie został znaleziony.
12
+ method_not_found_html: Metoda %{method} dla zasobu %{resource} nie została znaleziona.
13
+ goto_homepage_html: Spróbuj przejść do %{href}
14
+ goto_homepage_href: "%{app_name} Strona główna dokumentacji API"
15
+ required: wymagany
16
+ optional: opcjonalny
17
+ nil_allowed: nil dopuszczalny
18
+ param_name: Nazwa parametru
19
+ params: Parametry
20
+ examples: Przykłady
21
+ metadata: Metadane
22
+ errors: Błędy
23
+ supported_formats: Dostępne formaty
24
+ enable_javascript_html: Proszę włączyć obsługę javascript w celu zobaczenia %{comments_href}.
25
+ comments_powered_by_disqus: komentarze obsługiwane przez %{disqus}
26
+ api_documentation: Dokumentacja API
27
+ headers: Nagłówki
28
+ header_name: Nazwa nagłówka
29
+
@@ -0,0 +1,29 @@
1
+ ru:
2
+ apipie:
3
+ resources: Ресурсы
4
+ resource: Ресурс
5
+ description: Описание
6
+ no_docs_found: Документация не найдена
7
+ no_docs_found_descr: Мы не нашли никакой документации для вашего API.
8
+ follow_instructions_html: Перейдите по ссылке %{href}, чтобы узнать как описать ваш API.
9
+ follow_instructions_href: дополнительные инструкции
10
+ oops: Ой!!
11
+ resource_not_found_html: Ресурс %{res} не найден.
12
+ method_not_found_html: Метод %{method} для ресурса %{resource} не найден.
13
+ goto_homepage_html: Перейдите %{href}
14
+ goto_homepage_href: "%{app_name} домашняя страница API документации"
15
+ required: обязательно
16
+ optional: необязательно
17
+ nil_allowed: nil разрешен
18
+ param_name: Имя параметра
19
+ params: Параметры
20
+ examples: Примеры
21
+ metadata: Метаданные
22
+ errors: Ошибки
23
+ supported_formats: Поддерживаемые форматы
24
+ enable_javascript_html: Пожалуйста включите JavaScript, чтобы просматривать %{comments_href}.
25
+ comments_powered_by_disqus: комментарии представлены %{disqus}
26
+ api_documentation: API документация
27
+ headers: Заголовки
28
+ header_name: Название заголовка
29
+
@@ -0,0 +1,28 @@
1
+ 'zh-CN':
2
+ apipie:
3
+ resources: 资源
4
+ resource: 资源
5
+ description: 描述
6
+ no_docs_found: 没有找到文档
7
+ no_docs_found_descr: 没有找到文档。
8
+ follow_instructions_html: 点击 %{href} 查看描述。
9
+ follow_instructions_href: 高级指导
10
+ oops: Oops!!
11
+ resource_not_found_html: 没有找到资源 %{res} 。
12
+ method_not_found_html: 没有找到资源 %{res} 的方法 %{method} 。
13
+ goto_homepage_html: 试图访问 %{href}
14
+ goto_homepage_href: "%{app_name} API 文档主页"
15
+ required: 必填
16
+ optional: 选填
17
+ nil_allowed: 允许空值
18
+ param_name: 参数名字
19
+ params: 参数
20
+ examples: 示例
21
+ metadata: 元数据
22
+ errors: 错误
23
+ supported_formats: 支持格式
24
+ enable_javascript_html: 浏览 %{comments_href}前请允许执行 JavaScript 。
25
+ comments_powered_by_disqus: 评论技术支持 %{disqus}
26
+ api_documentation: API 文档
27
+ headers: 头部
28
+ header_name: 头部名字
@@ -0,0 +1,28 @@
1
+ 'zh-TW':
2
+ apipie:
3
+ resources: 資源
4
+ resource: 資源
5
+ description: 描述
6
+ no_docs_found: 沒有找到文檔
7
+ no_docs_found_descr: 沒有找到文檔。
8
+ follow_instructions_html: 點擊 %{href} 查看描述。
9
+ follow_instructions_href: 高級指導
10
+ oops: Oops!!
11
+ resource_not_found_html: 沒有找到資源 %{res} 。
12
+ method_not_found_html: 沒有找到資源 %{res} 的方法 %{method} 。
13
+ goto_homepage_html: 試圖訪問 %{href}
14
+ goto_homepage_href: "%{app_name} API 文檔主頁"
15
+ required: 必填
16
+ optional: 選填
17
+ nil_allowed: 允許空值
18
+ param_name: 參數名字
19
+ params: 參數
20
+ examples: 示例
21
+ metadata: 元數據
22
+ errors: 錯誤
23
+ supported_formats: 支持格式
24
+ enable_javascript_html: 瀏覽 %{comments_href}前請允許執行 JavaScript 。
25
+ comments_powered_by_disqus: 評論技術支持 %{disqus}
26
+ api_documentation: API 文檔
27
+ headers: 頭部
28
+ header_name: 頭部名字
Binary file
Binary file
@@ -33,7 +33,8 @@ module Apipie
33
33
  :see => [],
34
34
  :formats => nil,
35
35
  :api_versions => [],
36
- :meta => nil
36
+ :meta => nil,
37
+ :show => true
37
38
  }
38
39
  end
39
40
  end
@@ -111,6 +112,13 @@ module Apipie
111
112
  _apipie_dsl_data[:examples] << example.strip_heredoc
112
113
  end
113
114
 
115
+ # Determine if the method should be included
116
+ # in the documentation
117
+ def show(show)
118
+ return unless Apipie.active_dsl?
119
+ _apipie_dsl_data[:show] = show
120
+ end
121
+
114
122
  # Describe whole resource
115
123
  #
116
124
  # Example:
@@ -53,7 +53,7 @@ module Apipie
53
53
  end
54
54
 
55
55
  def self.examples_file
56
- File.join(Rails.root,"doc","apipie_examples.json")
56
+ File.join(Rails.root,Apipie.configuration.doc_path,"apipie_examples.json")
57
57
  end
58
58
 
59
59
  protected
@@ -17,7 +17,7 @@ module Apipie
17
17
 
18
18
  end
19
19
 
20
- attr_reader :full_description, :method, :resource, :apis, :examples, :see, :formats, :metadata, :headers
20
+ attr_reader :full_description, :method, :resource, :apis, :examples, :see, :formats, :metadata, :headers, :show
21
21
 
22
22
  def initialize(method, resource, dsl_data)
23
23
  @method = method.to_s
@@ -49,6 +49,12 @@ module Apipie
49
49
  end
50
50
  @params_ordered = ParamDescription.unify(@params_ordered)
51
51
  @headers = dsl_data[:headers]
52
+
53
+ @show = if dsl_data.has_key? :show
54
+ dsl_data[:show]
55
+ else
56
+ true
57
+ end
52
58
  end
53
59
 
54
60
  def id
@@ -144,7 +150,8 @@ module Apipie
144
150
  :examples => @examples,
145
151
  :metadata => @metadata,
146
152
  :see => see.map(&:to_json),
147
- :headers => headers
153
+ :headers => headers,
154
+ :show => @show
148
155
  }
149
156
  end
150
157
 
@@ -47,11 +47,7 @@ module Apipie
47
47
  @parent = @options[:parent]
48
48
  @metadata = @options[:meta]
49
49
 
50
- @required = if @options.has_key? :required
51
- @options[:required]
52
- else
53
- Apipie.configuration.required_by_default?
54
- end
50
+ @required = is_required?
55
51
 
56
52
  @show = if @options.has_key? :show
57
53
  @options[:show]
@@ -210,6 +206,18 @@ module Apipie
210
206
  concern_subst(Apipie.markup_to_html(text || ''))
211
207
  end
212
208
 
209
+ def is_required?
210
+ if @options.has_key?(:required)
211
+ if (@options[:required] == true) || (@options[:required] == false)
212
+ @options[:required]
213
+ else
214
+ Array(@options[:required]).include?(@method_description.method.to_sym)
215
+ end
216
+ else
217
+ Apipie.configuration.required_by_default?
218
+ end
219
+ end
220
+
213
221
  end
214
222
 
215
223
  end