Sha256: 43d50c51f6fd8de0e449fddd0b2f246ca022c95aa45b0d06dc32d7ed9244a936

Contents?: true

Size: 874 Bytes

Versions: 4

Compression:

Stored size: 874 Bytes

Contents

require 'universal-git-client/client'
require 'universal-git-client/http/github'
require 'universal-git-client/http/gitlab'
require 'universal-git-client/http/bitbucket'
require 'universal-git-client/http/bitbucket_server'

module UniversalGitClient
  class ClientFactory
    class << self
      def build(provider, *args)
        case provider
        when :github
          Client.new('GitHub', UniversalGitClient::Http::Github.new(*args))
        when :gitlab
          Client.new('GitLab', UniversalGitClient::Http::Gitlab.new(*args))
        when :bitbucket
          Client.new('Bitbucket', UniversalGitClient::Http::Bitbucket.new(*args))
        when :bitbucket_server
          Client.new('Bitbucket Server', UniversalGitClient::Http::BitbucketServer.new(*args))
        else
          raise ArgumentError, 'Unknown provider'
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
universal-git-client-1.2.12 lib/universal-git-client/client_factory.rb
universal-git-client-1.2.10 lib/universal-git-client/client_factory.rb
universal-git-client-1.2.9 lib/universal-git-client/client_factory.rb
universal-git-client-1.2.4 lib/universal-git-client/client_factory.rb