api_canon 0.4.4 → 0.4.5
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.
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
|