Server IP : 109.234.166.131  /  Your IP : 216.73.217.93
Web Server : LiteSpeed
System : Linux garfish.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : bean7936 ( 1010)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /lib/tmpfiles.d/../python3.12/../java/../python3.12/../python2.7/../java/../rpm/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //lib/tmpfiles.d/../python3.12/../java/../python3.12/../python2.7/../java/../rpm/rubygems.con
#!/usr/bin/ruby

require 'rubygems/package'

module RubyGemsReq
  module Helpers
    # Keep only '!=' requirements.
    def self.conflicts(requirements)
      conflicts = requirements.select {|r| r.first == '!='}
    end

    # Converts Gem::Requirement into array of requirements strings compatible
    # with RPM .spec file.
    def self.requirement_versions_to_rpm(requirement)
      self.conflicts(requirement.requirements).map do |op, version|
        version == Gem::Version.new(0) ? "" : "= #{version}"
      end
    end
  end

  # Report conflicting gem dependencies including their version.
  def self.gem_depenencies(specification)
    specification.runtime_dependencies.each do |dependency|
      conflict_strings = Helpers::requirement_versions_to_rpm(dependency.requirement).map do |requirement|
        requirement_string = "rubygem(#{dependency.name}) #{requirement}"
      end
      if conflict_strings.length > 0
        conflict_string = conflict_strings.join(' with ')
        conflict_string.prepend('(').concat(')') if conflict_strings.length > 1
        puts conflict_string
      end
    end
  end

  # Reports all conflicts specified by all provided .gemspec files.
  def self.conflicts
    while filename = gets
      filename.strip!
      begin
        specification = Gem::Specification.load filename

        gem_depenencies(specification)
      rescue => e
        # Ignore all errors.
      end
    end
  end
end

if __FILE__ == $0
  RubyGemsReq::conflicts
end