api_canon 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ae973a42fab02db3f846d289447747a5cb35460
|
4
|
+
data.tar.gz: 963a6ebde8bd3d854afbb64ff694e43fd20c4343
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2b597c23d3dfaa4daca2351c242123008ac3985488ab97abfd27adda7d9b2a93cce84ba3964613f9f3a0ffcc68022a49ee6a0306bfdfd9804e4e12825d8b846
|
7
|
+
data.tar.gz: f302da8afcc840853dabee58982860f19c9dac85571275f113cb37212435eb76274ce1fefffad43a7ddf0db7fa91aaa34444e0efd10d090ee8c7056b5640940b
|
data/README.md
CHANGED
@@ -119,7 +119,7 @@ class FunkyCategoriesController < ApplicationController
|
|
119
119
|
document_method :show do
|
120
120
|
describe %Q{This action returns a tree of categories starting at the
|
121
121
|
requested root node.}
|
122
|
-
param :id, :type => :string
|
122
|
+
param :id, :type => :string, :default => 'mens-fashion-accessories',
|
123
123
|
:example_values => Category.limit(5).pluck(:code),
|
124
124
|
:description => "Category code to show, the root node for the entire tree."
|
125
125
|
end
|
@@ -137,9 +137,9 @@ Right now, api_canon is changing a lot. I plan to support the following feature
|
|
137
137
|
4. You will need to route the index action for each documented controller until such point as I provide an alternative means of getting at this documentation.
|
138
138
|
|
139
139
|
## Contributors
|
140
|
-
[Cameron Walsh](http://github.com/cwalsh)
|
141
|
-
[Leon Dewey](http://github.com/leondewey)
|
142
|
-
[Ben Tillman](http://github.com/warp)
|
140
|
+
* [Cameron Walsh](http://github.com/cwalsh)
|
141
|
+
* [Leon Dewey](http://github.com/leondewey)
|
142
|
+
* [Ben Tillman](http://github.com/warp)
|
143
143
|
|
144
144
|
## Contributions
|
145
145
|
1. Fork project
|
@@ -1,8 +1,9 @@
|
|
1
1
|
module ApiCanon
|
2
2
|
class DocumentedParam
|
3
3
|
include ActiveModel::Serialization
|
4
|
-
attr_accessor :name, :values, :type, :default, :description, :example_values, :required, :description, :documented_action
|
4
|
+
attr_accessor :name, :values, :type, :param_type, :default, :description, :example_values, :required, :description, :documented_action
|
5
5
|
attr_writer :multiple
|
6
|
+
delegate :http_method, :to => :documented_action
|
6
7
|
include ActionView::Helpers
|
7
8
|
def values_for_example
|
8
9
|
example_values || values || ""
|
@@ -17,9 +17,7 @@ module ApiCanon
|
|
17
17
|
|
18
18
|
# This is required because we dont know if the params are
|
19
19
|
# path params or query params, this way we dont care.
|
20
|
-
url
|
21
|
-
|
22
|
-
"#{url}.{format}"
|
20
|
+
url.split('?').first
|
23
21
|
end
|
24
22
|
|
25
23
|
def url_params
|
@@ -30,7 +28,7 @@ module ApiCanon
|
|
30
28
|
}
|
31
29
|
|
32
30
|
object.params.keys.each do |name|
|
33
|
-
url_params[name] = "{#{name}}"
|
31
|
+
url_params[name] = "{#{name}}"
|
34
32
|
end
|
35
33
|
|
36
34
|
url_params
|
@@ -84,16 +82,18 @@ module ApiCanon
|
|
84
82
|
self.root = false
|
85
83
|
attributes :param_type => :paramType,
|
86
84
|
:data_type => :dataType,
|
85
|
+
:default => :defaultValue,
|
87
86
|
:allowable_values => :allowableValues,
|
88
87
|
:allow_multiple => :allowMultiple
|
89
88
|
|
90
89
|
attributes :name, :description, :required
|
91
90
|
|
92
91
|
def param_type
|
93
|
-
|
94
|
-
|
92
|
+
if object.param_type.present?
|
93
|
+
object.param_type
|
94
|
+
elsif object.name.to_s == 'id'
|
95
95
|
"path"
|
96
|
-
elsif %(POST PUT).include?(object.
|
96
|
+
elsif %(POST PUT).include?(object.http_method)
|
97
97
|
"form"
|
98
98
|
else
|
99
99
|
"query"
|
data/lib/api_canon/version.rb
CHANGED
@@ -5,7 +5,7 @@ describe ApiCanon::Swagger::ApiDeclaration do
|
|
5
5
|
documented_action = ApiCanon::DocumentedAction.new('action_name', 'controller_name')
|
6
6
|
documented_action.describe 'description'
|
7
7
|
documented_action.response_code '404', 'reason'
|
8
|
-
documented_action.param 'name', :description => 'description', :type => 'string', :values => (1..10)
|
8
|
+
documented_action.param 'name', :description => 'description', :type => 'string', :default => 'test', :values => (1..10)
|
9
9
|
documented_action
|
10
10
|
}
|
11
11
|
let(:data) {
|
@@ -25,7 +25,7 @@ describe ApiCanon::Swagger::ApiDeclaration do
|
|
25
25
|
"swaggerVersion" => 1.1,
|
26
26
|
"apis" => [
|
27
27
|
{
|
28
|
-
"path" => "url_for
|
28
|
+
"path" => "url_for",
|
29
29
|
"description" => 'description',
|
30
30
|
"operations" => [
|
31
31
|
{
|
@@ -36,7 +36,8 @@ describe ApiCanon::Swagger::ApiDeclaration do
|
|
36
36
|
{
|
37
37
|
"paramType" => "query",
|
38
38
|
"dataType" => "string",
|
39
|
-
"
|
39
|
+
"defaultValue" => "test",
|
40
|
+
"allowableValues" => {"max" => 10, "min" => 1, "valueType" => "RANGE"},
|
40
41
|
"allowMultiple" => false,
|
41
42
|
"name" => "name",
|
42
43
|
"description" => 'description',
|
@@ -51,7 +52,7 @@ describe ApiCanon::Swagger::ApiDeclaration do
|
|
51
52
|
}.to_json)
|
52
53
|
end
|
53
54
|
|
54
|
-
describe
|
55
|
+
describe '::Api' do
|
55
56
|
subject { ApiCanon::Swagger::ApiDeclaration::Api.new(documented_action) }
|
56
57
|
|
57
58
|
describe '#url_params' do
|
@@ -60,5 +61,44 @@ describe ApiCanon::Swagger::ApiDeclaration do
|
|
60
61
|
subject.url_params['id'].should eql("{id}")
|
61
62
|
end
|
62
63
|
end
|
64
|
+
|
65
|
+
describe '::Parameter' do
|
66
|
+
subject { ApiCanon::Swagger::ApiDeclaration::Api::Operation::Parameter.new(param) }
|
67
|
+
|
68
|
+
describe '#param_type' do
|
69
|
+
|
70
|
+
describe 'with param_type path' do
|
71
|
+
let(:param) { double :param_type => 'path' }
|
72
|
+
|
73
|
+
it 'should return path' do
|
74
|
+
subject.param_type.should eql('path')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe 'with name id' do
|
79
|
+
let(:param) { double :param_type => nil, :name => 'id' }
|
80
|
+
|
81
|
+
it 'should return path' do
|
82
|
+
subject.param_type.should eql('path')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe 'with POST http_method' do
|
87
|
+
let(:param) { double :param_type => nil, :name => 'name', :http_method => 'POST' }
|
88
|
+
|
89
|
+
it 'should return path' do
|
90
|
+
subject.param_type.should eql('form')
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe 'with GET http_method' do
|
95
|
+
let(:param) { double :param_type => nil, :name => 'name', :http_method => 'GET' }
|
96
|
+
|
97
|
+
it 'should return query' do
|
98
|
+
subject.param_type.should eql('query')
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
63
103
|
end
|
64
104
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: api_canon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cameron Walsh
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|