Class: Dbwatcher::Services::QueryFilterProcessor

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

Overview

Service object for filtering and sorting queries based on criteria Implements the strategy pattern for different filter types

Instance Attribute Summary collapse

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(queries, filter_params) ⇒ QueryFilterProcessor

Returns a new instance of QueryFilterProcessor.

Parameters:

  • queries (Array<Hash>)

    the queries to filter

  • filter_params (Hash)

    filtering parameters



14
15
16
17
# File 'lib/dbwatcher/services/query_filter_processor.rb', line 14

def initialize(queries, filter_params)
  @queries = queries
  @filter_params = filter_params
end

Instance Attribute Details

#filter_paramsObject (readonly)

Returns the value of attribute filter_params.



10
11
12
# File 'lib/dbwatcher/services/query_filter_processor.rb', line 10

def filter_params
  @filter_params
end

#queriesObject (readonly)

Returns the value of attribute queries.



10
11
12
# File 'lib/dbwatcher/services/query_filter_processor.rb', line 10

def queries
  @queries
end

Class Method Details

.call(queries, filter_params) ⇒ Array<Hash>

Returns filtered and sorted queries.

Parameters:

  • queries (Array<Hash>)

    queries to filter

  • filter_params (Hash)

    filtering parameters

Returns:

  • (Array<Hash>)

    filtered and sorted queries



22
23
24
# File 'lib/dbwatcher/services/query_filter_processor.rb', line 22

def self.call(queries, filter_params)
  new(queries, filter_params).call
end

Instance Method Details

#callObject



26
27
28
29
30
31
32
33
34
# File 'lib/dbwatcher/services/query_filter_processor.rb', line 26

def call
  log_filtering_start
  start_time = Time.current

  result = apply_all_filters
  log_filtering_completion(start_time, result)

  result
end