bundler 4.0.23 → 4.1.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/{lib/bundler/vendor/connection_pool/LICENSE → MIT.txt} +8 -6
  3. data/bundler.gemspec +23 -6
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/checksum.rb +40 -25
  6. data/lib/bundler/ci_detector.rb +1 -1
  7. data/lib/bundler/cli/add.rb +3 -4
  8. data/lib/bundler/cli/cache.rb +4 -0
  9. data/lib/bundler/cli/clean.rb +5 -0
  10. data/lib/bundler/cli/common.rb +37 -1
  11. data/lib/bundler/cli/config.rb +4 -2
  12. data/lib/bundler/cli/gem.rb +0 -17
  13. data/lib/bundler/cli/install.rb +4 -5
  14. data/lib/bundler/cli/lock.rb +4 -16
  15. data/lib/bundler/cli/outdated.rb +8 -3
  16. data/lib/bundler/cli/platform.rb +1 -15
  17. data/lib/bundler/cli/pristine.rb +2 -1
  18. data/lib/bundler/cli/update.rb +21 -12
  19. data/lib/bundler/cli.rb +19 -28
  20. data/lib/bundler/definition.rb +61 -24
  21. data/lib/bundler/dependency.rb +4 -0
  22. data/lib/bundler/dsl.rb +77 -11
  23. data/lib/bundler/endpoint_specification.rb +51 -14
  24. data/lib/bundler/env.rb +7 -24
  25. data/lib/bundler/errors.rb +34 -5
  26. data/lib/bundler/fetcher/compact_index.rb +14 -5
  27. data/lib/bundler/fetcher/connection_pools.rb +150 -0
  28. data/lib/bundler/fetcher/downloader.rb +33 -24
  29. data/lib/bundler/fetcher.rb +8 -47
  30. data/lib/bundler/injector.rb +3 -3
  31. data/lib/bundler/inline.rb +44 -4
  32. data/lib/bundler/installer/parallel_installer.rb +25 -30
  33. data/lib/bundler/installer.rb +20 -10
  34. data/lib/bundler/lazy_specification.rb +44 -17
  35. data/lib/bundler/lockfile_generator.rb +24 -2
  36. data/lib/bundler/lockfile_parser.rb +43 -5
  37. data/lib/bundler/man/bundle-add.1 +7 -4
  38. data/lib/bundler/man/bundle-add.1.ronn +8 -4
  39. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  40. data/lib/bundler/man/bundle-cache.1 +2 -2
  41. data/lib/bundler/man/bundle-cache.1.ronn +2 -2
  42. data/lib/bundler/man/bundle-check.1 +1 -1
  43. data/lib/bundler/man/bundle-clean.1 +1 -1
  44. data/lib/bundler/man/bundle-config.1 +38 -6
  45. data/lib/bundler/man/bundle-config.1.ronn +143 -10
  46. data/lib/bundler/man/bundle-console.1 +1 -1
  47. data/lib/bundler/man/bundle-doctor.1 +1 -1
  48. data/lib/bundler/man/bundle-env.1 +1 -1
  49. data/lib/bundler/man/bundle-exec.1 +1 -1
  50. data/lib/bundler/man/bundle-fund.1 +1 -1
  51. data/lib/bundler/man/bundle-gem.1 +1 -1
  52. data/lib/bundler/man/bundle-help.1 +1 -1
  53. data/lib/bundler/man/bundle-info.1 +1 -1
  54. data/lib/bundler/man/bundle-init.1 +1 -1
  55. data/lib/bundler/man/bundle-install.1 +2 -2
  56. data/lib/bundler/man/bundle-install.1.ronn +4 -4
  57. data/lib/bundler/man/bundle-issue.1 +1 -1
  58. data/lib/bundler/man/bundle-licenses.1 +1 -1
  59. data/lib/bundler/man/bundle-list.1 +1 -1
  60. data/lib/bundler/man/bundle-lock.1 +4 -4
  61. data/lib/bundler/man/bundle-lock.1.ronn +6 -6
  62. data/lib/bundler/man/bundle-open.1 +1 -1
  63. data/lib/bundler/man/bundle-outdated.1 +2 -2
  64. data/lib/bundler/man/bundle-outdated.1.ronn +1 -1
  65. data/lib/bundler/man/bundle-platform.1 +1 -1
  66. data/lib/bundler/man/bundle-plugin.1 +1 -1
  67. data/lib/bundler/man/bundle-pristine.1 +1 -1
  68. data/lib/bundler/man/bundle-remove.1 +1 -1
  69. data/lib/bundler/man/bundle-show.1 +1 -1
  70. data/lib/bundler/man/bundle-update.1 +5 -5
  71. data/lib/bundler/man/bundle-update.1.ronn +5 -7
  72. data/lib/bundler/man/bundle-version.1 +1 -1
  73. data/lib/bundler/man/bundle.1 +1 -1
  74. data/lib/bundler/man/gemfile.5 +45 -1
  75. data/lib/bundler/man/gemfile.5.ronn +53 -0
  76. data/lib/bundler/match_metadata.rb +20 -0
  77. data/lib/bundler/match_platform.rb +25 -2
  78. data/lib/bundler/match_remote_metadata.rb +21 -6
  79. data/lib/bundler/materialization.rb +2 -1
  80. data/lib/bundler/override.rb +69 -0
  81. data/lib/bundler/plugin/dsl.rb +3 -5
  82. data/lib/bundler/plugin/events.rb +55 -13
  83. data/lib/bundler/plugin/index.rb +87 -11
  84. data/lib/bundler/plugin/installer/path.rb +1 -1
  85. data/lib/bundler/plugin/installer.rb +13 -5
  86. data/lib/bundler/plugin.rb +58 -30
  87. data/lib/bundler/remote_specification.rb +6 -3
  88. data/lib/bundler/resolver/base.rb +2 -1
  89. data/lib/bundler/resolver/incompatibility.rb +1 -1
  90. data/lib/bundler/resolver.rb +73 -23
  91. data/lib/bundler/ruby_version.rb +0 -2
  92. data/lib/bundler/rubygems_ext.rb +71 -1
  93. data/lib/bundler/rubygems_gem_installer.rb +41 -2
  94. data/lib/bundler/rubygems_integration.rb +7 -2
  95. data/lib/bundler/runtime.rb +69 -2
  96. data/lib/bundler/self_manager.rb +9 -15
  97. data/lib/bundler/settings.rb +373 -30
  98. data/lib/bundler/shared_helpers.rb +2 -1
  99. data/lib/bundler/source/git/git_proxy.rb +2 -10
  100. data/lib/bundler/source/git.rb +15 -6
  101. data/lib/bundler/source/path/installer.rb +1 -1
  102. data/lib/bundler/source/rubygems/remote.rb +10 -5
  103. data/lib/bundler/source/rubygems.rb +48 -12
  104. data/lib/bundler/spec_set.rb +16 -4
  105. data/lib/bundler/stub_specification.rb +2 -1
  106. data/lib/bundler/templates/newgem/Gemfile.tt +4 -4
  107. data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
  108. data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
  109. data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
  110. data/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
  111. data/lib/bundler/ui/shell.rb +0 -4
  112. data/lib/bundler/ui/silent.rb +0 -4
  113. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +29 -54
  114. data/lib/bundler/vendored_pub_grub.rb +5 -2
  115. data/lib/bundler/vendored_securerandom.rb +11 -8
  116. data/lib/bundler/vendored_uri.rb +14 -14
  117. data/lib/bundler/version.rb +1 -1
  118. data/lib/bundler/worker.rb +3 -2
  119. data/lib/bundler.rb +4 -2
  120. data/lib/rubygems/compact_index_client/cache.rb +122 -0
  121. data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
  122. data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
  123. data/lib/rubygems/compact_index_client/parser.rb +90 -0
  124. data/lib/rubygems/compact_index_client/updater.rb +113 -0
  125. data/lib/rubygems/compact_index_client.rb +111 -0
  126. data/lib/rubygems/cooldown_settings.rb +57 -0
  127. data/lib/rubygems/credential_store/native/linux.rb +97 -0
  128. data/lib/rubygems/credential_store/native/macos.rb +88 -0
  129. data/lib/rubygems/credential_store/native/windows.rb +130 -0
  130. data/lib/rubygems/credential_store.rb +332 -0
  131. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
  132. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
  133. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
  134. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
  135. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
  136. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
  137. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
  138. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
  139. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
  140. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
  141. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
  142. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
  143. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
  144. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
  145. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
  146. data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
  147. data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
  148. data/lib/{bundler → rubygems}/vendor/securerandom/lib/securerandom.rb +10 -6
  149. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/common.rb +120 -120
  150. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/file.rb +13 -13
  151. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ftp.rb +24 -24
  152. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/generic.rb +135 -147
  153. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/http.rb +18 -18
  154. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/https.rb +4 -4
  155. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldap.rb +14 -14
  156. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldaps.rb +4 -4
  157. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/mailto.rb +21 -21
  158. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc2396_parser.rb +39 -39
  159. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc3986_parser.rb +14 -14
  160. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/version.rb +2 -2
  161. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ws.rb +12 -12
  162. data/lib/{bundler → rubygems}/vendor/uri/lib/uri/wss.rb +4 -4
  163. data/lib/{bundler → rubygems}/vendor/uri/lib/uri.rb +35 -31
  164. data/lib/rubygems/yaml_serializer.rb +880 -0
  165. metadata +77 -68
  166. data/CHANGELOG.md +0 -5812
  167. data/LICENSE.md +0 -22
  168. data/README.md +0 -58
  169. data/lib/bundler/compact_index_client/cache.rb +0 -107
  170. data/lib/bundler/compact_index_client/cache_file.rb +0 -148
  171. data/lib/bundler/compact_index_client/parser.rb +0 -87
  172. data/lib/bundler/compact_index_client/updater.rb +0 -105
  173. data/lib/bundler/compact_index_client.rb +0 -92
  174. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -237
  175. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
  176. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
  177. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -233
  178. data/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
  179. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
  180. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
  181. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -89
  182. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1159
  183. data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
  184. data/lib/bundler/vendored_persistent.rb +0 -11
  185. data/lib/bundler/yaml_serializer.rb +0 -98
  186. /data/lib/{bundler → rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
  187. /data/lib/{bundler → rubygems}/vendor/securerandom/COPYING +0 -0
  188. /data/lib/{bundler → rubygems}/vendor/uri/COPYING +0 -0
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  class Assignment
3
3
  attr_reader :term, :cause, :decision_level, :index
4
4
  def initialize(term, cause, decision_level, index)
@@ -1,10 +1,10 @@
1
1
  require_relative 'version_constraint'
2
2
  require_relative 'incompatibility'
3
3
 
4
- module Bundler::PubGrub
4
+ module Gem::PubGrub
5
5
  # Types:
6
6
  #
7
- # Where possible, Bundler::PubGrub will accept user-defined types, so long as they quack.
7
+ # Where possible, Gem::PubGrub will accept user-defined types, so long as they quack.
8
8
  #
9
9
  # ## "Package":
10
10
  #
@@ -32,7 +32,7 @@ module Bundler::PubGrub
32
32
  #
33
33
  # This class represents the requirement one package has on another. It is
34
34
  # returned by dependencies_for(package, version) and will be passed to
35
- # parse_dependency to convert it to a format Bundler::PubGrub understands.
35
+ # parse_dependency to convert it to a format Gem::PubGrub understands.
36
36
  #
37
37
  # It must also have a reasonable definition of #==
38
38
  #
@@ -59,13 +59,13 @@ module Bundler::PubGrub
59
59
 
60
60
  # Override me!
61
61
  #
62
- # Convert a (user-defined) dependency into a format Bundler::PubGrub understands.
62
+ # Convert a (user-defined) dependency into a format Gem::PubGrub understands.
63
63
  #
64
64
  # Package is passed to this method but for many implementations is not
65
65
  # needed.
66
66
  #
67
- # Returns: either a Bundler::PubGrub::VersionRange, Bundler::PubGrub::VersionUnion, or a
68
- # Bundler::PubGrub::VersionConstraint
67
+ # Returns: either a Gem::PubGrub::VersionRange, Gem::PubGrub::VersionUnion, or a
68
+ # Gem::PubGrub::VersionConstraint
69
69
  def parse_dependency(package, dependency)
70
70
  raise NotImplementedError
71
71
  end
@@ -155,7 +155,7 @@ module Bundler::PubGrub
155
155
  dep_constraint = parse_dependency(dep_package, dep_constraint_name)
156
156
  if !dep_constraint
157
157
  # falsey indicates this dependency was invalid
158
- cause = Bundler::PubGrub::Incompatibility::InvalidDependency.new(dep_package, dep_constraint_name)
158
+ cause = Gem::PubGrub::Incompatibility::InvalidDependency.new(dep_package, dep_constraint_name)
159
159
  return [Incompatibility.new([Term.new(self_constraint, true)], cause: cause)]
160
160
  elsif !dep_constraint.is_a?(VersionConstraint)
161
161
  # Upgrade range/union to VersionConstraint
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  class FailureWriter
3
3
  def initialize(root)
4
4
  @root = root
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  class Incompatibility
3
3
  ConflictCause = Struct.new(:incompatibility, :satisfier) do
4
4
  alias_method :conflict, :incompatibility
@@ -61,11 +61,11 @@ module Bundler::PubGrub
61
61
  "(root dependency)"
62
62
  when :dependency
63
63
  "#{terms[0].to_s(allow_every: true)} depends on #{terms[1].invert}"
64
- when Bundler::PubGrub::Incompatibility::InvalidDependency
64
+ when Gem::PubGrub::Incompatibility::InvalidDependency
65
65
  "#{terms[0].to_s(allow_every: true)} depends on unknown package #{cause.package}"
66
- when Bundler::PubGrub::Incompatibility::NoVersions
66
+ when Gem::PubGrub::Incompatibility::NoVersions
67
67
  "no versions satisfy #{cause.constraint}"
68
- when Bundler::PubGrub::Incompatibility::ConflictCause
68
+ when Gem::PubGrub::Incompatibility::ConflictCause
69
69
  if failure?
70
70
  "version solving has failed"
71
71
  elsif terms.length == 1
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class Package
5
5
 
6
6
  attr_reader :name
@@ -1,6 +1,6 @@
1
1
  require_relative 'assignment'
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class PartialSolution
5
5
  attr_reader :assignments, :decisions
6
6
  attr_reader :attempted_solutions
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  module RubyGems
3
3
  extend self
4
4
 
@@ -30,7 +30,7 @@ module Bundler::PubGrub
30
30
  end
31
31
 
32
32
  def requirement_to_constraint(package, requirement)
33
- Bundler::PubGrub::VersionConstraint.new(package, range: requirement_to_range(requirement))
33
+ Gem::PubGrub::VersionConstraint.new(package, range: requirement_to_range(requirement))
34
34
  end
35
35
 
36
36
  def parse_range(dep)
@@ -39,7 +39,7 @@ module Bundler::PubGrub
39
39
 
40
40
  def parse_constraint(package, dep)
41
41
  range = parse_range(dep)
42
- Bundler::PubGrub::VersionConstraint.new(package, range: range)
42
+ Gem::PubGrub::VersionConstraint.new(package, range: range)
43
43
  end
44
44
  end
45
45
  end
@@ -1,6 +1,6 @@
1
1
  require_relative 'failure_writer'
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class SolveFailure < StandardError
5
5
  attr_reader :incompatibility
6
6
 
@@ -4,7 +4,7 @@ require_relative 'version_constraint'
4
4
  require_relative 'incompatibility'
5
5
  require_relative 'basic_package_source'
6
6
 
7
- module Bundler::PubGrub
7
+ module Gem::PubGrub
8
8
  class StaticPackageSource < BasicPackageSource
9
9
  class DSL
10
10
  def initialize(packages, root_deps)
@@ -27,7 +27,7 @@ module Bundler::PubGrub
27
27
 
28
28
  # Exclude redundant self-referencing dependencies
29
29
  def clean_deps(name, version, deps)
30
- deps.reject {|dep_name, req| name == dep_name && Bundler::PubGrub::RubyGems.parse_range(req).include?(version) }
30
+ deps.reject {|dep_name, req| name == dep_name && Gem::PubGrub::RubyGems.parse_range(req).include?(version) }
31
31
  end
32
32
  end
33
33
 
@@ -55,7 +55,7 @@ module Bundler::PubGrub
55
55
  def parse_dependency(package, dependency)
56
56
  return false unless @packages.key?(package)
57
57
 
58
- Bundler::PubGrub::RubyGems.parse_constraint(package, dependency)
58
+ Gem::PubGrub::RubyGems.parse_constraint(package, dependency)
59
59
  end
60
60
  end
61
61
  end
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  class Strategy
3
3
  def initialize(source)
4
4
  @source = source
@@ -27,7 +27,7 @@ module Bundler::PubGrub
27
27
  versions = @source.versions_for(package, range)
28
28
 
29
29
  indexes = @version_indexes[package]
30
- versions.min_by { |version| indexes[version] }
30
+ versions.min_by { |version| indexes[version] || Float::INFINITY }
31
31
  end
32
32
 
33
33
  def next_term_to_try_from(unsatisfied)
@@ -1,4 +1,4 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  class Term
3
3
  attr_reader :package, :constraint, :positive
4
4
 
@@ -1,3 +1,3 @@
1
- module Bundler::PubGrub
1
+ module Gem::PubGrub
2
2
  VERSION = "0.5.0"
3
3
  end
@@ -1,11 +1,11 @@
1
1
  require_relative 'version_range'
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class VersionConstraint
5
5
  attr_reader :package, :range
6
6
 
7
- # @param package [Bundler::PubGrub::Package]
8
- # @param range [Bundler::PubGrub::VersionRange]
7
+ # @param package [Gem::PubGrub::Package]
8
+ # @param range [Gem::PubGrub::VersionRange]
9
9
  def initialize(package, range: nil)
10
10
  @package = package
11
11
  @range = range
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class VersionRange
5
5
  attr_reader :min, :max, :include_min, :include_max
6
6
 
@@ -4,14 +4,14 @@ require_relative 'incompatibility'
4
4
  require_relative 'solve_failure'
5
5
  require_relative 'strategy'
6
6
 
7
- module Bundler::PubGrub
7
+ module Gem::PubGrub
8
8
  class VersionSolver
9
9
  attr_reader :logger
10
10
  attr_reader :source
11
11
  attr_reader :solution
12
12
  attr_reader :strategy
13
13
 
14
- def initialize(source:, root: Package.root, strategy: Strategy.new(source), logger: Bundler::PubGrub.logger)
14
+ def initialize(source:, root: Package.root, strategy: Strategy.new(source), logger: Gem::PubGrub.logger)
15
15
  @logger = logger
16
16
 
17
17
  @source = source
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Bundler::PubGrub
3
+ module Gem::PubGrub
4
4
  class VersionUnion
5
5
  attr_reader :ranges
6
6
 
@@ -0,0 +1,57 @@
1
+ # Skip reloading when an identical copy (e.g. the one shipped inside the Bundler
2
+ # gem) was already required from a different path, to avoid redefinition warnings.
3
+ return if defined?(Gem::PubGrub::VERSION)
4
+
5
+ require_relative "pub_grub/package"
6
+ require_relative "pub_grub/static_package_source"
7
+ require_relative "pub_grub/term"
8
+ require_relative "pub_grub/version_range"
9
+ require_relative "pub_grub/version_constraint"
10
+ require_relative "pub_grub/version_union"
11
+ require_relative "pub_grub/version_solver"
12
+ require_relative "pub_grub/incompatibility"
13
+ require_relative 'pub_grub/solve_failure'
14
+ require_relative 'pub_grub/failure_writer'
15
+ require_relative 'pub_grub/version'
16
+
17
+ module Gem::PubGrub
18
+ # Minimal logger that doesn't require the 'logger' gem
19
+ class NullLogger
20
+ def info(&block); end
21
+ def debug(&block); end
22
+ def warn(&block); end
23
+ def error(&block); end
24
+ end
25
+
26
+ class StderrLogger
27
+ def info(&block)
28
+ $stderr.puts "INFO: #{block.call}" if block
29
+ end
30
+
31
+ def debug(&block)
32
+ $stderr.puts "DEBUG: #{block.call}" if block
33
+ end
34
+
35
+ def warn(&block)
36
+ $stderr.puts "WARN: #{block.call}" if block
37
+ end
38
+
39
+ def error(&block)
40
+ $stderr.puts "ERROR: #{block.call}" if block
41
+ end
42
+ end
43
+
44
+ class << self
45
+ attr_writer :logger
46
+
47
+ def logger
48
+ @logger || default_logger
49
+ end
50
+
51
+ private
52
+
53
+ def default_logger
54
+ @logger = $DEBUG ? StderrLogger.new : NullLogger.new
55
+ end
56
+ end
57
+ end
@@ -10,7 +10,7 @@ require 'random/formatter'
10
10
  #
11
11
  # You can use this library in your application by requiring it:
12
12
  #
13
- # require 'bundler/vendor/securerandom/lib/securerandom'
13
+ # require 'rubygems/vendor/securerandom/lib/securerandom'
14
14
  #
15
15
  # It supports the following secure random number generators:
16
16
  #
@@ -18,7 +18,7 @@ require 'random/formatter'
18
18
  # * /dev/urandom
19
19
  # * Win32
20
20
  #
21
- # Bundler::SecureRandom is extended by the Random::Formatter module which
21
+ # Gem::SecureRandom is extended by the Random::Formatter module which
22
22
  # defines the following methods:
23
23
  #
24
24
  # * alphanumeric
@@ -32,13 +32,17 @@ require 'random/formatter'
32
32
  # * urlsafe_base64
33
33
  # * uuid
34
34
  #
35
- # These methods are usable as class methods of Bundler::SecureRandom such as
36
- # +Bundler::SecureRandom.hex+.
35
+ # These methods are usable as class methods of Gem::SecureRandom such as
36
+ # +Gem::SecureRandom.hex+.
37
37
  #
38
38
  # If a secure random number generator is not available,
39
39
  # +NotImplementedError+ is raised.
40
40
 
41
- module Bundler::SecureRandom
41
+ # Skip reloading when an identical copy (e.g. the one shipped inside the Bundler
42
+ # gem) was already required from a different path, to avoid redefinition warnings.
43
+ return if defined?(Gem::SecureRandom::VERSION)
44
+
45
+ module Gem::SecureRandom
42
46
 
43
47
  # The version
44
48
  VERSION = "0.4.1"
@@ -99,4 +103,4 @@ module Bundler::SecureRandom
99
103
  end
100
104
  end
101
105
 
102
- Bundler::SecureRandom.extend(Random::Formatter)
106
+ Gem::SecureRandom.extend(Random::Formatter)