bundler 1.13.6 → 1.17.3
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bundler might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/CHANGELOG.md +554 -9
- data/README.md +28 -5
- data/bundler.gemspec +40 -11
- data/exe/bundle +4 -8
- data/exe/bundle_ruby +4 -3
- data/lib/bundler.rb +162 -68
- data/lib/bundler/build_metadata.rb +53 -0
- data/lib/bundler/capistrano.rb +5 -0
- data/lib/bundler/cli.rb +360 -118
- data/lib/bundler/cli/add.rb +35 -0
- data/lib/bundler/cli/binstubs.rb +18 -10
- data/lib/bundler/cli/cache.rb +6 -5
- data/lib/bundler/cli/check.rb +4 -6
- data/lib/bundler/cli/clean.rb +6 -7
- data/lib/bundler/cli/common.rb +47 -1
- data/lib/bundler/cli/config.rb +26 -7
- data/lib/bundler/cli/console.rb +2 -1
- data/lib/bundler/cli/doctor.rb +63 -18
- data/lib/bundler/cli/exec.rb +12 -5
- data/lib/bundler/cli/gem.rb +59 -21
- data/lib/bundler/cli/info.rb +50 -0
- data/lib/bundler/cli/init.rb +21 -7
- data/lib/bundler/cli/inject.rb +13 -4
- data/lib/bundler/cli/install.rb +72 -101
- data/lib/bundler/cli/issue.rb +40 -0
- data/lib/bundler/cli/list.rb +58 -0
- data/lib/bundler/cli/lock.rb +9 -6
- data/lib/bundler/cli/open.rb +4 -3
- data/lib/bundler/cli/outdated.rb +175 -60
- data/lib/bundler/cli/package.rb +9 -6
- data/lib/bundler/cli/platform.rb +2 -1
- data/lib/bundler/cli/plugin.rb +1 -0
- data/lib/bundler/cli/pristine.rb +47 -0
- data/lib/bundler/cli/remove.rb +18 -0
- data/lib/bundler/cli/show.rb +2 -2
- data/lib/bundler/cli/update.rb +44 -34
- data/lib/bundler/cli/viz.rb +5 -1
- data/lib/bundler/compact_index_client.rb +109 -0
- data/lib/bundler/compact_index_client/cache.rb +118 -0
- data/lib/bundler/compact_index_client/updater.rb +116 -0
- data/lib/bundler/compatibility_guard.rb +14 -0
- data/lib/bundler/constants.rb +1 -0
- data/lib/bundler/current_ruby.rb +17 -8
- data/lib/bundler/definition.rb +353 -182
- data/lib/bundler/dep_proxy.rb +3 -1
- data/lib/bundler/dependency.rb +22 -10
- data/lib/bundler/deployment.rb +1 -1
- data/lib/bundler/deprecate.rb +15 -3
- data/lib/bundler/dsl.rb +122 -64
- data/lib/bundler/endpoint_specification.rb +13 -3
- data/lib/bundler/env.rb +110 -38
- data/lib/bundler/environment_preserver.rb +27 -6
- data/lib/bundler/errors.rb +24 -0
- data/lib/bundler/feature_flag.rb +74 -0
- data/lib/bundler/fetcher.rb +18 -11
- data/lib/bundler/fetcher/base.rb +1 -0
- data/lib/bundler/fetcher/compact_index.rb +7 -5
- data/lib/bundler/fetcher/dependency.rb +3 -2
- data/lib/bundler/fetcher/downloader.rb +25 -7
- data/lib/bundler/fetcher/index.rb +3 -2
- data/lib/bundler/friendly_errors.rb +33 -7
- data/lib/bundler/gem_helper.rb +25 -11
- data/lib/bundler/gem_helpers.rb +70 -1
- data/lib/bundler/gem_remote_fetcher.rb +1 -0
- data/lib/bundler/gem_tasks.rb +1 -0
- data/lib/bundler/gem_version_promoter.rb +17 -2
- data/lib/bundler/gemdeps.rb +29 -0
- data/lib/bundler/graph.rb +1 -0
- data/lib/bundler/index.rb +28 -15
- data/lib/bundler/injector.rb +216 -33
- data/lib/bundler/inline.rb +12 -12
- data/lib/bundler/installer.rb +139 -53
- data/lib/bundler/installer/gem_installer.rb +15 -5
- data/lib/bundler/installer/parallel_installer.rb +113 -28
- data/lib/bundler/installer/standalone.rb +1 -0
- data/lib/bundler/lazy_specification.rb +31 -3
- data/lib/bundler/lockfile_generator.rb +95 -0
- data/lib/bundler/lockfile_parser.rb +50 -37
- data/lib/bundler/match_platform.rb +13 -3
- data/lib/bundler/mirror.rb +10 -5
- data/lib/bundler/plugin.rb +22 -8
- data/lib/bundler/plugin/api.rb +2 -1
- data/lib/bundler/plugin/api/source.rb +17 -4
- data/lib/bundler/plugin/events.rb +61 -0
- data/lib/bundler/plugin/index.rb +9 -2
- data/lib/bundler/plugin/installer.rb +7 -6
- data/lib/bundler/plugin/source_list.rb +7 -8
- data/lib/bundler/process_lock.rb +24 -0
- data/lib/bundler/psyched_yaml.rb +10 -0
- data/lib/bundler/remote_specification.rb +30 -1
- data/lib/bundler/resolver.rb +187 -194
- data/lib/bundler/resolver/spec_group.rb +106 -0
- data/lib/bundler/retry.rb +5 -1
- data/lib/bundler/ruby_dsl.rb +1 -0
- data/lib/bundler/ruby_version.rb +12 -2
- data/lib/bundler/rubygems_ext.rb +23 -8
- data/lib/bundler/rubygems_gem_installer.rb +90 -0
- data/lib/bundler/rubygems_integration.rb +193 -70
- data/lib/bundler/runtime.rb +39 -22
- data/lib/bundler/settings.rb +245 -85
- data/lib/bundler/settings/validator.rb +102 -0
- data/lib/bundler/setup.rb +4 -7
- data/lib/bundler/shared_helpers.rb +183 -40
- data/lib/bundler/similarity_detector.rb +1 -0
- data/lib/bundler/source.rb +58 -1
- data/lib/bundler/source/gemspec.rb +1 -0
- data/lib/bundler/source/git.rb +52 -23
- data/lib/bundler/source/git/git_proxy.rb +30 -14
- data/lib/bundler/source/metadata.rb +62 -0
- data/lib/bundler/source/path.rb +42 -16
- data/lib/bundler/source/path/installer.rb +4 -2
- data/lib/bundler/source/rubygems.rb +171 -82
- data/lib/bundler/source/rubygems/remote.rb +12 -2
- data/lib/bundler/source_list.rb +75 -15
- data/lib/bundler/spec_set.rb +67 -32
- data/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
- data/lib/bundler/stub_specification.rb +86 -2
- data/lib/bundler/templates/.document +1 -0
- data/lib/bundler/templates/Executable +13 -1
- data/lib/bundler/templates/Executable.bundler +105 -0
- data/lib/bundler/templates/Executable.standalone +5 -5
- data/lib/bundler/templates/Gemfile +3 -0
- data/lib/bundler/templates/gems.rb +8 -0
- data/lib/bundler/templates/newgem/Gemfile.tt +4 -2
- data/lib/bundler/templates/newgem/LICENSE.txt.tt +1 -1
- data/lib/bundler/templates/newgem/README.md.tt +14 -8
- data/lib/bundler/templates/newgem/Rakefile.tt +5 -5
- data/lib/bundler/templates/newgem/bin/console.tt +1 -1
- data/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +4 -4
- data/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +3 -3
- data/lib/bundler/templates/newgem/gitignore.tt +5 -1
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +7 -6
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +4 -4
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +21 -12
- data/lib/bundler/templates/newgem/rspec.tt +1 -0
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -3
- data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +13 -1
- data/lib/bundler/templates/newgem/test/newgem_test.rb.tt +1 -1
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +3 -3
- data/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +2 -0
- data/lib/bundler/ui.rb +1 -0
- data/lib/bundler/ui/rg_proxy.rb +1 -0
- data/lib/bundler/ui/shell.rb +30 -10
- data/lib/bundler/ui/silent.rb +21 -1
- data/lib/bundler/uri_credentials_filter.rb +1 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +26 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +2 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +12 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +3 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +11 -3
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +13 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +3 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +18 -5
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +499 -128
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/faster.rb +1 -0
- data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent.rb +27 -24
- data/lib/bundler/vendor/{net → net-http-persistent/lib/net}/http/persistent/ssl_reuse.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +46 -21
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +24 -22
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +16 -8
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +66 -18
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +17 -15
- data/lib/bundler/vendor/thor/lib/thor/base.rb +55 -32
- data/lib/bundler/vendor/thor/lib/thor/command.rb +13 -11
- data/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +21 -1
- data/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +7 -5
- data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +94 -63
- data/lib/bundler/vendor/thor/lib/thor/error.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/group.rb +13 -13
- data/lib/bundler/vendor/thor/lib/thor/invocation.rb +4 -5
- data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
- data/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +4 -7
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +16 -16
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +42 -21
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +13 -10
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +31 -29
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +49 -33
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendored_fileutils.rb +9 -0
- data/lib/bundler/vendored_molinillo.rb +1 -0
- data/lib/bundler/vendored_persistent.rb +43 -3
- data/lib/bundler/vendored_thor.rb +6 -2
- data/lib/bundler/version.rb +19 -2
- data/lib/bundler/version_ranges.rb +76 -0
- data/lib/bundler/vlad.rb +5 -0
- data/lib/bundler/worker.rb +30 -6
- data/lib/bundler/yaml_serializer.rb +4 -4
- data/man/bundle-add.1 +58 -0
- data/man/bundle-add.1.txt +52 -0
- data/man/bundle-add.ronn +40 -0
- data/{lib/bundler/man/bundle-binstubs → man/bundle-binstubs.1} +11 -1
- data/man/bundle-binstubs.1.txt +48 -0
- data/man/bundle-binstubs.ronn +15 -1
- data/man/bundle-check.1 +31 -0
- data/man/bundle-check.1.txt +33 -0
- data/man/bundle-check.ronn +26 -0
- data/man/bundle-clean.1 +24 -0
- data/man/bundle-clean.1.txt +26 -0
- data/man/bundle-clean.ronn +18 -0
- data/man/bundle-config.1 +497 -0
- data/man/bundle-config.1.txt +529 -0
- data/man/bundle-config.ronn +233 -61
- data/man/bundle-doctor.1 +44 -0
- data/man/bundle-doctor.1.txt +44 -0
- data/man/bundle-doctor.ronn +33 -0
- data/{lib/bundler/man/bundle-exec → man/bundle-exec.1} +6 -3
- data/man/bundle-exec.1.txt +178 -0
- data/man/bundle-exec.ronn +10 -3
- data/{lib/bundler/man/bundle-gem → man/bundle-gem.1} +4 -4
- data/man/bundle-gem.1.txt +91 -0
- data/man/bundle-gem.ronn +3 -2
- data/man/bundle-info.1 +20 -0
- data/man/bundle-info.1.txt +21 -0
- data/man/bundle-info.ronn +17 -0
- data/man/bundle-init.1 +25 -0
- data/man/bundle-init.1.txt +34 -0
- data/man/bundle-init.ronn +29 -0
- data/man/bundle-inject.1 +33 -0
- data/man/bundle-inject.1.txt +32 -0
- data/man/bundle-inject.ronn +22 -0
- data/{lib/bundler/man/bundle-install → man/bundle-install.1} +32 -29
- data/man/bundle-install.1.txt +396 -0
- data/man/bundle-install.ronn +45 -36
- data/man/bundle-list.1 +50 -0
- data/man/bundle-list.1.txt +43 -0
- data/man/bundle-list.ronn +33 -0
- data/{lib/bundler/man/bundle-lock → man/bundle-lock.1} +43 -2
- data/man/bundle-lock.1.txt +93 -0
- data/man/bundle-lock.ronn +47 -0
- data/man/bundle-open.1 +32 -0
- data/man/bundle-open.1.txt +29 -0
- data/man/bundle-open.ronn +19 -0
- data/man/bundle-outdated.1 +155 -0
- data/man/bundle-outdated.1.txt +131 -0
- data/man/bundle-outdated.ronn +111 -0
- data/{lib/bundler/man/bundle-package → man/bundle-package.1} +6 -3
- data/man/bundle-package.1.txt +79 -0
- data/man/bundle-package.ronn +7 -2
- data/{lib/bundler/man/bundle-platform → man/bundle-platform.1} +1 -1
- data/man/bundle-platform.1.txt +57 -0
- data/man/bundle-pristine.1 +34 -0
- data/man/bundle-pristine.1.txt +44 -0
- data/man/bundle-pristine.ronn +34 -0
- data/man/bundle-remove.1 +31 -0
- data/man/bundle-remove.1.txt +34 -0
- data/man/bundle-remove.ronn +23 -0
- data/man/bundle-show.1 +23 -0
- data/man/bundle-show.1.txt +27 -0
- data/man/bundle-show.ronn +21 -0
- data/man/bundle-update.1 +394 -0
- data/man/bundle-update.1.txt +391 -0
- data/man/bundle-update.ronn +172 -16
- data/man/bundle-viz.1 +39 -0
- data/man/bundle-viz.1.txt +39 -0
- data/man/bundle-viz.ronn +30 -0
- data/{lib/bundler/man/bundle → man/bundle.1} +44 -28
- data/man/bundle.1.txt +116 -0
- data/man/bundle.ronn +39 -27
- data/{lib/bundler/man → man}/gemfile.5 +67 -84
- data/man/gemfile.5.ronn +77 -55
- data/man/gemfile.5.txt +653 -0
- data/man/index.txt +25 -8
- metadata +118 -58
- data/.codeclimate.yml +0 -25
- data/.gitignore +0 -16
- data/.rspec +0 -3
- data/.rubocop.yml +0 -128
- data/.rubocop_todo.yml +0 -248
- data/.travis.yml +0 -108
- data/CODE_OF_CONDUCT.md +0 -42
- data/CONTRIBUTING.md +0 -36
- data/DEVELOPMENT.md +0 -148
- data/ISSUES.md +0 -100
- data/Rakefile +0 -333
- data/bin/rake +0 -19
- data/bin/rspec +0 -15
- data/bin/rubocop +0 -17
- data/bin/with_rubygems +0 -39
- data/lib/bundler/man/bundle-binstubs.txt +0 -33
- data/lib/bundler/man/bundle-config +0 -254
- data/lib/bundler/man/bundle-config.txt +0 -282
- data/lib/bundler/man/bundle-exec.txt +0 -171
- data/lib/bundler/man/bundle-gem.txt +0 -90
- data/lib/bundler/man/bundle-install.txt +0 -385
- data/lib/bundler/man/bundle-lock.txt +0 -52
- data/lib/bundler/man/bundle-package.txt +0 -74
- data/lib/bundler/man/bundle-platform.txt +0 -57
- data/lib/bundler/man/bundle-update +0 -221
- data/lib/bundler/man/bundle-update.txt +0 -227
- data/lib/bundler/man/bundle.txt +0 -104
- data/lib/bundler/man/gemfile.5.txt +0 -636
- data/lib/bundler/postit_trampoline.rb +0 -68
- data/lib/bundler/vendor/compact_index_client/lib/compact_index_client.rb +0 -79
- data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/cache.rb +0 -112
- data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/updater.rb +0 -80
- data/lib/bundler/vendor/compact_index_client/lib/compact_index_client/version.rb +0 -4
- data/lib/bundler/vendor/postit/lib/postit.rb +0 -15
- data/lib/bundler/vendor/postit/lib/postit/environment.rb +0 -44
- data/lib/bundler/vendor/postit/lib/postit/installer.rb +0 -28
- data/lib/bundler/vendor/postit/lib/postit/parser.rb +0 -21
- data/lib/bundler/vendor/postit/lib/postit/setup.rb +0 -12
- data/lib/bundler/vendor/postit/lib/postit/version.rb +0 -3
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Bundler::Molinillo
|
3
4
|
# A state that a {Resolution} can be in
|
4
5
|
# @attr [String] name the name of the current requirement
|
@@ -7,7 +8,8 @@ module Bundler::Molinillo
|
|
7
8
|
# @attr [Object] requirement the current requirement
|
8
9
|
# @attr [Object] possibilities the possibilities to satisfy the current requirement
|
9
10
|
# @attr [Integer] depth the depth of the resolution
|
10
|
-
# @attr [
|
11
|
+
# @attr [Hash] conflicts unresolved conflicts, indexed by dependency name
|
12
|
+
# @attr [Array<UnwindDetails>] unused_unwind_options unwinds for previous conflicts that weren't explored
|
11
13
|
ResolutionState = Struct.new(
|
12
14
|
:name,
|
13
15
|
:requirements,
|
@@ -15,14 +17,15 @@ module Bundler::Molinillo
|
|
15
17
|
:requirement,
|
16
18
|
:possibilities,
|
17
19
|
:depth,
|
18
|
-
:conflicts
|
20
|
+
:conflicts,
|
21
|
+
:unused_unwind_options
|
19
22
|
)
|
20
23
|
|
21
24
|
class ResolutionState
|
22
25
|
# Returns an empty resolution state
|
23
26
|
# @return [ResolutionState] an empty state
|
24
27
|
def self.empty
|
25
|
-
new(nil, [], DependencyGraph.new, nil, nil, 0,
|
28
|
+
new(nil, [], DependencyGraph.new, nil, nil, 0, {}, [])
|
26
29
|
end
|
27
30
|
end
|
28
31
|
|
@@ -40,7 +43,8 @@ module Bundler::Molinillo
|
|
40
43
|
requirement,
|
41
44
|
[possibilities.pop],
|
42
45
|
depth + 1,
|
43
|
-
conflicts.dup
|
46
|
+
conflicts.dup,
|
47
|
+
unused_unwind_options.dup
|
44
48
|
).tap do |state|
|
45
49
|
state.activated.tag(state)
|
46
50
|
end
|
@@ -4,7 +4,7 @@ begin
|
|
4
4
|
rescue LoadError
|
5
5
|
# net/https or openssl
|
6
6
|
end if RUBY_VERSION < '1.9' # but only for 1.8
|
7
|
-
require 'net/http/faster'
|
7
|
+
require 'bundler/vendor/net-http-persistent/lib/net/http/faster'
|
8
8
|
require 'uri'
|
9
9
|
require 'cgi' # for escaping
|
10
10
|
|
@@ -18,27 +18,27 @@ autoload :OpenSSL, 'openssl'
|
|
18
18
|
##
|
19
19
|
# Persistent connections for Net::HTTP
|
20
20
|
#
|
21
|
-
# Net::HTTP::Persistent maintains persistent connections across all the
|
21
|
+
# Bundler::Persistent::Net::HTTP::Persistent maintains persistent connections across all the
|
22
22
|
# servers you wish to talk to. For each host:port you communicate with a
|
23
23
|
# single persistent connection is created.
|
24
24
|
#
|
25
|
-
# Multiple Net::HTTP::Persistent objects will share the same set of
|
25
|
+
# Multiple Bundler::Persistent::Net::HTTP::Persistent objects will share the same set of
|
26
26
|
# connections.
|
27
27
|
#
|
28
28
|
# For each thread you start a new connection will be created. A
|
29
|
-
# Net::HTTP::Persistent connection will not be shared across threads.
|
29
|
+
# Bundler::Persistent::Net::HTTP::Persistent connection will not be shared across threads.
|
30
30
|
#
|
31
31
|
# You can shut down the HTTP connections when done by calling #shutdown. You
|
32
|
-
# should name your Net::HTTP::Persistent object if you intend to call this
|
32
|
+
# should name your Bundler::Persistent::Net::HTTP::Persistent object if you intend to call this
|
33
33
|
# method.
|
34
34
|
#
|
35
35
|
# Example:
|
36
36
|
#
|
37
|
-
# require 'net/http/persistent'
|
37
|
+
# require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'
|
38
38
|
#
|
39
39
|
# uri = URI 'http://example.com/awesome/web/service'
|
40
40
|
#
|
41
|
-
# http = Net::HTTP::Persistent.new 'my_app_name'
|
41
|
+
# http = Bundler::Persistent::Net::HTTP::Persistent.new 'my_app_name'
|
42
42
|
#
|
43
43
|
# # perform a GET
|
44
44
|
# response = http.request uri
|
@@ -149,19 +149,19 @@ autoload :OpenSSL, 'openssl'
|
|
149
149
|
#
|
150
150
|
# The recommended way to handle non-idempotent requests is the following:
|
151
151
|
#
|
152
|
-
# require 'net/http/persistent'
|
152
|
+
# require 'bundler/vendor/net-http-persistent/lib/net/http/persistent'
|
153
153
|
#
|
154
154
|
# uri = URI 'http://example.com/awesome/web/service'
|
155
155
|
# post_uri = uri + 'create'
|
156
156
|
#
|
157
|
-
# http = Net::HTTP::Persistent.new 'my_app_name'
|
157
|
+
# http = Bundler::Persistent::Net::HTTP::Persistent.new 'my_app_name'
|
158
158
|
#
|
159
159
|
# post = Net::HTTP::Post.new post_uri.path
|
160
160
|
# # ... fill in POST request
|
161
161
|
#
|
162
162
|
# begin
|
163
163
|
# response = http.request post_uri, post
|
164
|
-
# rescue Net::HTTP::Persistent::Error
|
164
|
+
# rescue Bundler::Persistent::Net::HTTP::Persistent::Error
|
165
165
|
#
|
166
166
|
# # POST failed, make a new request to verify the server did not process
|
167
167
|
# # the request
|
@@ -178,7 +178,7 @@ autoload :OpenSSL, 'openssl'
|
|
178
178
|
#
|
179
179
|
# === Connection Termination
|
180
180
|
#
|
181
|
-
# If you are done using the Net::HTTP::Persistent instance you may shut down
|
181
|
+
# If you are done using the Bundler::Persistent::Net::HTTP::Persistent instance you may shut down
|
182
182
|
# all the connections in the current thread with #shutdown. This is not
|
183
183
|
# recommended for normal use, it should only be used when it will be several
|
184
184
|
# minutes before you make another HTTP request.
|
@@ -188,7 +188,7 @@ autoload :OpenSSL, 'openssl'
|
|
188
188
|
# Ruby will automatically garbage collect and shutdown your HTTP connections
|
189
189
|
# when the thread terminates.
|
190
190
|
|
191
|
-
class Net::HTTP::Persistent
|
191
|
+
class Bundler::Persistent::Net::HTTP::Persistent
|
192
192
|
|
193
193
|
##
|
194
194
|
# The beginning of Time
|
@@ -201,9 +201,9 @@ class Net::HTTP::Persistent
|
|
201
201
|
HAVE_OPENSSL = defined? OpenSSL::SSL # :nodoc:
|
202
202
|
|
203
203
|
##
|
204
|
-
# The version of Net::HTTP::Persistent you are using
|
204
|
+
# The version of Bundler::Persistent::Net::HTTP::Persistent you are using
|
205
205
|
|
206
|
-
VERSION = '2.9.
|
206
|
+
VERSION = '2.9.4'
|
207
207
|
|
208
208
|
##
|
209
209
|
# Exceptions rescued for automatic retry on ruby 2.0.0. This overlaps with
|
@@ -221,7 +221,7 @@ class Net::HTTP::Persistent
|
|
221
221
|
].compact
|
222
222
|
|
223
223
|
##
|
224
|
-
# Error class for errors raised by Net::HTTP::Persistent. Various
|
224
|
+
# Error class for errors raised by Bundler::Persistent::Net::HTTP::Persistent. Various
|
225
225
|
# SystemCallErrors are re-raised with a human-readable message under this
|
226
226
|
# class.
|
227
227
|
|
@@ -241,7 +241,7 @@ class Net::HTTP::Persistent
|
|
241
241
|
# NOTE: This may not work on ruby > 1.9.
|
242
242
|
|
243
243
|
def self.detect_idle_timeout uri, max = 10
|
244
|
-
uri = URI uri unless
|
244
|
+
uri = URI uri unless URI::Generic === uri
|
245
245
|
uri += '/'
|
246
246
|
|
247
247
|
req = Net::HTTP::Head.new uri.request_uri
|
@@ -257,7 +257,7 @@ class Net::HTTP::Persistent
|
|
257
257
|
|
258
258
|
$stderr.puts "HEAD #{uri} => #{response.code}" if $DEBUG
|
259
259
|
|
260
|
-
unless
|
260
|
+
unless Net::HTTPOK === response then
|
261
261
|
raise Error, "bad response code #{response.code} detecting idle timeout"
|
262
262
|
end
|
263
263
|
|
@@ -463,7 +463,7 @@ class Net::HTTP::Persistent
|
|
463
463
|
attr_accessor :retry_change_requests
|
464
464
|
|
465
465
|
##
|
466
|
-
# Creates a new Net::HTTP::Persistent.
|
466
|
+
# Creates a new Bundler::Persistent::Net::HTTP::Persistent.
|
467
467
|
#
|
468
468
|
# Set +name+ to keep your connections apart from everybody else's. Not
|
469
469
|
# required currently, but highly recommended. Your library name should be
|
@@ -594,7 +594,7 @@ class Net::HTTP::Persistent
|
|
594
594
|
use_ssl = uri.scheme.downcase == 'https'
|
595
595
|
|
596
596
|
if use_ssl then
|
597
|
-
raise Net::HTTP::Persistent::Error, 'OpenSSL is not available' unless
|
597
|
+
raise Bundler::Persistent::Net::HTTP::Persistent::Error, 'OpenSSL is not available' unless
|
598
598
|
HAVE_OPENSSL
|
599
599
|
|
600
600
|
ssl_generation = @ssl_generation
|
@@ -616,6 +616,8 @@ class Net::HTTP::Persistent
|
|
616
616
|
if @proxy_uri and not proxy_bypass? uri.host, uri.port then
|
617
617
|
connection_id << @proxy_connection_id
|
618
618
|
net_http_args.concat @proxy_args
|
619
|
+
else
|
620
|
+
net_http_args.concat [nil, nil, nil, nil]
|
619
621
|
end
|
620
622
|
|
621
623
|
connection = connections[connection_id]
|
@@ -728,7 +730,7 @@ class Net::HTTP::Persistent
|
|
728
730
|
} or not @reuse_ssl_sessions then
|
729
731
|
Net::HTTP
|
730
732
|
else
|
731
|
-
Net::HTTP::Persistent::SSLReuse
|
733
|
+
Bundler::Persistent::Net::HTTP::Persistent::SSLReuse
|
732
734
|
end
|
733
735
|
end
|
734
736
|
|
@@ -812,7 +814,7 @@ class Net::HTTP::Persistent
|
|
812
814
|
|
813
815
|
##
|
814
816
|
# Pipelines +requests+ to the HTTP server at +uri+ yielding responses if a
|
815
|
-
# block is given. Returns all responses
|
817
|
+
# block is given. Returns all responses received.
|
816
818
|
#
|
817
819
|
# See
|
818
820
|
# Net::HTTP::Pipeline[http://docs.seattlerb.org/net-http-pipeline/Net/HTTP/Pipeline.html]
|
@@ -1065,7 +1067,7 @@ class Net::HTTP::Persistent
|
|
1065
1067
|
# Returns the request.
|
1066
1068
|
|
1067
1069
|
def request_setup req_or_uri # :nodoc:
|
1068
|
-
req = if
|
1070
|
+
req = if URI === req_or_uri then
|
1069
1071
|
Net::HTTP::Get.new req_or_uri.request_uri
|
1070
1072
|
else
|
1071
1073
|
req_or_uri
|
@@ -1092,7 +1094,7 @@ class Net::HTTP::Persistent
|
|
1092
1094
|
#
|
1093
1095
|
# Uses the current thread by default.
|
1094
1096
|
#
|
1095
|
-
# If you've used Net::HTTP::Persistent across multiple threads you should
|
1097
|
+
# If you've used Bundler::Persistent::Net::HTTP::Persistent across multiple threads you should
|
1096
1098
|
# call this in each thread when you're done making HTTP requests.
|
1097
1099
|
#
|
1098
1100
|
# *NOTE*: Calling shutdown for another thread can be dangerous!
|
@@ -1227,4 +1229,5 @@ application:
|
|
1227
1229
|
|
1228
1230
|
end
|
1229
1231
|
|
1230
|
-
require 'net/http/persistent/ssl_reuse'
|
1232
|
+
require 'bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse'
|
1233
|
+
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# This class is an implementation detail and is subject to change or removal
|
8
8
|
# at any time.
|
9
9
|
|
10
|
-
class Net::HTTP::Persistent::SSLReuse < Net::HTTP
|
10
|
+
class Bundler::Persistent::Net::HTTP::Persistent::SSLReuse < Net::HTTP
|
11
11
|
|
12
12
|
@is_proxy_class = false
|
13
13
|
@proxy_addr = nil
|
@@ -126,3 +126,4 @@ class Net::HTTP::Persistent::SSLReuse < Net::HTTP
|
|
126
126
|
private :connect
|
127
127
|
|
128
128
|
end
|
129
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "set"
|
2
2
|
require "bundler/vendor/thor/lib/thor/base"
|
3
3
|
|
4
|
-
class Bundler::Thor
|
4
|
+
class Bundler::Thor
|
5
5
|
class << self
|
6
6
|
# Allows for custom "Command" package naming.
|
7
7
|
#
|
@@ -9,7 +9,7 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
9
9
|
# name<String>
|
10
10
|
# options<Hash>
|
11
11
|
#
|
12
|
-
def package_name(name,
|
12
|
+
def package_name(name, _ = {})
|
13
13
|
@package_name = name.nil? || name == "" ? nil : name
|
14
14
|
end
|
15
15
|
|
@@ -57,7 +57,9 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
57
57
|
command.usage = usage if usage
|
58
58
|
command.description = description if description
|
59
59
|
else
|
60
|
-
@usage
|
60
|
+
@usage = usage
|
61
|
+
@desc = description
|
62
|
+
@hide = options[:hide] || false
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
@@ -170,7 +172,7 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
170
172
|
shell.say "Usage:"
|
171
173
|
shell.say " #{banner(command)}"
|
172
174
|
shell.say
|
173
|
-
class_options_help(shell, nil => command.options.
|
175
|
+
class_options_help(shell, nil => command.options.values)
|
174
176
|
if command.long_description
|
175
177
|
shell.say "Description:"
|
176
178
|
shell.print_wrapped(command.long_description, :indent => 2)
|
@@ -231,8 +233,12 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
231
233
|
|
232
234
|
define_method(subcommand) do |*args|
|
233
235
|
args, opts = Bundler::Thor::Arguments.split(args)
|
234
|
-
args
|
235
|
-
|
236
|
+
invoke_args = [args, opts, {:invoked_via_subcommand => true, :class_options => options}]
|
237
|
+
invoke_args.unshift "help" if opts.delete("--help") || opts.delete("-h")
|
238
|
+
invoke subcommand_class, *invoke_args
|
239
|
+
end
|
240
|
+
subcommand_class.commands.each do |_meth, command|
|
241
|
+
command.ancestor_name = subcommand
|
236
242
|
end
|
237
243
|
end
|
238
244
|
alias_method :subtask, :subcommand
|
@@ -319,11 +325,31 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
319
325
|
command && stop_on_unknown_option.include?(command.name.to_sym)
|
320
326
|
end
|
321
327
|
|
328
|
+
# Disable the check for required options for the given commands.
|
329
|
+
# This is useful if you have a command that does not need the required options
|
330
|
+
# to work, like help.
|
331
|
+
#
|
332
|
+
# ==== Parameters
|
333
|
+
# Symbol ...:: A list of commands that should be affected.
|
334
|
+
def disable_required_check!(*command_names)
|
335
|
+
disable_required_check.merge(command_names)
|
336
|
+
end
|
337
|
+
|
338
|
+
def disable_required_check?(command) #:nodoc:
|
339
|
+
command && disable_required_check.include?(command.name.to_sym)
|
340
|
+
end
|
341
|
+
|
322
342
|
protected
|
343
|
+
|
323
344
|
def stop_on_unknown_option #:nodoc:
|
324
345
|
@stop_on_unknown_option ||= Set.new
|
325
346
|
end
|
326
347
|
|
348
|
+
# help command has the required check disabled by default.
|
349
|
+
def disable_required_check #:nodoc:
|
350
|
+
@disable_required_check ||= Set.new([:help])
|
351
|
+
end
|
352
|
+
|
327
353
|
# The method responsible for dispatching given the args.
|
328
354
|
def dispatch(meth, given_args, given_opts, config) #:nodoc: # rubocop:disable MethodLength
|
329
355
|
meth ||= retrieve_command_name(given_args)
|
@@ -345,12 +371,14 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
345
371
|
opts.clear
|
346
372
|
end
|
347
373
|
else
|
348
|
-
args
|
374
|
+
args = given_args
|
375
|
+
opts = nil
|
349
376
|
command = dynamic_command_class.new(meth)
|
350
377
|
end
|
351
378
|
|
352
379
|
opts = given_opts || opts || []
|
353
|
-
config
|
380
|
+
config[:current_command] = command
|
381
|
+
config[:command_options] = command.options
|
354
382
|
|
355
383
|
instance = new(args, opts, config)
|
356
384
|
yield instance if block_given?
|
@@ -380,6 +408,7 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
380
408
|
@usage ||= nil
|
381
409
|
@desc ||= nil
|
382
410
|
@long_desc ||= nil
|
411
|
+
@hide ||= nil
|
383
412
|
|
384
413
|
if @usage && @desc
|
385
414
|
base_class = @hide ? Bundler::Thor::HiddenCommand : Bundler::Thor::Command
|
@@ -389,8 +418,8 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
389
418
|
elsif all_commands[meth] || meth == "method_missing"
|
390
419
|
true
|
391
420
|
else
|
392
|
-
puts "[WARNING] Attempted to create command #{meth.inspect} without usage or description. "
|
393
|
-
"Call desc if you want this method to be available as command or declare it inside a "
|
421
|
+
puts "[WARNING] Attempted to create command #{meth.inspect} without usage or description. " \
|
422
|
+
"Call desc if you want this method to be available as command or declare it inside a " \
|
394
423
|
"no_commands{} block. Invoked from #{caller[1].inspect}."
|
395
424
|
false
|
396
425
|
end
|
@@ -405,11 +434,7 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
405
434
|
# Retrieve the command name from given args.
|
406
435
|
def retrieve_command_name(args) #:nodoc:
|
407
436
|
meth = args.first.to_s unless args.empty?
|
408
|
-
if meth && (map[meth] || meth !~ /^\-/)
|
409
|
-
args.shift
|
410
|
-
else
|
411
|
-
nil
|
412
|
-
end
|
437
|
+
args.shift if meth && (map[meth] || meth !~ /^\-/)
|
413
438
|
end
|
414
439
|
alias_method :retrieve_task_name, :retrieve_command_name
|
415
440
|
|
@@ -421,20 +446,20 @@ class Bundler::Thor # rubocop:disable ClassLength
|
|
421
446
|
# +normalize_command_name+ also converts names like +animal-prison+
|
422
447
|
# into +animal_prison+.
|
423
448
|
def normalize_command_name(meth) #:nodoc:
|
424
|
-
return default_command.to_s.
|
449
|
+
return default_command.to_s.tr("-", "_") unless meth
|
425
450
|
|
426
451
|
possibilities = find_command_possibilities(meth)
|
427
|
-
if possibilities.size > 1
|
428
|
-
|
429
|
-
|
430
|
-
meth
|
452
|
+
raise AmbiguousTaskError, "Ambiguous command #{meth} matches [#{possibilities.join(', ')}]" if possibilities.size > 1
|
453
|
+
|
454
|
+
if possibilities.empty?
|
455
|
+
meth ||= default_command
|
431
456
|
elsif map[meth]
|
432
457
|
meth = map[meth]
|
433
458
|
else
|
434
459
|
meth = possibilities.first
|
435
460
|
end
|
436
461
|
|
437
|
-
meth.to_s.
|
462
|
+
meth.to_s.tr("-", "_") # treat foo-bar as foo_bar
|
438
463
|
end
|
439
464
|
alias_method :normalize_task_name, :normalize_command_name
|
440
465
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require "fileutils"
|
2
1
|
require "uri"
|
3
2
|
require "bundler/vendor/thor/lib/thor/core_ext/io_binary_read"
|
4
3
|
require "bundler/vendor/thor/lib/thor/actions/create_file"
|
@@ -73,14 +72,15 @@ class Bundler::Thor
|
|
73
72
|
#
|
74
73
|
def initialize(args = [], options = {}, config = {})
|
75
74
|
self.behavior = case config[:behavior].to_s
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
75
|
+
when "force", "skip"
|
76
|
+
_cleanup_options_and_set(options, config[:behavior])
|
77
|
+
:invoke
|
78
|
+
when "revoke"
|
79
|
+
:revoke
|
80
|
+
else
|
81
|
+
:invoke
|
82
|
+
end
|
83
|
+
|
84
84
|
super
|
85
85
|
self.destination_root = config[:destination_root]
|
86
86
|
end
|
@@ -129,7 +129,7 @@ class Bundler::Thor
|
|
129
129
|
|
130
130
|
# Receives a file or directory and search for it in the source paths.
|
131
131
|
#
|
132
|
-
def find_in_source_paths(file)
|
132
|
+
def find_in_source_paths(file)
|
133
133
|
possible_files = [file, file + TEMPLATE_EXTNAME]
|
134
134
|
relative_root = relative_to_original_destination_root(destination_root, false)
|
135
135
|
|
@@ -140,19 +140,19 @@ class Bundler::Thor
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
|
-
message = "Could not find #{file.inspect} in any of your source paths. "
|
143
|
+
message = "Could not find #{file.inspect} in any of your source paths. ".dup
|
144
144
|
|
145
145
|
unless self.class.source_root
|
146
146
|
message << "Please invoke #{self.class.name}.source_root(PATH) with the PATH containing your templates. "
|
147
147
|
end
|
148
148
|
|
149
|
-
if source_paths.empty?
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
message << if source_paths.empty?
|
150
|
+
"Currently you have no source paths."
|
151
|
+
else
|
152
|
+
"Your current source paths are: \n#{source_paths.join("\n")}"
|
153
|
+
end
|
154
154
|
|
155
|
-
|
155
|
+
raise Error, message
|
156
156
|
end
|
157
157
|
|
158
158
|
# Do something in the root or on a provided subfolder. If a relative path
|
@@ -174,6 +174,7 @@ class Bundler::Thor
|
|
174
174
|
|
175
175
|
# If the directory doesnt exist and we're not pretending
|
176
176
|
if !File.exist?(destination_root) && !pretend
|
177
|
+
require "fileutils"
|
177
178
|
FileUtils.mkdir_p(destination_root)
|
178
179
|
end
|
179
180
|
|
@@ -181,6 +182,7 @@ class Bundler::Thor
|
|
181
182
|
# In pretend mode, just yield down to the block
|
182
183
|
block.arity == 1 ? yield(destination_root) : yield
|
183
184
|
else
|
185
|
+
require "fileutils"
|
184
186
|
FileUtils.cd(destination_root) { block.arity == 1 ? yield(destination_root) : yield }
|
185
187
|
end
|
186
188
|
|
@@ -214,10 +216,10 @@ class Bundler::Thor
|
|
214
216
|
say_status :apply, path, verbose
|
215
217
|
shell.padding += 1 if verbose
|
216
218
|
|
217
|
-
if is_uri
|
218
|
-
|
219
|
+
contents = if is_uri
|
220
|
+
open(path, "Accept" => "application/x-thor-template", &:read)
|
219
221
|
else
|
220
|
-
|
222
|
+
open(path, &:read)
|
221
223
|
end
|
222
224
|
|
223
225
|
instance_eval(contents, path)
|
@@ -251,7 +253,7 @@ class Bundler::Thor
|
|
251
253
|
say_status :run, desc, config.fetch(:verbose, true)
|
252
254
|
|
253
255
|
unless options[:pretend]
|
254
|
-
config[:capture] ? `#{command}` : system(
|
256
|
+
config[:capture] ? `#{command}` : system(command.to_s)
|
255
257
|
end
|
256
258
|
end
|
257
259
|
|
@@ -308,7 +310,7 @@ class Bundler::Thor
|
|
308
310
|
def _cleanup_options_and_set(options, key) #:nodoc:
|
309
311
|
case options
|
310
312
|
when Array
|
311
|
-
%w
|
313
|
+
%w(--force -f --skip -s).each { |i| options.delete(i) }
|
312
314
|
options << "--#{key}"
|
313
315
|
when Hash
|
314
316
|
[:force, :skip, "force", "skip"].each { |i| options.delete(i) }
|