Sha256: d218859491e7e44ccf36ed232955db2babb2a9bba81d1b9372024715ba6da0fb

Contents?: true

Size: 1.56 KB

Versions: 16

Compression:

Stored size: 1.56 KB

Contents

# This was added via Merb's bundler

require "rubygems"
require "rubygems/source_index"

module Gem
  BUNDLED_SPECS = File.join(Dir.pwd, "gems", "specifications")
  MAIN_INDEX = Gem::SourceIndex.from_gems_in(BUNDLED_SPECS)
  FALLBACK_INDEX = Gem::SourceIndex.from_installed_gems
  
  def self.source_index
    MultiSourceIndex.new
  end
  
  def self.searcher
    MultiPathSearcher.new
  end
  
  class ArbitrarySearcher < GemPathSearcher
    def initialize(source_index)
      @source_index = source_index
      super()
    end
    
    def init_gemspecs
      @source_index.map { |_, spec| spec }.sort { |a,b|
        (a.name <=> b.name).nonzero? || (b.version <=> a.version)
      }
    end
  end

  class MultiPathSearcher
    def initialize
      @main_searcher = ArbitrarySearcher.new(MAIN_INDEX)
      @fallback_searcher = ArbitrarySearcher.new(FALLBACK_INDEX)
    end
    
    def find(path)
      try = @main_searcher.find(path)
      return try if try
      @fallback_searcher.find(path)
    end
    
    def find_all(path)
      try = @main_searcher.find_all(path)
      return try unless try.empty?
      @fallback_searcher.find_all(path)
    end
  end
  
  class MultiSourceIndex
    # Used by merb.thor to confirm; not needed when MSI is in use
    def load_gems_in(*args)
    end
    
    def search(*args)
      try = MAIN_INDEX.search(*args)
      return try unless try.empty?
      FALLBACK_INDEX.search(*args)
    end
    
    def find_name(*args)
      try = MAIN_INDEX.find_name(*args)
      return try unless try.empty?
      FALLBACK_INDEX.find_name(*args)
    end
  end
end

Version data entries

16 entries across 16 versions & 4 rubygems

Version Path
maccman-bowline-0.3.3 lib/bowline/dependencies/lib/ext/common.rb
maccman-bowline-0.3.5 lib/bowline/dependencies/lib/ext/common.rb
maccman-bowline-0.3.6 lib/bowline/dependencies/lib/ext/common.rb
maccman-bowline-0.3.7 lib/bowline/dependencies/lib/ext/common.rb
scottmotte-merb_auth_slice_multisite-0.2.6 bin/common.rb
merb-gen-1.0.15 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.14 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.13 lib/generators/templates/application/common/merb_thor/common.rb
MARQ-0.0.1 merb/tasks/merb.thor/common.rb
merb-gen-1.0.12 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.11 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.10 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.8.1 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.8 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.7.1 lib/generators/templates/application/common/merb_thor/common.rb
merb-gen-1.0.9 lib/generators/templates/application/common/merb_thor/common.rb