class Multiwoven::Integrations::Service

def build_connectors(enabled_connectors, type)

def build_connectors(enabled_connectors, type)
  enabled_connectors.map do |connector|
    client = connector_class(type, connector).new
    client.meta_data[:data][:connector_spec] = client.connector_spec.to_h
    client.meta_data[:data]
  end
end

def config

def config
  @config ||= Config.new
end

def connector_class(connector_type, connector_name)

def connector_class(connector_type, connector_name)
  Object.const_get(
    "Multiwoven::Integrations::#{connector_type}::#{connector_name}::Client"
  )
end

def connectors

def connectors
  {
    source: build_connectors(
      ENABLED_SOURCES, "Source"
    ),
    destination: build_connectors(
      ENABLED_DESTINATIONS, "Destination"
    )
  }
end

def default_logger

def default_logger
  @default_logger ||= Logger.new($stdout)
end

def initialize

def initialize
  yield(self.class.config) if block_given?
end

def logger

def logger
  config.logger || default_logger
end