Method: Gem::Dependency#merge

Defined in:
lib/rubygems/dependency.rb

#merge(other) ⇒ Object

Merges the requirements of other into this dependency



257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/rubygems/dependency.rb', line 257

def merge(other)
  unless name == other.name
    raise ArgumentError,
          "#{self} and #{other} have different names"
  end

  default = Gem::Requirement.default
  self_req = requirement
  other_req = other.requirement

  return self.class.new name, self_req  if other_req == default
  return self.class.new name, other_req if self_req  == default

  self.class.new name, self_req.as_list.concat(other_req.as_list)
end