diff options
Diffstat (limited to 'lib/rubygems/requirement.rb')
-rw-r--r-- | lib/rubygems/requirement.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/rubygems/requirement.rb b/lib/rubygems/requirement.rb index bcf5fb967e..572bf9673e 100644 --- a/lib/rubygems/requirement.rb +++ b/lib/rubygems/requirement.rb @@ -23,6 +23,8 @@ class Gem::Requirement "~>" => lambda { |v, r| v >= r && v.release < r.bump } } + SOURCE_SET_REQUIREMENT = Struct.new(:for_lockfile).new "!" # :nodoc: + quoted = OPS.keys.map { |k| Regexp.quote k }.join "|" PATTERN_RAW = "\\s*(#{quoted})?\\s*(#{Gem::Version::VERSION_PATTERN})\\s*" # :nodoc: @@ -54,6 +56,8 @@ class Gem::Requirement input when Gem::Version, Array then new input + when '!' then + source_set else if input.respond_to? :to_str then new [input.to_str] @@ -70,6 +74,13 @@ class Gem::Requirement new '>= 0' end + ### + # A source set requirement, used for Gemfiles and lockfiles + + def self.source_set # :nodoc: + SOURCE_SET_REQUIREMENT + end + ## # Parse +obj+, returning an <tt>[op, version]</tt> pair. +obj+ can # be a String or a Gem::Version. |