Class: Gitlab::Database::Aggregation::DefinitionsCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/database/aggregation/definitions_collector.rb

Instance Method Summary collapse

Constructor Details

#initialize(mapping) ⇒ DefinitionsCollector

Returns a new instance of DefinitionsCollector.



7
8
9
10
# File 'lib/gitlab/database/aggregation/definitions_collector.rb', line 7

def initialize(mapping)
  @collection = []
  @mapping = mapping
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name) ⇒ Object (private)



24
25
26
27
28
# File 'lib/gitlab/database/aggregation/definitions_collector.rb', line 24

def method_missing(method_name, ...)
  return super unless @mapping[method_name]

  @collection << @mapping[method_name].new(...)
end

Instance Method Details

#collect(&definitions_block) ⇒ Object



12
13
14
15
16
# File 'lib/gitlab/database/aggregation/definitions_collector.rb', line 12

def collect(&definitions_block)
  instance_exec(&definitions_block)

  @collection
end