Comments (4)
Hey @rhymes, I'm afraid it's a very difficult (or impossible!) task. In Rails, the routes are compiled and can be observed later. What you get in that list is something like the following:
users GET /users(.:format) users#index
POST /users(.:format) users#create
In that list, you only see the REQUEST_METHOD
and the path matcher. In Cuba, you can match against anything, and you can nest the routes in different ways. Because of that, building a list of routes is as difficult as building a list of possible matches for an arbitrary regular expression. As that list is infinite, there's no simple way to create a user friendly representation. I won't close the issue right away so that others can participate and share their point of view.
from cuba.
@soveran I understand. Thanks for the explanation.
Do you think that keeping a compiled list of the matchers benefits speed in Cuba's case? Maybe we can just print those.
from cuba.
This is perhaps kind of a "caveman approach", but perhaps is transformable into a good idea?
We ussually have our cuba apps under /apps
dir. Using grep like:
grep -rn "on\ .*do " apps/*
we get:
#...
apps/app.rb:10: on put, ':id/edit' do |id|
apps/app.rb:14: on ':id/configuration' do |id|
apps/app.rb:24: on put, param(:data) do |data|
apps/app.rb:44: on post, param(:data) do |data|
apps/app.rb:50: on put, ':id/recover' do |id|
#...
Not as fancy as rake routes
, but definetely faster :P
from cuba.
I'm closing this issue, but I recommend reading this thread: soveran/syro#18
from cuba.
Related Issues (20)
- rack 3.0 support HOT 5
- Missing rack session in v4 HOT 2
- Support passing keyword arguments to middlewares HOT 3
- How about defining secure headers in lower case to match the HTTP/2 specification? HOT 3
- is there any api for logger HOT 1
- 404 default Content-Type not set HOT 5
- Strict-Transport-Security header in Cuba::Safe::SecureHeaders is dangerously strict! HOT 8
- Allow Param defaults to be an empty string? HOT 2
- Not all HTTP methods are supported HOT 2
- [Suggestion] Adds support for beerpay.io HOT 1
- Having issues with cuba safe HOT 9
- Rack 2.0 support? HOT 1
- Reference in Readme to Cuba::TextHelpers HOT 4
- Serving static files using Rack::Static not working HOT 3
- Allow multi mount routes on define HOT 2
- Improve performance by caching regexes? HOT 3
- Optional query parameters HOT 6
- Custom res.staus stops rendering on chrome. HOT 5
- undefined method `DelegateClass' for Rack::Session::Cookie:Class (NoMethodError) HOT 3
- wrong number of arguments (given 0, expected 1..2) when upload file HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cuba.