Class: Repository::Base::Internals::RecordDeleter

Inherits:
Object
  • Object
show all
Includes:
Support
Defined in:
lib/repository/base/internals/record_deleter.rb

Overview

Stows away details of reporting update success/failure.

Since:

  • 0.0.5

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(identifier:, dao:, factory:) ⇒ RecordDeleter

Initializes a new instance of `SlugFinder`.

Parameters:

  • identifier (String)

    [Slug](en.wikipedia.org/wiki/Semantic_URL#Slug) for record to be deleted.

  • dao

    Data Access Object implements persistence without business logic.

  • factory

    Factory-pattern class to build an entity from an existing DAO record.

Since:

  • 0.0.5



23
24
25
26
27
# File 'lib/repository/base/internals/record_deleter.rb', line 23

def initialize(identifier:, dao:, factory:)
  @identifier = identifier
  @dao = dao
  @factory = factory
end

Instance Attribute Details

#daoObject (readonly, private)

Since:

  • 0.0.5



42
43
44
# File 'lib/repository/base/internals/record_deleter.rb', line 42

def dao
  @dao
end

#factoryObject (readonly, private)

Since:

  • 0.0.5



42
43
44
# File 'lib/repository/base/internals/record_deleter.rb', line 42

def factory
  @factory
end

#identifierObject (readonly, private)

Since:

  • 0.0.5



42
43
44
# File 'lib/repository/base/internals/record_deleter.rb', line 42

def identifier
  @identifier
end

Instance Method Details

#deleteObject

Command-pattern method returning indication of success or failure of attempt to delete identified record.

Returns:

  • Repository::Support::StoreResult

Since:

  • 0.0.5



32
33
34
35
36
37
38
# 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