Data mapping and persistence toolkit for Ruby
This is a major release but it's backward compatible. Please see the upgrade guide as there are a couple of extra steps required for the upgrade.
ROM(:sql, "sqlite::memory")
(@solnic)config.component.abstract
in which case they won't be initialized for runtime usage (via #651) (@solnic)Relation.view
DSL are now registered too, which makes them more accessible/reusable (via #653) (@solnic)associations
DSL (via #656) (@solnic)component.infer_id_from_class
(via #661) (@solnic)ROM.components
API for registering custom component types (via #654) (@solnic)Repository#transaction
accepts gateway to use. Repository::Root#transaction
uses a gateway of the root relation by default (#620 closed by #621) (@flash-gordon)require "rom/compat"
(via #634 refs #607) (@solnic)rom-core
, rom-changeset
and rom-repository
have been merged into rom
gem (@solnic)Setup#auto_registration
was renamed to Setup#auto_register
. You can restore the original method via rom/compat extension (via #634 refs #607) (@solnic)Configuration#method_missing
no longer resolves gateways by default. This functionality was moved to rom/compat (@solnic)ROM::Configuration
is deprecated and it was replaced by ROM::Setup
. It can be restored via rom/compat (via #653) (@solnic)ROM.container
is deprecated and it was replaced by ROM.runtime
(via #653) (@solnic)Schema#[]
and Relation#[]
now raise an error if a given attribute is not unique (issue #529 fixed via #543) (@waiting-for-dev)Relation.dataset
receives canonical schema object now, rather than relation class (via #644) (@solnic)config.auto_register
(via #650) (@solnic)Schema::DSL
is now deprecated. Adapters that need customized schema DSL behavior can provide plugins instead (via #656) (@solnic)ROM.plugins
returns global plugin registry when called without a block (via #660) (@solnic)ROM::Container
is deprecated and it was replaced by ROM::Registries::Root
. It can be restored via rom/compat (via #653) (@solnic)ROM.plugin_registry
is deprecated, use ROM.plugins
instead (via #660) (@solnic)Undefined
rather than :default
so that we can detect when it was not specified and act accordingly. This will only make sense when there's just one adapter available (via bedb330f0ec195d9acacf4481dad3a705e8a36af) (@solnic)rom-core
was bumped to >= 5.1.2
(@solnic):statuses
and :aliases
relation names (@solnic)rom-core
was bumped to >= 5.1.2
(@solnic)rom-core
was bumped to >= 5.1.2
(@solnic)rom-core
was bumped to >= 5.1.1
(@solnic)rom
gem (issue #560) (@solnic)rom-core
was bumped to >= 5.1.1
(@solnic)rom-core
was bumped to >= 5.1.1
(@solnic)