Sha256: fdf96a1a94b95162a66cc6eab8f92e93bc7c0bb4d0eaecb4c102961ae0e59233

Contents?: true

Size: 963 Bytes

Versions: 4

Compression:

Stored size: 963 Bytes

Contents

module AgileNotifier
  class SCM
    attr_accessor :url, :repositories

    def initialize(url)
      @url = url
      @repositories = []
    end

    def add_repository(repository)
      @repositories.push(repository)
    end

    def repository
      if @repositories.size == 1
        return @repositories.first
      else
        raise('There are more than one repository, please use method [repositories] instead of [repository]')
      end
    end

    class Repository
      attr_accessor :user, :repo, :url

      def initialize(args)
        @user = args[:user]
        @repo = args[:repo]
        @url = args[:url]
      end

      def get_commit(revision)
        raise(NotImplementedError, "Abstract method [#{__method__}] is called, please implement", caller)
      end

      def get_committer_of_a_commit(revision)
        raise(NotImplementedError, "Abstract method [#{__method__}] is called, please implement", caller)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
agile_notifier-2.0 lib/agile_notifier/scm.rb
agile_notifier-1.1.1 lib/agile_notifier/scm.rb
agile_notifier-1.1 lib/agile_notifier/scm.rb
agile_notifier-1.0 lib/agile_notifier/scm.rb