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.
- checksums.yaml +4 -4
- data/{lib/bundler/vendor/connection_pool/LICENSE → MIT.txt} +8 -6
- data/bundler.gemspec +23 -6
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/checksum.rb +40 -25
- data/lib/bundler/ci_detector.rb +1 -1
- data/lib/bundler/cli/add.rb +3 -4
- data/lib/bundler/cli/cache.rb +4 -0
- data/lib/bundler/cli/clean.rb +5 -0
- data/lib/bundler/cli/common.rb +37 -1
- data/lib/bundler/cli/config.rb +4 -2
- data/lib/bundler/cli/gem.rb +0 -17
- data/lib/bundler/cli/install.rb +4 -5
- data/lib/bundler/cli/lock.rb +4 -16
- data/lib/bundler/cli/outdated.rb +8 -3
- data/lib/bundler/cli/platform.rb +1 -15
- data/lib/bundler/cli/pristine.rb +2 -1
- data/lib/bundler/cli/update.rb +21 -12
- data/lib/bundler/cli.rb +19 -28
- data/lib/bundler/definition.rb +61 -24
- data/lib/bundler/dependency.rb +4 -0
- data/lib/bundler/dsl.rb +77 -11
- data/lib/bundler/endpoint_specification.rb +51 -14
- data/lib/bundler/env.rb +7 -24
- data/lib/bundler/errors.rb +34 -5
- data/lib/bundler/fetcher/compact_index.rb +14 -5
- data/lib/bundler/fetcher/connection_pools.rb +150 -0
- data/lib/bundler/fetcher/downloader.rb +33 -24
- data/lib/bundler/fetcher.rb +8 -47
- data/lib/bundler/injector.rb +3 -3
- data/lib/bundler/inline.rb +44 -4
- data/lib/bundler/installer/parallel_installer.rb +25 -30
- data/lib/bundler/installer.rb +20 -10
- data/lib/bundler/lazy_specification.rb +44 -17
- data/lib/bundler/lockfile_generator.rb +24 -2
- data/lib/bundler/lockfile_parser.rb +43 -5
- data/lib/bundler/man/bundle-add.1 +7 -4
- data/lib/bundler/man/bundle-add.1.ronn +8 -4
- data/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/lib/bundler/man/bundle-cache.1 +2 -2
- data/lib/bundler/man/bundle-cache.1.ronn +2 -2
- data/lib/bundler/man/bundle-check.1 +1 -1
- data/lib/bundler/man/bundle-clean.1 +1 -1
- data/lib/bundler/man/bundle-config.1 +38 -6
- data/lib/bundler/man/bundle-config.1.ronn +143 -10
- data/lib/bundler/man/bundle-console.1 +1 -1
- data/lib/bundler/man/bundle-doctor.1 +1 -1
- data/lib/bundler/man/bundle-env.1 +1 -1
- data/lib/bundler/man/bundle-exec.1 +1 -1
- data/lib/bundler/man/bundle-fund.1 +1 -1
- data/lib/bundler/man/bundle-gem.1 +1 -1
- data/lib/bundler/man/bundle-help.1 +1 -1
- data/lib/bundler/man/bundle-info.1 +1 -1
- data/lib/bundler/man/bundle-init.1 +1 -1
- data/lib/bundler/man/bundle-install.1 +2 -2
- data/lib/bundler/man/bundle-install.1.ronn +4 -4
- data/lib/bundler/man/bundle-issue.1 +1 -1
- data/lib/bundler/man/bundle-licenses.1 +1 -1
- data/lib/bundler/man/bundle-list.1 +1 -1
- data/lib/bundler/man/bundle-lock.1 +4 -4
- data/lib/bundler/man/bundle-lock.1.ronn +6 -6
- data/lib/bundler/man/bundle-open.1 +1 -1
- data/lib/bundler/man/bundle-outdated.1 +2 -2
- data/lib/bundler/man/bundle-outdated.1.ronn +1 -1
- data/lib/bundler/man/bundle-platform.1 +1 -1
- data/lib/bundler/man/bundle-plugin.1 +1 -1
- data/lib/bundler/man/bundle-pristine.1 +1 -1
- data/lib/bundler/man/bundle-remove.1 +1 -1
- data/lib/bundler/man/bundle-show.1 +1 -1
- data/lib/bundler/man/bundle-update.1 +5 -5
- data/lib/bundler/man/bundle-update.1.ronn +5 -7
- data/lib/bundler/man/bundle-version.1 +1 -1
- data/lib/bundler/man/bundle.1 +1 -1
- data/lib/bundler/man/gemfile.5 +45 -1
- data/lib/bundler/man/gemfile.5.ronn +53 -0
- data/lib/bundler/match_metadata.rb +20 -0
- data/lib/bundler/match_platform.rb +25 -2
- data/lib/bundler/match_remote_metadata.rb +21 -6
- data/lib/bundler/materialization.rb +2 -1
- data/lib/bundler/override.rb +69 -0
- data/lib/bundler/plugin/dsl.rb +3 -5
- data/lib/bundler/plugin/events.rb +55 -13
- data/lib/bundler/plugin/index.rb +87 -11
- data/lib/bundler/plugin/installer/path.rb +1 -1
- data/lib/bundler/plugin/installer.rb +13 -5
- data/lib/bundler/plugin.rb +58 -30
- data/lib/bundler/remote_specification.rb +6 -3
- data/lib/bundler/resolver/base.rb +2 -1
- data/lib/bundler/resolver/incompatibility.rb +1 -1
- data/lib/bundler/resolver.rb +73 -23
- data/lib/bundler/ruby_version.rb +0 -2
- data/lib/bundler/rubygems_ext.rb +71 -1
- data/lib/bundler/rubygems_gem_installer.rb +41 -2
- data/lib/bundler/rubygems_integration.rb +7 -2
- data/lib/bundler/runtime.rb +69 -2
- data/lib/bundler/self_manager.rb +9 -15
- data/lib/bundler/settings.rb +373 -30
- data/lib/bundler/shared_helpers.rb +2 -1
- data/lib/bundler/source/git/git_proxy.rb +2 -10
- data/lib/bundler/source/git.rb +15 -6
- data/lib/bundler/source/path/installer.rb +1 -1
- data/lib/bundler/source/rubygems/remote.rb +10 -5
- data/lib/bundler/source/rubygems.rb +48 -12
- data/lib/bundler/spec_set.rb +16 -4
- data/lib/bundler/stub_specification.rb +2 -1
- data/lib/bundler/templates/newgem/Gemfile.tt +4 -4
- data/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +3 -3
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
- data/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
- data/lib/bundler/ui/shell.rb +0 -4
- data/lib/bundler/ui/silent.rb +0 -4
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +29 -54
- data/lib/bundler/vendored_pub_grub.rb +5 -2
- data/lib/bundler/vendored_securerandom.rb +11 -8
- data/lib/bundler/vendored_uri.rb +14 -14
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +3 -2
- data/lib/bundler.rb +4 -2
- data/lib/rubygems/compact_index_client/cache.rb +122 -0
- data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
- data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
- data/lib/rubygems/compact_index_client/parser.rb +90 -0
- data/lib/rubygems/compact_index_client/updater.rb +113 -0
- data/lib/rubygems/compact_index_client.rb +111 -0
- data/lib/rubygems/cooldown_settings.rb +57 -0
- data/lib/rubygems/credential_store/native/linux.rb +97 -0
- data/lib/rubygems/credential_store/native/macos.rb +88 -0
- data/lib/rubygems/credential_store/native/windows.rb +130 -0
- data/lib/rubygems/credential_store.rb +332 -0
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
- data/lib/{bundler → rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
- data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
- data/lib/{bundler → rubygems}/vendor/securerandom/lib/securerandom.rb +10 -6
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/common.rb +120 -120
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/file.rb +13 -13
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ftp.rb +24 -24
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/generic.rb +135 -147
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/http.rb +18 -18
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/https.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldap.rb +14 -14
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ldaps.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/mailto.rb +21 -21
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc2396_parser.rb +39 -39
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/rfc3986_parser.rb +14 -14
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/version.rb +2 -2
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/ws.rb +12 -12
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri/wss.rb +4 -4
- data/lib/{bundler → rubygems}/vendor/uri/lib/uri.rb +35 -31
- data/lib/rubygems/yaml_serializer.rb +880 -0
- metadata +77 -68
- data/CHANGELOG.md +0 -5812
- data/LICENSE.md +0 -22
- data/README.md +0 -58
- data/lib/bundler/compact_index_client/cache.rb +0 -107
- data/lib/bundler/compact_index_client/cache_file.rb +0 -148
- data/lib/bundler/compact_index_client/parser.rb +0 -87
- data/lib/bundler/compact_index_client/updater.rb +0 -105
- data/lib/bundler/compact_index_client.rb +0 -92
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -237
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -233
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -89
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1159
- data/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
- data/lib/bundler/vendored_persistent.rb +0 -11
- data/lib/bundler/yaml_serializer.rb +0 -98
- /data/lib/{bundler → rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
- /data/lib/{bundler → rubygems}/vendor/securerandom/COPYING +0 -0
- /data/lib/{bundler → rubygems}/vendor/uri/COPYING +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require_relative 'version_constraint'
|
|
2
2
|
require_relative 'incompatibility'
|
|
3
3
|
|
|
4
|
-
module
|
|
4
|
+
module Gem::PubGrub
|
|
5
5
|
# Types:
|
|
6
6
|
#
|
|
7
|
-
# Where possible,
|
|
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
|
|
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
|
|
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
|
|
68
|
-
#
|
|
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 =
|
|
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
|
|
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
|
|
64
|
+
when Gem::PubGrub::Incompatibility::InvalidDependency
|
|
65
65
|
"#{terms[0].to_s(allow_every: true)} depends on unknown package #{cause.package}"
|
|
66
|
-
when
|
|
66
|
+
when Gem::PubGrub::Incompatibility::NoVersions
|
|
67
67
|
"no versions satisfy #{cause.constraint}"
|
|
68
|
-
when
|
|
68
|
+
when Gem::PubGrub::Incompatibility::ConflictCause
|
|
69
69
|
if failure?
|
|
70
70
|
"version solving has failed"
|
|
71
71
|
elsif terms.length == 1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module
|
|
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
|
-
|
|
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
|
-
|
|
42
|
+
Gem::PubGrub::VersionConstraint.new(package, range: range)
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
@@ -4,7 +4,7 @@ require_relative 'version_constraint'
|
|
|
4
4
|
require_relative 'incompatibility'
|
|
5
5
|
require_relative 'basic_package_source'
|
|
6
6
|
|
|
7
|
-
module
|
|
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 &&
|
|
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
|
-
|
|
58
|
+
Gem::PubGrub::RubyGems.parse_constraint(package, dependency)
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module
|
|
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,11 +1,11 @@
|
|
|
1
1
|
require_relative 'version_range'
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module Gem::PubGrub
|
|
4
4
|
class VersionConstraint
|
|
5
5
|
attr_reader :package, :range
|
|
6
6
|
|
|
7
|
-
# @param package [
|
|
8
|
-
# @param range [
|
|
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
|
|
@@ -4,14 +4,14 @@ require_relative 'incompatibility'
|
|
|
4
4
|
require_relative 'solve_failure'
|
|
5
5
|
require_relative 'strategy'
|
|
6
6
|
|
|
7
|
-
module
|
|
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:
|
|
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
|
|
@@ -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 '
|
|
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
|
-
#
|
|
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
|
|
36
|
-
# +
|
|
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
|
-
|
|
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
|
-
|
|
106
|
+
Gem::SecureRandom.extend(Random::Formatter)
|