Sha256: f561f5f3feb1308d6ef59519b34b2cabab64c3825ba0754f0576e5bc52fe8f8e

Contents?: true

Size: 589 Bytes

Versions: 9

Compression:

Stored size: 589 Bytes

Contents

# frozen_string_literal: true

require 'rom/mapper'

module ROM
  # Abstract processor class
  #
  # Every ROM processor should inherit from this class
  #
  # @api public
  class Processor
    # Hook used to auto-register a processor class
    #
    # @api private
    def self.inherited(processor)
      Mapper.register_processor(processor)
    end

    # Required interface to be implemented by descendants
    #
    # @return [Processor]
    #
    # @abstract
    #
    # @api private
    def self.build
      raise NotImplementedError, '+build+ must be implemented'
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rom-core-5.3.2 lib/rom/processor.rb
rom-core-5.3.1 lib/rom/processor.rb
rom-core-5.3.0 lib/rom/processor.rb
rom-core-5.2.6 lib/rom/processor.rb
rom-core-5.2.5 lib/rom/processor.rb
rom-core-5.2.4 lib/rom/processor.rb
rom-core-5.2.3 lib/rom/processor.rb
rom-core-5.2.2 lib/rom/processor.rb
rom-core-5.2.1 lib/rom/processor.rb