Sha256: 17fa9b4cec6fbb3c7c14cf53b60f71905b1ae1a30d7f334f1609348c14eeafe5

Contents?: true

Size: 795 Bytes

Versions: 2

Compression:

Stored size: 795 Bytes

Contents

require 'forwardable'

module Chronicle
  module ETL
    module Registry
      # Gives a connector class the ability to let the Chronicle::ETL::Registry
      # know about itself
      module SelfRegistering
        extend Forwardable

        attr_accessor :connector_registration

        def_delegators :@connector_registration, :description, :provider, :identifier

        # Creates a ConnectorRegistration for this connector's details and register's it
        # into the Registry
        def register_connector
          @connector_registration ||= ::Chronicle::ETL::Registry::ConnectorRegistration.new(self)
          yield @connector_registration if block_given?
          ::Chronicle::ETL::Registry::Connectors.register(@connector_registration)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chronicle-etl-0.6.1 lib/chronicle/etl/registry/self_registering.rb
chronicle-etl-0.5.5 lib/chronicle/etl/registry/self_registering.rb