Sha256: 72e283b0ca0ac5c48c9b841c1d4205ef9073890c25f004d1c4bb05b5ef37b2cc

Contents?: true

Size: 540 Bytes

Versions: 29

Compression:

Stored size: 540 Bytes

Contents

require "singleton"

class Error < StandardError
end

module Relaton
  class Registry
    include Singleton

    attr_reader :processors

    def initialize
      @processors = {}
    end

    def register(processor)
      raise Error unless processor < :: Relaton::Processor
      p = processor.new
      puts "[relaton] processor \"#{p.short}\" registered"
      @processors[p.short] = p
    end

    def find_processor(short)
      @processors[short.to_sym]
    end

    def supported_processors
      @processors.keys
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
relaton-0.5.3 lib/relaton/registry.rb
relaton-0.5.2 lib/relaton/registry.rb
relaton-0.5.1 lib/relaton/registry.rb
relaton-0.5.0 lib/relaton/registry.rb
relaton-0.4.5 lib/relaton/registry.rb
relaton-0.4.4 lib/relaton/registry.rb
relaton-0.4.3 lib/relaton/registry.rb
relaton-0.4.2 lib/relaton/registry.rb
relaton-0.4.1 lib/relaton/registry.rb
relaton-0.4.0 lib/relaton/registry.rb
relaton-0.3.4 lib/relaton/registry.rb
relaton-0.3.3 lib/relaton/registry.rb
relaton-0.3.2 lib/relaton/registry.rb
relaton-0.3.1 lib/relaton/registry.rb
relaton-0.3.0 lib/relaton/registry.rb
relaton-0.2.6 lib/relaton/registry.rb
relaton-0.2.5 lib/relaton/registry.rb
relaton-0.2.4 lib/relaton/registry.rb
relaton-0.2.3 lib/relaton/registry.rb
relaton-0.2.2 lib/relaton/registry.rb