Class: ROM::Changeset Abstract
- Inherits:
-
Object
- Object
- ROM::Changeset
- Extended by:
- Dry::Core::Cache, Dry::Core::ClassAttributes, Initializer
- Defined in:
- lib/rom/changeset.rb,
lib/rom/changeset/pipe.rb,
lib/rom/changeset/create.rb,
lib/rom/changeset/delete.rb,
lib/rom/changeset/update.rb,
lib/rom/changeset/stateful.rb,
lib/rom/changeset/associated.rb,
lib/rom/changeset/pipe_registry.rb,
lib/rom/changeset/extensions/relation.rb
Overview
Abstract Changeset class
If you inherit from this class you need to configure additional settings
Defined Under Namespace
Modules: Extensions, PipeRegistry Classes: Associated, Create, Delete, Pipe, Stateful, Update
Instance Attribute Summary collapse
-
#command_options ⇒ Hash
readonly
Configured options for the command.
-
#command_plugins ⇒ Hash
readonly
Configured plugin options for the command.
-
#command_type ⇒ Symbol
readonly
A custom command identifier.
-
#relation ⇒ Relation
readonly
The changeset relation.
Class Method Summary collapse
-
.[](relation_name) ⇒ Object
Create a changeset class preconfigured for a specific relation.
-
.command_options ⇒ Object
Get or set command options.
-
.command_plugins ⇒ Object
Get or set command plugins options.
-
.command_type ⇒ Object
Get or set changeset command type.
-
.relation ⇒ Object
Get or set changeset relation identifier.
-
.use(plugin, **options) ⇒ Object
Enable a plugin for the changeset.
Instance Method Summary collapse
-
#command ⇒ ROM::Command
private
Return a command for this changeset.
-
#command_compiler_options ⇒ Hash
private
Return configured command compiler options.
-
#commit ⇒ Hash, Array
Persist changeset.
-
#inspect ⇒ String
Return string representation of the changeset.
-
#new(relation, **new_options) ⇒ Changeset
Return a new changeset with provided relation.
Instance Attribute Details
#command_options ⇒ Hash (readonly)
Returns Configured options for the command.
87 |
# File 'lib/rom/changeset.rb', line 87 option :command_options, default: -> { self.class. } |
#command_plugins ⇒ Hash (readonly)
Returns Configured plugin options for the command.
91 |
# File 'lib/rom/changeset.rb', line 91 option :command_plugins, default: -> { self.class.command_plugins } |
#command_type ⇒ Symbol (readonly)
Returns a custom command identifier.
83 |
# File 'lib/rom/changeset.rb', line 83 option :command_type, default: -> { self.class.command_type } |
#relation ⇒ Relation (readonly)
Returns The changeset relation.
79 |
# File 'lib/rom/changeset.rb', line 79 param :relation |
Class Method Details
.[](relation_name) ⇒ Object
Create a changeset class preconfigured for a specific relation
108 109 110 111 112 |
# File 'lib/rom/changeset.rb', line 108 def self.[](relation_name) fetch_or_store([relation_name, self]) { Class.new(self) { relation(relation_name) } } end |
.command_options ⇒ Hash? .command_options(**options) ⇒ Hash
Get or set command options
49 |
# File 'lib/rom/changeset.rb', line 49 defines :command_options |
.command_plugins ⇒ Hash? .command_plugins(**options) ⇒ Hash
Get or set command plugins options
62 |
# File 'lib/rom/changeset.rb', line 62 defines :command_plugins |
.command_type ⇒ Symbol .command_type(identifier) ⇒ Symbol
Get or set changeset command type
36 |
# File 'lib/rom/changeset.rb', line 36 defines :command_type |
.relation ⇒ Symbol .relation(identifier) ⇒ Symbol
Get or set changeset relation identifier
75 |
# File 'lib/rom/changeset.rb', line 75 defines :relation |
Instance Method Details
#command ⇒ ROM::Command
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return a command for this changeset
163 164 165 |
# File 'lib/rom/changeset.rb', line 163 def command relation.command(command_type, **) end |
#command_compiler_options ⇒ Hash
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Return configured command compiler options
172 173 174 |
# File 'lib/rom/changeset.rb', line 172 def .merge(use: command_plugins.keys, plugins_options: command_plugins) end |
#commit ⇒ Hash, Array
Persist changeset
145 146 147 |
# File 'lib/rom/changeset.rb', line 145 def commit command.call end |
#inspect ⇒ String
Return string representation of the changeset
154 155 156 |
# File 'lib/rom/changeset.rb', line 154 def inspect %(#<#{self.class} relation=#{relation.name.inspect}>) end |
#new(relation, **new_options) ⇒ Changeset
Return a new changeset with provided relation
New options can be provided too
131 132 133 |
# File 'lib/rom/changeset.rb', line 131 def new(relation, **) self.class.new(relation, **, **) end |