Sha256: dd7f93528f20d8639c8dde1c9f2d3d515dcb4e24f9ab399e6c2a3b68b6cc6ecb

Contents?: true

Size: 1000 Bytes

Versions: 9

Compression:

Stored size: 1000 Bytes

Contents

module AgileNotifier
  class SCM
    attr_accessor :url, :repositories, :args

    def initialize(url, args = {})
      @url = url
      @repositories = []
      @args = args
    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

9 entries across 9 versions & 1 rubygems

Version Path
agile_notifier-3.1.2 lib/agile_notifier/scm.rb
agile_notifier-3.0.2 lib/agile_notifier/scm.rb
agile_notifier-3.0.1 lib/agile_notifier/scm.rb
agile_notifier-3.0.0 lib/agile_notifier/scm.rb
agile_notifier-2.1.4 lib/agile_notifier/scm.rb
agile_notifier-2.1.3 lib/agile_notifier/scm.rb
agile_notifier-2.1.2 lib/agile_notifier/scm.rb
agile_notifier-2.1.1 lib/agile_notifier/scm.rb
agile_notifier-2.1 lib/agile_notifier/scm.rb