Sha256: 5c504d5b6a1a83b6803d25828db9502f370c3f9274e82da2729a54c8783acad8

Contents?: true

Size: 759 Bytes

Versions: 3

Compression:

Stored size: 759 Bytes

Contents

module Mercurial
  
  class HookFactory
    
    attr_reader :repository
    
    def initialize(repository)
      @repository = repository
    end
    
    def all
      [].tap do |returning|
        repository.config.find_header('hooks').each_pair do |name, value|
          returning << build(name, value)
        end
      end
    end
    
    def by_name(name)
      all.find do |h|
        h.name == name.to_s
      end
    end
    
    def add(name, value)
      build(name, value).tap do |hook|
        hook.save
      end
    end
    
    def remove(name)
      if hook = by_name(name)
        hook.destroy!
      end
    end
    
  protected
  
    def build(name, value)
      Mercurial::Hook.new(repository, name, value)
    end
    
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mercurial-ruby-0.7.0 lib/mercurial-ruby/factories/hook_factory.rb
mercurial-ruby-0.6.1 lib/mercurial-ruby/factories/hook_factory.rb
mercurial-ruby-0.6.0 lib/mercurial-ruby/factories/hook_factory.rb