Class: Gem::SourceIndex
- Inherits:
-
Object
- Object
- Gem::SourceIndex
- Defined in:
- lib/sprout/generator/base_mixins.rb
Instance Method Summary collapse
-
#sprout_search(gem_pattern, platform_only = false) ⇒ Object
This feature seems to be getting deprecated from the latest gems releases (1.3.x).
Instance Method Details
#sprout_search(gem_pattern, platform_only = false) ⇒ Object
This feature seems to be getting deprecated from the latest gems releases (1.3.x). We actually need it and don’t want the nagging - so, copied sources from RubyGems SVN trunk, and mixing in… :-( There should be a more stable integration point with RubyGems Any ideas or contributions are welcome!
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/sprout/generator/base_mixins.rb', line 11 def sprout_search(gem_pattern, platform_only = false) version_requirement = nil only_platform = false # 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 specs = @gems.values.select do |spec| spec.name =~ 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 begin specs.sort_by { |s| s.sort_obj } rescue NoMethodError => e puts "It looks like your RubyGems installation is not compatible with this version of Sprouts.\n\nTo update, run:\ngem update --system\n\n" raise e end end |