Sha256: 210c89f0215413d8cc70b6f5dd948643cc357cfb17c02363676bd2f860099d8f
Contents?: true
Size: 1.79 KB
Versions: 3
Compression:
Stored size: 1.79 KB
Contents
# Extends Gem::SourceIndex#search to allow searching of any gemspec attribute field. # Differs from original method (from rubygems v1.3.2) by a couple of lines. module Gem::SuperSearch def search(gem_pattern, platform_only = false) version_requirement = nil only_platform = false # TODO - Remove support and warning for legacy arguments after 2008/11 unless Gem::Dependency === gem_pattern warn "#{Gem.location_of_caller.join ':'}:Warning: Gem::SourceIndex#search support for #{gem_pattern.class} patterns is deprecated" end case gem_pattern when Regexp then version_requirement = platform_only || Gem::Requirement.default when Gem::Dependency then only_platform = platform_only version_requirement = gem_pattern.version_requirements gem_pattern = if Regexp === gem_pattern.name then gem_pattern.name elsif gem_pattern.name.empty? then // else /^#{Regexp.escape gem_pattern.name}$/ end else version_requirement = platform_only || Gem::Requirement.default gem_pattern = /#{gem_pattern}/i end unless Gem::Requirement === version_requirement then version_requirement = Gem::Requirement.create version_requirement end # only changes from original method search_fields = Gem::CommandManager.instance['grep'].options[:fields] || ['name'] specs = @gems.values.select do |spec| search_fields.map {|e| spec.send(e).to_s}.any? {|e| e =~ gem_pattern} and version_requirement.satisfied_by? spec.version end if only_platform then specs = specs.select do |spec| Gem::Platform.match spec.platform end end specs.sort_by { |s| s.sort_obj } end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
cldwalker-gem_grep-0.1.0 | lib/rubygems/super_search.rb |
cldwalker-gem_grep-0.1.1 | lib/rubygems/super_search.rb |
gem_grep-0.1.1 | lib/rubygems/super_search.rb |