Sha256: 66f5b4b50f71a7a400434fcde2051e1561991d898a726f2e10da26c04396d7da

Contents?: true

Size: 753 Bytes

Versions: 3

Compression:

Stored size: 753 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
      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.5.0 lib/mercurial-ruby/factories/hook_factory.rb
mercurial-ruby-0.4.0 lib/mercurial-ruby/factories/hook_factory.rb
mercurial-ruby-0.3.0 lib/mercurial-ruby/factories/hook_factory.rb