Knock
zeitwerk
Knock | zeitwerk | |
---|---|---|
3 | 9 | |
2,089 | 1,914 | |
- | - | |
1.4 | 7.4 | |
about 3 years ago | 20 days ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Knock
- what's your hidden gem package?
-
What resources do you recommend to learn about Rails APIs?
Authentication - https://github.com/nsarno/knock
-
Ruby on Rails + Auth0: Authenticating your API with an external authentication service
In 2019 I wrote a post with this same subject and an extra tool: Knock.
zeitwerk
-
Enhancing development with REPLs - A practical guide
To setup it's pretty simple, you just need to create a file inside bin/console and require all the files you want to use on a REPL, most of the times we use gems like zeitwerk to provide the auto requiring, but if you want to do it manually, refer to the example below:
-
Performance e elegância! Escrevendo uma CLI CRUD utilizando ScyllaDB e Ruby
zeitwerk
-
How to Load Code in Ruby
Zeitwerk takes a directory and makes every file underneath it available to load. The convention is that every new sub-directory is a new module, and every file defines a class with the same name as the file.
-
To Ruby from Python
There is a gem that does that used by Rails and multiple other gems:
https://github.com/fxn/zeitwerk
It is pretty easy to set it up in any Ruby project.
-
PHP – The Right Way
I actually prefer auto-loading, which lets you iterate through a package manager much easier/faster - PHP iterated through PSR-0[0] before landing on PSR-4[1], and you can always build your own (which is what most frameworks pre-composer were doing).
With Rails 7 and Zeitwerk, the Ruby community has landed on a very similar auto-loading system as PHP now[2] with constants translating to paths by convention.
[0]: https://github.com/php-fig/fig-standards/blob/master/accepte...
[1]: https://www.php-fig.org/psr/psr-4/
[2]: https://github.com/fxn/zeitwerk#the-idea-file-paths-match-co...
-
One Class/Module per File Rules - Working With Nested Modules
If you're working on non-Rails apps and need to deal with loading code, zeitwerk can be used anywhere, unlike the old Rails autoloader. It's also really easy to set up.
-
Move models, views and controllers to non-standard folders
https://github.com/fxn/zeitwerk#collapsing-directories
-
Code Loaders in Ruby: Understanding Zeitwerk
Zeitwerk
-
Ruby on Rails + Auth0: Authenticating your API with an external authentication service
With a few modifications in the gem source code, we could easily integrate Auth0 into our Rails API, but that on Rails 5. Rails 6 brought Zeitwerk code loader together, which makes it harder to perform the alterations suggested in my previous post.
What are some alternatives?
Devise - Flexible authentication solution for Rails with Warden.
jets - Ruby on Jets [Moved to: https://github.com/rubyonjets/jets]
JWT - A ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
Doorkeeper - Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.
Karafka - Ruby and Rails efficient multithreaded Kafka processing framework
OmniAuth - OmniAuth is a flexible authentication system utilizing Rack middleware.
unholy - a ruby-to-pyc compiler
Devise Token Auth - Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.
dry-system - Application framework with state management and built-in dependency injection support
Sorcery - Magical Authentication
unholy - a ruby-to-pyc compiler - _why mirror