rails_api_explorer 0.0.4.pre.1 → 0.0.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.
- data/README.md +0 -15
- data/app/assets/javascripts/api_explorer.js +1 -0
- data/app/views/layouts/api_explorer.html.erb +5 -1
- data/lib/api_explorer/version.rb +1 -1
- metadata +4 -7
- data/app/assets/javascripts/api_explorer/explorer.js +0 -89
- data/app/assets/javascripts/api_explorer/scroll.js +0 -39
- data/app/assets/stylesheets/api_explorer.css +0 -15
data/README.md
CHANGED
@@ -19,17 +19,6 @@ And then execute:
|
|
19
19
|
|
20
20
|
## Usage
|
21
21
|
|
22
|
-
### Assets
|
23
|
-
Include the JavaScript in your `application.js`, make sure to require it *after* jQuery:
|
24
|
-
|
25
|
-
//= require jquery
|
26
|
-
//= require api_explorer
|
27
|
-
|
28
|
-
Include the CSS in `application.css`:
|
29
|
-
|
30
|
-
*= require api_explorer
|
31
|
-
|
32
|
-
|
33
22
|
### Describe your API
|
34
23
|
Describe your API in `config/initializers/api_explorer.rb`:
|
35
24
|
|
@@ -95,10 +84,6 @@ ApiExplorer.auth = lambda do
|
|
95
84
|
end
|
96
85
|
```
|
97
86
|
|
98
|
-
## Notes
|
99
|
-
The explorer is rendered within your application layout and uses bootstrap 3 classes, so it's prettier if you have that included.
|
100
|
-
Bootstrap is optional, but it requires jQuery.
|
101
|
-
|
102
87
|
## Contributing
|
103
88
|
|
104
89
|
1. Fork it
|
data/lib/api_explorer/version.rb
CHANGED
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_api_explorer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Max Hollmann
|
@@ -151,9 +151,6 @@ files:
|
|
151
151
|
- app/helpers/api_explorer/application_helper.rb
|
152
152
|
- app/helpers/api_explorer/explorer_helper.rb
|
153
153
|
- app/assets/stylesheets/api_explorer/explorer.css
|
154
|
-
- app/assets/stylesheets/api_explorer.css
|
155
|
-
- app/assets/javascripts/api_explorer/explorer.js
|
156
|
-
- app/assets/javascripts/api_explorer/scroll.js
|
157
154
|
- app/assets/javascripts/api_explorer/serialize_object.js
|
158
155
|
- app/assets/javascripts/api_explorer.js
|
159
156
|
- app/views/api_explorer/explorer/_node.html.erb
|
@@ -204,9 +201,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
204
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
202
|
none: false
|
206
203
|
requirements:
|
207
|
-
- - ! '
|
204
|
+
- - ! '>='
|
208
205
|
- !ruby/object:Gem::Version
|
209
|
-
version:
|
206
|
+
version: '0'
|
210
207
|
requirements: []
|
211
208
|
rubyforge_project:
|
212
209
|
rubygems_version: 1.8.23
|
@@ -1,89 +0,0 @@
|
|
1
|
-
// Generated by CoffeeScript 1.4.0
|
2
|
-
(function() {
|
3
|
-
|
4
|
-
$(function() {
|
5
|
-
var setValuesFromRequest, updateShareds;
|
6
|
-
$(".hidden").hide().removeClass("hidden");
|
7
|
-
window.responses = {};
|
8
|
-
$(".shared-input.header").change(function() {
|
9
|
-
return updateShareds();
|
10
|
-
});
|
11
|
-
updateShareds = function() {
|
12
|
-
return $(".shared-input.header").each(function() {
|
13
|
-
var name;
|
14
|
-
name = $(this).attr("data-name");
|
15
|
-
return $(".shared.header[data-name=" + name + "]").val($(this).val());
|
16
|
-
});
|
17
|
-
};
|
18
|
-
setValuesFromRequest = function(request) {
|
19
|
-
$("[data-source-request='" + request + "']").each(function(input) {
|
20
|
-
var v;
|
21
|
-
v = eval("responses['" + request + "']" + $(this).attr("data-source-accessor"));
|
22
|
-
return $(this).val(v);
|
23
|
-
});
|
24
|
-
return updateShareds();
|
25
|
-
};
|
26
|
-
$(".param input").prop("disabled", false);
|
27
|
-
$(".send-toggle").click(function(event) {
|
28
|
-
var param, send, setState;
|
29
|
-
event.preventDefault();
|
30
|
-
setState = function(elements, state) {
|
31
|
-
return elements.each(function(i, el) {
|
32
|
-
$(el).attr("data-send", state ? "true" : "false");
|
33
|
-
$(el).find("input").first().prop("disabled", !state);
|
34
|
-
$(el).find(".send-toggle").first().text(state ? "don't send" : "send");
|
35
|
-
return $(el).find(".name").first().toggleClass("strikethrough", !state);
|
36
|
-
});
|
37
|
-
};
|
38
|
-
param = $(this).closest(".param");
|
39
|
-
send = param.attr("data-send") !== "true";
|
40
|
-
setState(param.add(param.find(".param")), send);
|
41
|
-
if (send) {
|
42
|
-
return setState(param.parents(".param"), true);
|
43
|
-
}
|
44
|
-
});
|
45
|
-
return $("form").submit(function(event) {
|
46
|
-
var form, path, req;
|
47
|
-
event.preventDefault();
|
48
|
-
form = $(this);
|
49
|
-
req = form.serializeObject().request;
|
50
|
-
form.closest(".request").find(".status").html("Requesting...");
|
51
|
-
path = req.path;
|
52
|
-
if (req.url_params) {
|
53
|
-
$.each(req.url_params, function(p, v) {
|
54
|
-
return path = path.replace(":" + p, v);
|
55
|
-
});
|
56
|
-
}
|
57
|
-
return $.ajax({
|
58
|
-
url: path,
|
59
|
-
type: req.method,
|
60
|
-
headers: req.headers,
|
61
|
-
data: req.params,
|
62
|
-
dataType: 'json'
|
63
|
-
}).always(function(data, status, error) {
|
64
|
-
var code, key;
|
65
|
-
if (status === 'success') {
|
66
|
-
code = 200;
|
67
|
-
key = req.method.toUpperCase() + ":" + req.path.replace(api_explorer_base_url, "");
|
68
|
-
window.responses[key] = data;
|
69
|
-
setValuesFromRequest(key);
|
70
|
-
} else {
|
71
|
-
code = data.status;
|
72
|
-
try {
|
73
|
-
data = $.parseJSON(data.responseText);
|
74
|
-
} catch (SyntaxError) {
|
75
|
-
|
76
|
-
}
|
77
|
-
}
|
78
|
-
if (code === 0) {
|
79
|
-
form.closest(".request").find(".status").text("Can't reach server");
|
80
|
-
return form.closest(".request").find(".response").hide();
|
81
|
-
} else {
|
82
|
-
form.closest(".request").find(".status").text(code);
|
83
|
-
return form.closest(".request").find(".response").text(JSON.stringify(data, null, 4)).show();
|
84
|
-
}
|
85
|
-
});
|
86
|
-
});
|
87
|
-
});
|
88
|
-
|
89
|
-
}).call(this);
|
@@ -1,39 +0,0 @@
|
|
1
|
-
$(function() {
|
2
|
-
/**
|
3
|
-
* Check a href for an anchor. If exists, and in document, scroll to it.
|
4
|
-
* If href argument ommited, assumes context (this) is HTML Element,
|
5
|
-
* which will be the case when invoked by jQuery after an event
|
6
|
-
*/
|
7
|
-
function scroll_if_anchor(href) {
|
8
|
-
href = typeof(href) == "string" ? href : $(this).attr("href");
|
9
|
-
if (typeof(href) == 'undefined') return
|
10
|
-
|
11
|
-
var fromTop = 0;
|
12
|
-
|
13
|
-
if ($(".navbar-fixed-top").length > 0) {
|
14
|
-
fromTop = $(".navbar-fixed-top").height();
|
15
|
-
}
|
16
|
-
|
17
|
-
// If our Href points to a valid, non-empty anchor, and is on the same page (e.g. #foo)
|
18
|
-
// Legacy jQuery and IE7 may have issues: http://stackoverflow.com/q/1593174
|
19
|
-
if(href.indexOf("#") == 0) {
|
20
|
-
var $target = $(href);
|
21
|
-
|
22
|
-
// Older browser without pushState might flicker here, as they momentarily
|
23
|
-
// jump to the wrong position (IE < 10)
|
24
|
-
if($target.length) {
|
25
|
-
$('html, body').animate({ scrollTop: $target.offset().top - fromTop });
|
26
|
-
if(history && "pushState" in history) {
|
27
|
-
history.pushState({}, document.title, window.location.pathname + href);
|
28
|
-
return false;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
// When our page loads, check to see if it contains and anchor
|
35
|
-
scroll_if_anchor(window.location.hash);
|
36
|
-
|
37
|
-
// Intercept all anchor clicks
|
38
|
-
$("body").on("click", "a", scroll_if_anchor);
|
39
|
-
});
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any styles
|
10
|
-
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
|
11
|
-
* file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree ./api_explorer
|
14
|
-
*= require_self
|
15
|
-
*/
|