Sha256: d0595f03b219bf01307ae858be9f58809cbb158a67ed777f6e79bd7a33176d5f

Contents?: true

Size: 776 Bytes

Versions: 21

Compression:

Stored size: 776 Bytes

Contents

# Registry of all Metanorma types and entry points
#

require 'singleton'

class Error < StandardError
end

module Metanorma
  class Registry
    include Singleton

    attr_reader :processors

    def initialize
      @processors = {}
    end

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

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

    def supported_backends
      @processors.keys
    end

    def processors
      @processors
    end

    def output_formats
      @processors.inject({}) do |acc, (k,v)|
        acc[k] = v.output_formats
        acc
      end
    end

  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
metanorma-0.3.11 lib/metanorma/registry.rb
metanorma-0.3.10 lib/metanorma/registry.rb
metanorma-0.3.9 lib/metanorma/registry.rb
metanorma-0.3.8 lib/metanorma/registry.rb
metanorma-0.3.7 lib/metanorma/registry.rb
metanorma-0.3.6 lib/metanorma/registry.rb
metanorma-0.3.5 lib/metanorma/registry.rb
metanorma-0.3.4 lib/metanorma/registry.rb
metanorma-0.3.3 lib/metanorma/registry.rb
metanorma-0.3.2 lib/metanorma/registry.rb
metanorma-0.3.1 lib/metanorma/registry.rb
metanorma-0.3.0 lib/metanorma/registry.rb
metanorma-0.2.11 lib/metanorma/registry.rb
metanorma-0.2.10 lib/metanorma/registry.rb
metanorma-0.2.9 lib/metanorma/registry.rb
metanorma-0.2.8 lib/metanorma/registry.rb
metanorma-0.2.7 lib/metanorma/registry.rb
metanorma-0.2.6 lib/metanorma/registry.rb
metanorma-0.2.5 lib/metanorma/registry.rb
metanorma-0.2.4 lib/metanorma/registry.rb