Class: Repository::Base::Internals::RecordSaver
- Inherits:
-
Object
- Object
- Repository::Base::Internals::RecordSaver
- Includes:
- Support
- Defined in:
- lib/repository/base/internals/record_saver.rb
Overview
Reports on the success or failure of saving a *DAO record*, using the `Repository::Support::StoreResult` instance returned from `#result`.
Instance Attribute Summary collapse
- #factory ⇒ Object readonly private
- #record ⇒ Object readonly private
Instance Method Summary collapse
-
#error_hashes ⇒ Object
private
Represent error data sourced from an `ActiveModel::Errors` object as an Array of `'field', message: 'message'` hashes.
- #failed_result ⇒ Object private
-
#initialize(record:, factory:) ⇒ RecordSaver
constructor
Sets instance variable(s) on a new `RecordSaver` instanace.
-
#result ⇒ Object
Command-pattern method returning indication of success or failure of attempt to save record.
- #successful_result ⇒ Object private
Constructor Details
#initialize(record:, factory:) ⇒ RecordSaver
Sets instance variable(s) on a new `RecordSaver` instanace.
19 20 21 22 |
# File 'lib/repository/base/internals/record_saver.rb', line 19 def initialize(record:, factory:) @record = record @factory = factory end |
Instance Attribute Details
#factory ⇒ Object (readonly, private)
39 40 41 |
# File 'lib/repository/base/internals/record_saver.rb', line 39 def factory @factory end |
#record ⇒ Object (readonly, private)
39 40 41 |
# File 'lib/repository/base/internals/record_saver.rb', line 39 def record @record end |
Instance Method Details
#error_hashes ⇒ Object (private)
Represent error data sourced from an `ActiveModel::Errors` object as an Array of `'field', message: 'message'` hashes.
43 44 45 |
# File 'lib/repository/base/internals/record_saver.rb', line 43 def error_hashes ErrorFactory.create record.errors end |
#failed_result ⇒ Object (private)
47 48 49 |
# File 'lib/repository/base/internals/record_saver.rb', line 47 def failed_result StoreResult::Failure.new error_hashes end |
#result ⇒ Object
Command-pattern method returning indication of success or failure of attempt to save record.
29 30 31 32 33 34 35 |
# File 'lib/repository/base/internals/record_saver.rb', line 29 def result if record.save successful_result else failed_result end end |
#successful_result ⇒ Object (private)
51 52 53 54 |
# File 'lib/repository/base/internals/record_saver.rb', line 51 def successful_result entity = factory.create record StoreResult::Success.new entity end |