rack-queries 0.1.2 → 0.1.3
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 +4 -4
- data/CHANGELOG.md +7 -1
- data/Gemfile.lock +1 -1
- data/lib/rack/queries/app.rb +19 -3
- data/lib/rack/queries/static/app.js +1 -1
- data/lib/rack/queries/static/{index.html → index.html.erb} +3 -3
- data/lib/rack/queries/version.rb +1 -1
- data/package.json +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f21bb05b87f39a3ab3253f83e181403b13eeb7f4e94ffb8729dabfceb58a072f
|
4
|
+
data.tar.gz: b8ea60adddcc790b2e9755cd2ded9c870b8521d1df05d162df7b006f8e4815c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b2f9632bf8ba7aa784d8cd3ba798be741f481a598620bbd691e4b79fba74d1b6ac1c2f999c0cb91b1e570fa3cdf258dd4f512f1d87c7432ec41c89380b49938
|
7
|
+
data.tar.gz: 81e453b2a544b17a1ed44623d422480ac4ec89050094463f34901fc48075f43d09ac87e58507cdad792a29f476c3f3750f452ea797ef30f37253ea9958203a66
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [0.1.3] - 2019-03-01
|
10
|
+
### Changed
|
11
|
+
- Move the middlewares before the static handler so that auth middlewares can handle the request before files like the index are returned.
|
12
|
+
- More properly handle nesting the rack application under a script name such that you can visit `/queries` and not just `/queries/`.
|
13
|
+
|
9
14
|
## [0.1.2] - 2019-02-27
|
10
15
|
### Changed
|
11
16
|
- Use relative paths for the static assets so that when the app is mounted it will be prefixed with the mounting path.
|
@@ -18,7 +23,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a
|
|
18
23
|
### Added
|
19
24
|
- Initial release 🎉
|
20
25
|
|
21
|
-
[Unreleased]: https://github.com/CultureHQ/rack-queries/compare/v0.1.
|
26
|
+
[Unreleased]: https://github.com/CultureHQ/rack-queries/compare/v0.1.3...HEAD
|
27
|
+
[0.1.3]: https://github.com/CultureHQ/rack-queries/compare/v0.1.2...v0.1.3
|
22
28
|
[0.1.2]: https://github.com/CultureHQ/rack-queries/compare/v0.1.1...v0.1.2
|
23
29
|
[0.1.1]: https://github.com/CultureHQ/rack-queries/compare/v0.1.0...v0.1.1
|
24
30
|
[0.1.0]: https://github.com/CultureHQ/rack-queries/compare/f4f0b2...v0.1.0
|
data/Gemfile.lock
CHANGED
data/lib/rack/queries/app.rb
CHANGED
@@ -55,8 +55,24 @@ module Rack
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def call(env)
|
58
|
-
|
59
|
-
|
58
|
+
if env[PATH_INFO] == '/'
|
59
|
+
render_index(env)
|
60
|
+
elsif FILES.include?(env[PATH_INFO])
|
61
|
+
server.call(env)
|
62
|
+
else
|
63
|
+
app.call(env)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def render_index(env)
|
70
|
+
content = ::File.read(::File.join(STATIC, 'index.html.erb'))
|
71
|
+
script_name = env[SCRIPT_NAME]
|
72
|
+
|
73
|
+
result = ERB.new(content).result_with_hash(script_name: script_name)
|
74
|
+
|
75
|
+
[200, { 'Content-Type' => 'text/html' }, [result]]
|
60
76
|
end
|
61
77
|
end
|
62
78
|
|
@@ -81,10 +97,10 @@ module Rack
|
|
81
97
|
configurations = middlewares
|
82
98
|
|
83
99
|
Builder.new do
|
84
|
-
use Static
|
85
100
|
configurations.each do |middleware, block|
|
86
101
|
use(*middleware, &block)
|
87
102
|
end
|
103
|
+
use Static
|
88
104
|
run Controller.new
|
89
105
|
end
|
90
106
|
end
|
@@ -28,4 +28,4 @@ object-assign
|
|
28
28
|
* This source code is licensed under the MIT license found in the
|
29
29
|
* LICENSE file in the root directory of this source tree.
|
30
30
|
*/
|
31
|
-
Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,l=3,a=-1,i=-1,o=!1,u=!1;function c(){if(!o){var e=n.expirationTime;u?T():u=!0,w(d,e)}}function s(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var a=l,o=i;l=e,i=t;try{var u=r()}finally{l=a,i=o}if("function"==typeof u)if(u={callback:u,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=u.next=u.previous=u;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=u,c()),(t=r.previous).next=r.previous=u,u.next=r,u.previous=t}}function f(){if(-1===a&&null!==n&&1===n.priorityLevel){o=!0;try{do{s()}while(null!==n&&1===n.priorityLevel)}finally{o=!1,null!==n?c():u=!1}}}function d(e){o=!0;var l=r;r=e;try{if(e)for(;null!==n;){var a=t.unstable_now();if(!(n.expirationTime<=a))break;do{s()}while(null!==n&&n.expirationTime<=a)}else if(null!==n)do{s()}while(null!==n&&!E())}finally{o=!1,r=l,null!==n?c():u=!1,f()}}var p,m,h=Date,y="function"==typeof setTimeout?setTimeout:void 0,v="function"==typeof clearTimeout?clearTimeout:void 0,g="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,b="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function k(e){p=g(function(t){v(m),e(t)}),m=y(function(){b(p),e(t.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var x=performance;t.unstable_now=function(){return x.now()}}else t.unstable_now=function(){return h.now()};var w,T,E,S=null;if("undefined"!=typeof window?S=window:void 0!==e&&(S=e),S&&S._schedMock){var _=S._schedMock;w=_[0],T=_[1],E=_[2],t.unstable_now=_[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var C=null,P=function(e){if(null!==C)try{C(e)}finally{C=null}};w=function(e){null!==C?setTimeout(w,0,e):(C=e,setTimeout(P,0,!1))},T=function(){C=null},E=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof g&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var N=null,O=!1,R=-1,M=!1,I=!1,z=0,U=33,D=33;E=function(){return z<=t.unstable_now()};var F=new MessageChannel,j=F.port2;F.port1.onmessage=function(){O=!1;var e=N,n=R;N=null,R=-1;var r=t.unstable_now(),l=!1;if(0>=z-r){if(!(-1!==n&&n<=r))return M||(M=!0,k(L)),N=e,void(R=n);l=!0}if(null!==e){I=!0;try{e(l)}finally{I=!1}}};var L=function(e){if(null!==N){k(L);var t=e-z+D;t<D&&U<D?(8>t&&(t=8),D=t<U?U:t):U=t,z=e+D,O||(O=!0,j.postMessage(void 0))}else M=!1};w=function(e,t){N=e,R=t,I||0>t?j.postMessage(void 0):M||(M=!0,k(L))},T=function(){N=null,O=!1,R=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=l,i=a;l=e,a=t.unstable_now();try{return n()}finally{l=r,a=i,f()}},t.unstable_next=function(e){switch(l){case 1:case 2:case 3:var n=3;break;default:n=l}var r=l,i=a;l=n,a=t.unstable_now();try{return e()}finally{l=r,a=i,f()}},t.unstable_scheduleCallback=function(e,r){var i=-1!==a?a:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=i+r.timeout;else switch(l){case 1:r=i+-1;break;case 2:r=i+250;break;case 5:r=i+1073741823;break;case 4:r=i+1e4;break;default:r=i+5e3}if(e={callback:e,priorityLevel:l,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,c();else{i=null;var o=n;do{if(o.expirationTime>r){i=o;break}o=o.next}while(o!==n);null===i?i=n:i===n&&(n=e,c()),(r=i.previous).next=i.previous=e,e.next=i,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=l;return function(){var r=l,i=a;l=n,a=t.unstable_now();try{return e.apply(this,arguments)}finally{l=r,a=i,f()}}},t.unstable_getCurrentPriorityLevel=function(){return l},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime<i||E())},t.unstable_continueExecution=function(){null!==n&&c()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return n}}).call(this,n(7))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(0),l=n.n(r),a=n(2),i=function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){4===r.readyState&&(r.status>=200&&r.status<300?t(JSON.parse(r.responseText)):n(new Error(r.responseText)))},r.open("GET",e),r.send()})};function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var u=function(e){var t=!1,n=o(Object(r.useState)({error:null,fetching:!0,json:{}}),2),l=n[0],a=n[1];return Object(r.useEffect)(function(){return a({error:null,fetching:!0,json:{}}),i(e).then(function(e){t||a({fetching:!1,json:e})}).catch(function(e){t||a({fetching:!1,error:e})}),function(){t=!0}},[e]),l},c=function(e){var t=e.query,n=e.opt,a=e.value,i=e.onValueChange,o=u("queries/".concat(t.name,"/opts/").concat(n)),c=o.error,s=o.fetching,f=o.json,d=Object(r.useCallback)(function(e){return i(n,e.target.value)},[i,n]);if(c)return"error";if(s)return"fetching";a||i(n,f.values[0]);var p="".concat(t.name,"-").concat(n);return l.a.createElement("label",{className:"opt",htmlFor:p},"".concat(n,": "),l.a.createElement("select",{id:p,name:p,onChange:d},f.values.map(function(e){return l.a.createElement("option",{key:e,value:e},e)})))},s=function(e){var t=e.query,n=e.values,r=e.onValueChange;return l.a.createElement(l.a.Fragment,null,t.opts.map(function(e){return l.a.createElement(c,{key:e,query:t,opt:e,value:n[e],onValueChange:r})}))};function f(e){return function(e){if(Array.isArray(e))return e}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var d=function(e){var t=e.error,n=e.fetching,r=e.results;if(!t&&!n&&null===r)return null;if(t)return"error";if(n)return"fetching";if(!Array.isArray(r))return"Result: ".concat(r);var a=f(r),i=a[0],o=a.slice(1);return l.a.createElement(l.a.Fragment,null,"Results:",l.a.createElement("table",null,l.a.createElement("thead",null,l.a.createElement("tr",null,i.map(function(e,t){return l.a.createElement("th",{key:t},e)}))),l.a.createElement("tbody",null,o.map(function(e,t){return l.a.createElement("tr",{key:t},e.map(function(e,t){return l.a.createElement("td",{key:t},e)}))}))))};function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){m(e,t,n[t])})}return e}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var y=function(e){var t=e.query,n=Object(r.useRef)(null),a=h(Object(r.useState)(t.opts.reduce(function(e,t){return p({},e,m({},t,null))},{})),2),o=a[0],u=a[1],c=h(Object(r.useState)({error:null,fetching:!1,results:null}),2),f=c[0],y=c[1],v=Object(r.useCallback)(function(e,t){u(function(n){return p({},n,m({},e,t))}),y({error:null,fetching:!1,results:null})},[u,y]),g=Object(r.useCallback)(function(){y({error:null,fetching:!0,results:null}),i(function(e,t){var n="queries/".concat(e.name);if(0===Object.keys(t).length)return n;var r=Object.keys(t).map(function(e){return"".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t[e]))});return"".concat(n,"?").concat(r.join("&"))}(t,o)).then(function(e){var t=e.results;n.current&&y({fetching:!1,results:t})}).catch(function(e){n.current&&y({fetching:!1,error:e})})},[n,t,o,y]);return l.a.createElement("div",{ref:n},l.a.createElement(s,{query:t,values:o,onValueChange:v}),l.a.createElement("button",{className:"run",type:"button",disabled:Object.keys(o).some(function(e){return!o[e]}),onClick:g},"Run"),l.a.createElement("div",{className:"results"},l.a.createElement(d,f)))};function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var g=function(e){var t=e.active,n=e.query,a=e.onQueryClick,i=Object(r.useCallback)(function(){return a(n)},[n,a]),o=t?"query query-active":"query";return l.a.createElement("button",{className:o,type:"button",onClick:i},n.name)},b=function(){var e=u("queries"),t=e.error,n=e.fetching,a=e.json,i=v(Object(r.useState)(null),2),o=i[0],c=i[1];return t?"error":n?"fetching":l.a.createElement("main",null,l.a.createElement("div",{className:"active"},o&&l.a.createElement(y,{key:o.name,query:o})),l.a.createElement("nav",null,a.queries.map(function(e){return l.a.createElement(g,{key:e.name,active:e===o,query:e,onQueryClick:c})})))};n.n(a).a.render(l.a.createElement(function(){return l.a.createElement(r.StrictMode,null,l.a.createElement("h1",null,"Rack::Queries"),l.a.createElement(b,null))},null),document.getElementById("main"))}]);
|
31
|
+
Object.defineProperty(t,"__esModule",{value:!0});var n=null,r=!1,l=3,a=-1,i=-1,o=!1,u=!1;function c(){if(!o){var e=n.expirationTime;u?T():u=!0,w(d,e)}}function s(){var e=n,t=n.next;if(n===t)n=null;else{var r=n.previous;n=r.next=t,t.previous=r}e.next=e.previous=null,r=e.callback,t=e.expirationTime,e=e.priorityLevel;var a=l,o=i;l=e,i=t;try{var u=r()}finally{l=a,i=o}if("function"==typeof u)if(u={callback:u,priorityLevel:e,expirationTime:t,next:null,previous:null},null===n)n=u.next=u.previous=u;else{r=null,e=n;do{if(e.expirationTime>=t){r=e;break}e=e.next}while(e!==n);null===r?r=n:r===n&&(n=u,c()),(t=r.previous).next=r.previous=u,u.next=r,u.previous=t}}function f(){if(-1===a&&null!==n&&1===n.priorityLevel){o=!0;try{do{s()}while(null!==n&&1===n.priorityLevel)}finally{o=!1,null!==n?c():u=!1}}}function d(e){o=!0;var l=r;r=e;try{if(e)for(;null!==n;){var a=t.unstable_now();if(!(n.expirationTime<=a))break;do{s()}while(null!==n&&n.expirationTime<=a)}else if(null!==n)do{s()}while(null!==n&&!E())}finally{o=!1,r=l,null!==n?c():u=!1,f()}}var p,m,h=Date,y="function"==typeof setTimeout?setTimeout:void 0,v="function"==typeof clearTimeout?clearTimeout:void 0,g="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,b="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;function k(e){p=g(function(t){v(m),e(t)}),m=y(function(){b(p),e(t.unstable_now())},100)}if("object"==typeof performance&&"function"==typeof performance.now){var x=performance;t.unstable_now=function(){return x.now()}}else t.unstable_now=function(){return h.now()};var w,T,E,S=null;if("undefined"!=typeof window?S=window:void 0!==e&&(S=e),S&&S._schedMock){var _=S._schedMock;w=_[0],T=_[1],E=_[2],t.unstable_now=_[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var C=null,P=function(e){if(null!==C)try{C(e)}finally{C=null}};w=function(e){null!==C?setTimeout(w,0,e):(C=e,setTimeout(P,0,!1))},T=function(){C=null},E=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof g&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof b&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var N=null,O=!1,R=-1,M=!1,I=!1,z=0,U=33,D=33;E=function(){return z<=t.unstable_now()};var F=new MessageChannel,j=F.port2;F.port1.onmessage=function(){O=!1;var e=N,n=R;N=null,R=-1;var r=t.unstable_now(),l=!1;if(0>=z-r){if(!(-1!==n&&n<=r))return M||(M=!0,k(L)),N=e,void(R=n);l=!0}if(null!==e){I=!0;try{e(l)}finally{I=!1}}};var L=function(e){if(null!==N){k(L);var t=e-z+D;t<D&&U<D?(8>t&&(t=8),D=t<U?U:t):U=t,z=e+D,O||(O=!0,j.postMessage(void 0))}else M=!1};w=function(e,t){N=e,R=t,I||0>t?j.postMessage(void 0):M||(M=!0,k(L))},T=function(){N=null,O=!1,R=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=l,i=a;l=e,a=t.unstable_now();try{return n()}finally{l=r,a=i,f()}},t.unstable_next=function(e){switch(l){case 1:case 2:case 3:var n=3;break;default:n=l}var r=l,i=a;l=n,a=t.unstable_now();try{return e()}finally{l=r,a=i,f()}},t.unstable_scheduleCallback=function(e,r){var i=-1!==a?a:t.unstable_now();if("object"==typeof r&&null!==r&&"number"==typeof r.timeout)r=i+r.timeout;else switch(l){case 1:r=i+-1;break;case 2:r=i+250;break;case 5:r=i+1073741823;break;case 4:r=i+1e4;break;default:r=i+5e3}if(e={callback:e,priorityLevel:l,expirationTime:r,next:null,previous:null},null===n)n=e.next=e.previous=e,c();else{i=null;var o=n;do{if(o.expirationTime>r){i=o;break}o=o.next}while(o!==n);null===i?i=n:i===n&&(n=e,c()),(r=i.previous).next=i.previous=e,e.next=i,e.previous=r}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)n=null;else{e===n&&(n=t);var r=e.previous;r.next=t,t.previous=r}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=l;return function(){var r=l,i=a;l=n,a=t.unstable_now();try{return e.apply(this,arguments)}finally{l=r,a=i,f()}}},t.unstable_getCurrentPriorityLevel=function(){return l},t.unstable_shouldYield=function(){return!r&&(null!==n&&n.expirationTime<i||E())},t.unstable_continueExecution=function(){null!==n&&c()},t.unstable_pauseExecution=function(){},t.unstable_getFirstCallbackNode=function(){return n}}).call(this,n(7))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t);var r=n(0),l=n.n(r),a=n(2),i=function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){4===r.readyState&&(r.status>=200&&r.status<300?t(JSON.parse(r.responseText)):n(new Error(r.responseText)))},r.open("GET","".concat(document.body.dataset.scriptName,"/").concat(e)),r.send()})};function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var u=function(e){var t=!1,n=o(Object(r.useState)({error:null,fetching:!0,json:{}}),2),l=n[0],a=n[1];return Object(r.useEffect)(function(){return a({error:null,fetching:!0,json:{}}),i(e).then(function(e){t||a({fetching:!1,json:e})}).catch(function(e){t||a({fetching:!1,error:e})}),function(){t=!0}},[e]),l},c=function(e){var t=e.query,n=e.opt,a=e.value,i=e.onValueChange,o=u("queries/".concat(t.name,"/opts/").concat(n)),c=o.error,s=o.fetching,f=o.json,d=Object(r.useCallback)(function(e){return i(n,e.target.value)},[i,n]);if(c)return"error";if(s)return"fetching";a||i(n,f.values[0]);var p="".concat(t.name,"-").concat(n);return l.a.createElement("label",{className:"opt",htmlFor:p},"".concat(n,": "),l.a.createElement("select",{id:p,name:p,onChange:d},f.values.map(function(e){return l.a.createElement("option",{key:e,value:e},e)})))},s=function(e){var t=e.query,n=e.values,r=e.onValueChange;return l.a.createElement(l.a.Fragment,null,t.opts.map(function(e){return l.a.createElement(c,{key:e,query:t,opt:e,value:n[e],onValueChange:r})}))};function f(e){return function(e){if(Array.isArray(e))return e}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var d=function(e){var t=e.error,n=e.fetching,r=e.results;if(!t&&!n&&null===r)return null;if(t)return"error";if(n)return"fetching";if(!Array.isArray(r))return"Result: ".concat(r);var a=f(r),i=a[0],o=a.slice(1);return l.a.createElement(l.a.Fragment,null,"Results:",l.a.createElement("table",null,l.a.createElement("thead",null,l.a.createElement("tr",null,i.map(function(e,t){return l.a.createElement("th",{key:t},e)}))),l.a.createElement("tbody",null,o.map(function(e,t){return l.a.createElement("tr",{key:t},e.map(function(e,t){return l.a.createElement("td",{key:t},e)}))}))))};function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){m(e,t,n[t])})}return e}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var y=function(e){var t=e.query,n=Object(r.useRef)(null),a=h(Object(r.useState)(t.opts.reduce(function(e,t){return p({},e,m({},t,null))},{})),2),o=a[0],u=a[1],c=h(Object(r.useState)({error:null,fetching:!1,results:null}),2),f=c[0],y=c[1],v=Object(r.useCallback)(function(e,t){u(function(n){return p({},n,m({},e,t))}),y({error:null,fetching:!1,results:null})},[u,y]),g=Object(r.useCallback)(function(){y({error:null,fetching:!0,results:null}),i(function(e,t){var n="queries/".concat(e.name);if(0===Object.keys(t).length)return n;var r=Object.keys(t).map(function(e){return"".concat(encodeURIComponent(e),"=").concat(encodeURIComponent(t[e]))});return"".concat(n,"?").concat(r.join("&"))}(t,o)).then(function(e){var t=e.results;n.current&&y({fetching:!1,results:t})}).catch(function(e){n.current&&y({fetching:!1,error:e})})},[n,t,o,y]);return l.a.createElement("div",{ref:n},l.a.createElement(s,{query:t,values:o,onValueChange:v}),l.a.createElement("button",{className:"run",type:"button",disabled:Object.keys(o).some(function(e){return!o[e]}),onClick:g},"Run"),l.a.createElement("div",{className:"results"},l.a.createElement(d,f)))};function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,l=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){l=!0,a=e}finally{try{r||null==o.return||o.return()}finally{if(l)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var g=function(e){var t=e.active,n=e.query,a=e.onQueryClick,i=Object(r.useCallback)(function(){return a(n)},[n,a]),o=t?"query query-active":"query";return l.a.createElement("button",{className:o,type:"button",onClick:i},n.name)},b=function(){var e=u("queries"),t=e.error,n=e.fetching,a=e.json,i=v(Object(r.useState)(null),2),o=i[0],c=i[1];return t?"error":n?"fetching":l.a.createElement("main",null,l.a.createElement("div",{className:"active"},o&&l.a.createElement(y,{key:o.name,query:o})),l.a.createElement("nav",null,a.queries.map(function(e){return l.a.createElement(g,{key:e.name,active:e===o,query:e,onQueryClick:c})})))};n.n(a).a.render(l.a.createElement(function(){return l.a.createElement(r.StrictMode,null,l.a.createElement("h1",null,"Rack::Queries"),l.a.createElement(b,null))},null),document.getElementById("main"))}]);
|
@@ -5,11 +5,11 @@
|
|
5
5
|
<meta name="viewport" content="initial-scale=1, maximum-scale=5">
|
6
6
|
<title>Rack::Queries</title>
|
7
7
|
<link rel="shortcut icon" href="favicon.ico">
|
8
|
-
<link rel="stylesheet" type="text/css" href="
|
8
|
+
<link rel="stylesheet" type="text/css" href="<%= script_name %>/app.css" />
|
9
9
|
</head>
|
10
|
-
<body>
|
10
|
+
<body data-script-name="<%= script_name %>">
|
11
11
|
<noscript>JavaScript must be enabled in order to run this application.</noscript>
|
12
12
|
<div id="main"></div>
|
13
|
-
<script src="
|
13
|
+
<script src="<%= script_name %>/app.js"></script>
|
14
14
|
</body>
|
15
15
|
</html>
|
data/lib/rack/queries/version.rb
CHANGED
data/package.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-queries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Deisz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -151,7 +151,7 @@ files:
|
|
151
151
|
- lib/rack/queries/static/app.css
|
152
152
|
- lib/rack/queries/static/app.js
|
153
153
|
- lib/rack/queries/static/favicon.ico
|
154
|
-
- lib/rack/queries/static/index.html
|
154
|
+
- lib/rack/queries/static/index.html.erb
|
155
155
|
- lib/rack/queries/version.rb
|
156
156
|
- package.json
|
157
157
|
- rack-queries.gemspec
|