zeitwerk
dry-system
zeitwerk | dry-system | |
---|---|---|
9 | 1 | |
1,914 | 358 | |
- | 0.3% | |
7.4 | 6.2 | |
17 days ago | 4 months 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.
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.
dry-system
What are some alternatives?
jets - Ruby on Jets [Moved to: https://github.com/rubyonjets/jets]
Cassandra Driver - [MAINTENANCE ONLY] DataStax Ruby Driver for Apache Cassandra
JWT - A ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
dry-auto_inject - Container-agnostic constructor injection mixin
Karafka - Ruby and Rails efficient multithreaded Kafka processing framework
dry-cli - General purpose Command Line Interface (CLI) framework for Ruby
unholy - a ruby-to-pyc compiler
dotenv - A Ruby gem to load environment variables from `.env`.
unholy - a ruby-to-pyc compiler - _why mirror
dry-validation - Validation library with type-safe schemas and rules
knock - Knock Subdomain Scan
Laravel - Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.