Sha256: 07cefc4caf736620e0920fe2f99a88e0d749c7e32d7425800edd182c55df67bf

Contents?: true

Size: 1.83 KB

Versions: 4

Compression:

Stored size: 1.83 KB

Contents

module Cerberus
  module SCM
    TYPES = {
      :svn => 'SVN', #Cerberus::SCM
      :darcs => 'Darcs',
      :perforce => 'Perforce',
      :cvs => 'CVS',
      :git => 'Git'
    }

    def self.get(type)
      class_name = TYPES[type.to_sym]
      say "SCM #{type} not supported" unless class_name
      require "cerberus/scm/#{type}"
      const_get(class_name)
    end


    def self.guess_type(path)
      if test(?d, path)
        case
        when test(?d, path+'/.svn')
          'svn'
        when test(?d, path+'/_darcs')
          'darcs'
        when test(?d, path+'/.cvs')
          'cvs'
        when test(?d, path+'/.git')
          'git'          
        end
      else
        #guess SCM type by its url
        case path
        when /^:(pserver|ext|local):/
          'cvs'
        end
      end
    end
  end

  module Publisher
    TYPES = {
      :mail => 'Mail', #Cerberus::Publisher
      :gmailer => 'Gmailer',
      :jabber => 'Jabber',
      :irc => 'IRC',
      :rss => 'RSS',
      :campfire => 'Campfire',
      :twitter => 'Twitter'
    }

    def self.get(type, config)
      class_name = TYPES[type.to_sym]
      if not class_name
        class_name = config[:class_name]
        say "Publisher #{type} not supported" unless class_name
        require config[:require]
      else
        require "cerberus/publisher/#{type}"
      end
      const_get(class_name)
    end
  end

  module Builder
    TYPES = {
      :maven2 => 'Maven2', #Cerberus::Builder
      :rake => 'Rake',
      :rspec => 'RSpec',
      :rant => 'Rant',
      :bjam => 'Bjam'
    }

    def self.get(type)
      class_name = TYPES[type.to_sym]
      say "Builder #{type} not supported" unless class_name
      require "cerberus/builder/#{type}"
      const_get(class_name)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cerberus-0.4.4 lib/cerberus/component_lazy_loader.rb
cerberus-0.4.5.1 lib/cerberus/component_lazy_loader.rb
cerberus-0.4.5 lib/cerberus/component_lazy_loader.rb
cerberus-0.5 lib/cerberus/component_lazy_loader.rb