Sha256: 6aed80f7462df94aa9264e8ee3548a09cf814c15b70e7d7700ce4c2e6be0b5da

Contents?: true

Size: 862 Bytes

Versions: 1

Compression:

Stored size: 862 Bytes

Contents

module Docman
  module Deployers
    class Deployer

      attr_reader :deploy_target

      @@subclasses = {}

      def self.create(type, deploy_target)
        c = @@subclasses[type]
        if c
          c.new(deploy_target)
        else
          raise "Bad deployer type: #{type}"
        end
      end

      def self.register_deployer(name)
        @@subclasses[name] = self
      end

      def initialize(deploy_target)
        @deployed = []
        @deploy_target = deploy_target
      end

      def build(root, info)
        return if @deployed.include? info['name']
        build_type = build_type(info['type'])
        Docman::Builders::Builder.create(build_type['handler'], root, build_type, info).do()
        @deployed << info['name']
      end

      def build_type(type)
        @deploy_target['builders'][type]
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
docman-0.0.5 lib/docman/deployers/deployer.rb