class Repository::Base::Internals::RecordDeleter

Stows away details of reporting update success/failure. @since 0.0.5

Attributes

dao[R]
factory[R]
identifier[R]

Public Class Methods

new(identifier:, dao:, factory:) click to toggle source

Initializes a new instance of `SlugFinder`. @param identifier [String] [Slug](en.wikipedia.org/wiki/Semantic_URL#Slug)

for record to be deleted.

@param dao Data Access Object implements persistence without business

logic.

@param factory Factory-pattern class to build an entity from an

existing DAO record.
# File lib/repository/base/internals/record_deleter.rb, line 23
def initialize(identifier:, dao:, factory:)
  @identifier = identifier
  @dao = dao
  @factory = factory
end

Public Instance Methods

delete() click to toggle source

Command-pattern method returning indication of success or failure of attempt to delete identified record. @return Repository::Support::StoreResult

# File lib/repository/base/internals/record_deleter.rb, line 32
def delete
  finder = SlugFinder.new slug: identifier, dao: dao, factory: factory
  result = finder.find
  return result unless result.success
  dao.delete identifier
  result
end