Class: Dbwatcher::Services::BaseService

Inherits:
Object
  • Object
show all
Includes:
Logging
Defined in:
lib/dbwatcher/services/base_service.rb

Overview

Base class for all service objects

Provides common functionality and patterns for service objects including logging and consistent call interface.

Examples:

class MyService < BaseService
  def call
    log_info "Starting service"
    # service logic
  end
end

result = MyService.call

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logging

#debug_enabled?, #log_debug, #log_error, #log_info, #log_warn

Constructor Details

#initialize(*args) ⇒ BaseService

Initialize service

Parameters:

  • args (Array)

    service arguments



35
36
37
# File 'lib/dbwatcher/services/base_service.rb', line 35

def initialize(*args)
  # Override in subclasses
end

Class Method Details

.call(*args) ⇒ Object

Class method to create instance and call

Parameters:

  • args (Array)

    arguments to pass to initialize

Returns:

  • (Object)

    result of call method



28
29
30
# File 'lib/dbwatcher/services/base_service.rb', line 28

def self.call(*args)
  new(*args).call
end

Instance Method Details

#callObject

Perform service operation

Returns:

  • (Object)

    service result

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/dbwatcher/services/base_service.rb', line 42

def call
  raise NotImplementedError, "#{self.class} must implement #call"
end