Sha256: d8feaeb1f5752d8b4dcc9879703a7e16bf86f40a7c3eab6aed12bb5f46a812a7

Contents?: true

Size: 654 Bytes

Versions: 15

Compression:

Stored size: 654 Bytes

Contents

module Coherent
  
  class Repository
    include Enumerable
    attr_reader :uri, :plugins
  
    def initialize(uri)
      @uri = uri.chomp('/') << "/"
      @plugins = nil
    end
  
    def plugins
      unless @plugins
        if $verbose
          puts "Discovering plugins in #{@uri}" 
          puts index
        end

        @plugins = index.reject{ |line| line !~ /\/$/ }
        @plugins.map! { |name| Plugin.new(File.join(@uri, name), name) }
      end

      @plugins
    end
  
    def each(&block)
      plugins.each(&block)
    end
  
    private
      def index
        @index ||= RecursiveHTTPFetcher.new(@uri).ls
      end
  end

end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
coherent-0.6.11 lib/plugin/repository.rb
coherent-0.6.10 lib/plugin/repository.rb
coherent-0.6.9 lib/plugin/repository.rb
coherent-0.6.8 lib/plugin/repository.rb
coherent-0.6.7 lib/plugin/repository.rb
coherent-0.6.6 lib/plugin/repository.rb
coherent-0.6.5 lib/plugin/repository.rb
coherent-0.6.4 lib/plugin/repository.rb
coherent-0.6.2 lib/plugin/repository.rb
coherent-0.6.1 lib/plugin/repository.rb
coherent-0.6.0 lib/plugin/repository.rb
coherent-0.4.3 lib/plugin/repository.rb
coherent-0.4.2 lib/plugin/repository.rb
coherent-0.4.1 lib/plugin/repository.rb
coherent-0.4.0 lib/plugin/repository.rb