rom-rb / rom

Data mapping and persistence toolkit for Ruby
https://rom-rb.org
MIT License
2.07k stars 161 forks source link

Refactor and simplify plugin API #648

Closed solnic closed 3 years ago

solnic commented 3 years ago

Specs run ~4 seconds faster on my machine with this so I suspect it's going to have an impact in applications too.

You can now easily inspect what plugins have been loaded:

> ROM.plugin_registry.keys
["schema.timestamps", "relation.registry_reader", "relation.instrumentation", "command.schema", "command.timestamps", "sql.relation.instrumentation", "sql.relation.auto_restrictions", "sql.relation.nullify", "sql.relation.pagination", "sql.command.associates", "sql.relation.pg_explain", "sql.relation.pg_full_text_search"]

> ROM.plugin_registry["sql.relation.pagination"]
#<ROM::Plugin:0x00007f66761f8798 @name=:pagination, @mod=ROM::SQL::Plugin::Pagination, @type=:relation, @adapter=:sql>