Class: JSRailsRoutes::Language::JavaScript
- Defined in:
- lib/js_rails_routes/language/javascript.rb
Direct Known Subclasses
Constant Summary collapse
- PROCESS_FUNC =
<<~JAVASCRIPT function process(route, params, keys) { var query = []; for (var param in params) if (Object.prototype.hasOwnProperty.call(params, param)) { if (keys.indexOf(param) === -1) { if (Array.isArray(params[param])) { for (var value of params[param]) { query.push(param + "[]=" + encodeURIComponent(value)); } } else { query.push(param + "=" + encodeURIComponent(params[param])); } } } return query.length ? route + "?" + query.join("&") : route; } JAVASCRIPT
Instance Method Summary collapse
Instance Method Details
#ext ⇒ Object
Note:
Implementation for Base#ext
44 45 46 |
# File 'lib/js_rails_routes/language/javascript.rb', line 44 def ext 'js' end |
#handle_route(route) ⇒ String
37 38 39 40 41 |
# File 'lib/js_rails_routes/language/javascript.rb', line 37 def handle_route(route) path, keys = parse(route.path) name = function_name(route.name) "export function #{name}(params) { return process('#{path}', params, [#{keys.join(',')}]); }" end |
#handle_route_set(routes) ⇒ Object
Note:
Implementation for Base#generate
28 29 30 31 32 33 |
# File 'lib/js_rails_routes/language/javascript.rb', line 28 def handle_route_set(routes) set = routes.each_with_object([self.class::PROCESS_FUNC]) do |route, lines| lines.push(handle_route(route)) end.join("\n") "#{set}\n" end |