rubygems-update 2.6.14 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +10 -7
- data/CONTRIBUTING.rdoc +53 -54
- data/History.txt +173 -9
- data/Manifest.txt +39 -11
- data/POLICIES.rdoc +3 -3
- data/README.md +72 -0
- data/Rakefile +30 -5
- data/appveyor.yml +29 -1
- data/bin/gem +1 -1
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +269 -9
- data/bundler/CODE_OF_CONDUCT.md +1 -1
- data/bundler/CONTRIBUTING.md +10 -29
- data/bundler/README.md +22 -10
- data/bundler/exe/bundle +5 -7
- data/bundler/exe/bundle_ruby +4 -3
- data/bundler/lib/bundler.rb +94 -74
- data/bundler/lib/bundler/build_metadata.rb +36 -0
- data/bundler/lib/bundler/capistrano.rb +5 -0
- data/bundler/lib/bundler/cli.rb +229 -66
- data/bundler/lib/bundler/cli/add.rb +25 -0
- data/bundler/lib/bundler/cli/binstubs.rb +9 -7
- data/bundler/lib/bundler/cli/cache.rb +5 -4
- data/bundler/lib/bundler/cli/check.rb +3 -5
- data/bundler/lib/bundler/cli/clean.rb +5 -6
- data/bundler/lib/bundler/cli/common.rb +18 -2
- data/bundler/lib/bundler/cli/config.rb +26 -7
- data/bundler/lib/bundler/cli/console.rb +2 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -0
- data/bundler/lib/bundler/cli/exec.rb +3 -2
- data/bundler/lib/bundler/cli/gem.rb +36 -15
- data/bundler/lib/bundler/cli/info.rb +50 -0
- data/bundler/lib/bundler/cli/init.rb +20 -7
- data/bundler/lib/bundler/cli/inject.rb +13 -4
- data/bundler/lib/bundler/cli/install.rb +61 -77
- data/bundler/lib/bundler/cli/issue.rb +40 -0
- data/bundler/lib/bundler/cli/list.rb +22 -0
- data/bundler/lib/bundler/cli/lock.rb +4 -2
- data/bundler/lib/bundler/cli/open.rb +2 -2
- data/bundler/lib/bundler/cli/outdated.rb +30 -28
- data/bundler/lib/bundler/cli/package.rb +9 -6
- data/bundler/lib/bundler/cli/platform.rb +1 -0
- data/bundler/lib/bundler/cli/plugin.rb +1 -0
- data/bundler/lib/bundler/cli/pristine.rb +43 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +32 -11
- data/bundler/lib/bundler/cli/viz.rb +5 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -0
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -2
- data/bundler/lib/bundler/compact_index_client/updater.rb +26 -7
- data/bundler/lib/bundler/compatibility_guard.rb +14 -0
- data/bundler/lib/bundler/constants.rb +1 -0
- data/bundler/lib/bundler/current_ruby.rb +8 -7
- data/bundler/lib/bundler/definition.rb +231 -159
- data/bundler/lib/bundler/dep_proxy.rb +2 -0
- data/bundler/lib/bundler/dependency.rb +6 -7
- data/bundler/lib/bundler/deployment.rb +1 -1
- data/bundler/lib/bundler/deprecate.rb +14 -3
- data/bundler/lib/bundler/dsl.rb +103 -62
- data/bundler/lib/bundler/endpoint_specification.rb +12 -2
- data/bundler/lib/bundler/env.rb +97 -36
- data/bundler/lib/bundler/environment_preserver.rb +27 -6
- data/bundler/lib/bundler/errors.rb +3 -1
- data/bundler/lib/bundler/feature_flag.rb +39 -4
- data/bundler/lib/bundler/fetcher.rb +15 -8
- data/bundler/lib/bundler/fetcher/base.rb +1 -0
- data/bundler/lib/bundler/fetcher/compact_index.rb +2 -12
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +4 -2
- data/bundler/lib/bundler/fetcher/index.rb +1 -0
- data/bundler/lib/bundler/friendly_errors.rb +5 -2
- data/bundler/lib/bundler/gem_helper.rb +23 -9
- data/bundler/lib/bundler/gem_helpers.rb +1 -0
- data/bundler/lib/bundler/gem_remote_fetcher.rb +1 -0
- data/bundler/lib/bundler/gem_tasks.rb +1 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +1 -0
- data/bundler/lib/bundler/gemdeps.rb +1 -0
- data/bundler/lib/bundler/graph.rb +1 -0
- data/bundler/lib/bundler/index.rb +19 -11
- data/bundler/lib/bundler/injector.rb +51 -27
- data/bundler/lib/bundler/inline.rb +10 -10
- data/bundler/lib/bundler/installer.rb +104 -50
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -2
- data/bundler/lib/bundler/installer/parallel_installer.rb +91 -42
- data/bundler/lib/bundler/installer/standalone.rb +1 -0
- data/bundler/lib/bundler/lazy_specification.rb +17 -4
- data/bundler/lib/bundler/lockfile_generator.rb +95 -0
- data/bundler/lib/bundler/lockfile_parser.rb +49 -35
- data/bundler/lib/bundler/match_platform.rb +1 -0
- data/bundler/lib/bundler/mirror.rb +8 -3
- data/bundler/lib/bundler/plugin.rb +6 -1
- data/bundler/lib/bundler/plugin/api/source.rb +16 -3
- data/bundler/lib/bundler/plugin/index.rb +2 -0
- data/bundler/lib/bundler/plugin/installer.rb +7 -6
- data/bundler/lib/bundler/plugin/source_list.rb +7 -8
- data/bundler/lib/bundler/process_lock.rb +24 -0
- data/bundler/lib/bundler/psyched_yaml.rb +10 -0
- data/bundler/lib/bundler/remote_specification.rb +25 -1
- data/bundler/lib/bundler/resolver.rb +171 -192
- data/bundler/lib/bundler/resolver/spec_group.rb +111 -0
- data/bundler/lib/bundler/retry.rb +1 -0
- data/bundler/lib/bundler/ruby_dsl.rb +1 -0
- data/bundler/lib/bundler/ruby_version.rb +6 -1
- data/bundler/lib/bundler/rubygems_ext.rb +18 -8
- data/bundler/lib/bundler/rubygems_gem_installer.rb +25 -2
- data/bundler/lib/bundler/rubygems_integration.rb +157 -66
- data/bundler/lib/bundler/runtime.rb +28 -18
- data/bundler/lib/bundler/settings.rb +202 -87
- data/bundler/lib/bundler/settings/validator.rb +79 -0
- data/bundler/lib/bundler/setup.rb +4 -7
- data/bundler/lib/bundler/shared_helpers.rb +129 -25
- data/bundler/lib/bundler/similarity_detector.rb +1 -0
- data/bundler/lib/bundler/source.rb +53 -1
- data/bundler/lib/bundler/source/gemspec.rb +1 -0
- data/bundler/lib/bundler/source/git.rb +49 -21
- data/bundler/lib/bundler/source/git/git_proxy.rb +17 -12
- data/bundler/lib/bundler/source/metadata.rb +63 -0
- data/bundler/lib/bundler/source/path.rb +38 -17
- data/bundler/lib/bundler/source/path/installer.rb +4 -2
- data/bundler/lib/bundler/source/rubygems.rb +154 -82
- data/bundler/lib/bundler/source/rubygems/remote.rb +8 -1
- data/bundler/lib/bundler/source_list.rb +75 -15
- data/bundler/lib/bundler/spec_set.rb +34 -21
- data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +2 -1
- data/bundler/lib/bundler/stub_specification.rb +86 -2
- data/bundler/lib/bundler/templates/Executable +5 -1
- data/bundler/lib/bundler/templates/Executable.bundler +105 -0
- data/bundler/lib/bundler/templates/Executable.standalone +5 -5
- data/bundler/lib/bundler/templates/Gemfile +3 -0
- data/bundler/lib/bundler/templates/gems.rb +8 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +14 -8
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +5 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +4 -4
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +0 -1
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +6 -6
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +4 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +13 -10
- data/bundler/lib/bundler/templates/newgem/rspec.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +0 -2
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/newgem_test.rb.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +3 -3
- data/bundler/lib/bundler/ui.rb +1 -0
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -0
- data/bundler/lib/bundler/ui/shell.rb +24 -10
- data/bundler/lib/bundler/ui/silent.rb +12 -1
- data/bundler/lib/bundler/uri_credentials_filter.rb +1 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1638 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +2 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +26 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +16 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +10 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +5 -4
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +69 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +501 -138
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +1 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +8 -4
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +3 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +46 -21
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +24 -22
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +16 -8
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +66 -18
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +17 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +55 -32
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -11
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +21 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +7 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +94 -63
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +13 -13
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +4 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +2 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +4 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +16 -16
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +42 -21
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +13 -10
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +31 -29
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +49 -33
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendored_fileutils.rb +9 -0
- data/bundler/lib/bundler/vendored_molinillo.rb +1 -0
- data/bundler/lib/bundler/vendored_persistent.rb +35 -0
- data/bundler/lib/bundler/vendored_thor.rb +6 -2
- data/bundler/lib/bundler/version.rb +19 -2
- data/bundler/lib/bundler/version_ranges.rb +76 -0
- data/bundler/lib/bundler/vlad.rb +5 -0
- data/bundler/lib/bundler/worker.rb +3 -1
- data/bundler/lib/bundler/yaml_serializer.rb +3 -3
- data/bundler/man/bundle-add.ronn +29 -0
- data/bundler/man/bundle-binstubs.ronn +14 -0
- data/bundler/man/bundle-check.ronn +26 -0
- data/bundler/man/bundle-clean.ronn +18 -0
- data/bundler/man/bundle-config.ronn +180 -60
- data/bundler/man/bundle-exec.ronn +7 -0
- data/bundler/man/bundle-gem.ronn +3 -2
- data/bundler/man/bundle-info.ronn +17 -0
- data/bundler/man/bundle-init.ronn +18 -0
- data/bundler/man/bundle-inject.ronn +22 -0
- data/bundler/man/bundle-install.ronn +32 -32
- data/bundler/man/bundle-list.ronn +15 -0
- data/bundler/man/bundle-open.ronn +19 -0
- data/bundler/man/bundle-outdated.ronn +1 -1
- data/bundler/man/bundle-package.ronn +5 -0
- data/bundler/man/bundle-pristine.ronn +34 -0
- data/bundler/man/bundle-show.ronn +20 -0
- data/bundler/man/bundle-update.ronn +6 -3
- data/bundler/man/bundle-viz.ronn +30 -0
- data/bundler/man/bundle.ronn +11 -20
- data/bundler/man/gemfile.5.ronn +55 -64
- data/lib/rubygems.rb +79 -36
- data/lib/rubygems/basic_specification.rb +8 -4
- data/lib/rubygems/bundler_version_finder.rb +112 -0
- data/lib/rubygems/command.rb +1 -1
- data/lib/rubygems/command_manager.rb +3 -1
- data/lib/rubygems/commands/cert_command.rb +31 -6
- data/lib/rubygems/commands/cleanup_command.rb +1 -1
- data/lib/rubygems/commands/help_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +3 -1
- data/lib/rubygems/commands/pristine_command.rb +11 -8
- data/lib/rubygems/commands/push_command.rb +2 -1
- data/lib/rubygems/commands/query_command.rb +13 -14
- data/lib/rubygems/commands/setup_command.rb +124 -69
- data/lib/rubygems/commands/signin_command.rb +33 -0
- data/lib/rubygems/commands/signout_command.rb +33 -0
- data/lib/rubygems/commands/uninstall_command.rb +4 -3
- data/lib/rubygems/commands/unpack_command.rb +16 -4
- data/lib/rubygems/commands/update_command.rb +1 -1
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +4 -11
- data/lib/rubygems/config_file.rb +13 -24
- data/lib/rubygems/core_ext/kernel_require.rb +10 -9
- data/lib/rubygems/dependency.rb +2 -0
- data/lib/rubygems/dependency_installer.rb +4 -0
- data/lib/rubygems/errors.rb +3 -0
- data/lib/rubygems/exceptions.rb +6 -0
- data/lib/rubygems/ext/builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +2 -4
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gem_runner.rb +5 -1
- data/lib/rubygems/install_update_options.rb +5 -28
- data/lib/rubygems/installer.rb +12 -7
- data/lib/rubygems/installer_test_case.rb +6 -3
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/request.rb +1 -1
- data/lib/rubygems/request_set.rb +20 -3
- data/lib/rubygems/request_set/gem_dependency_api.rb +3 -3
- data/lib/rubygems/requirement.rb +5 -1
- data/lib/rubygems/resolver.rb +24 -3
- data/lib/rubygems/resolver/installer_set.rb +4 -6
- data/lib/rubygems/safe_yaml.rb +4 -1
- data/lib/rubygems/security.rb +10 -3
- data/lib/rubygems/security_option.rb +43 -0
- data/lib/rubygems/server.rb +4 -12
- data/lib/rubygems/source.rb +7 -4
- data/lib/rubygems/source/git.rb +2 -1
- data/lib/rubygems/source/local.rb +38 -35
- data/lib/rubygems/source/lock.rb +4 -1
- data/lib/rubygems/source_local.rb +3 -1
- data/lib/rubygems/source_specific_file.rb +3 -2
- data/lib/rubygems/spec_fetcher.rb +7 -3
- data/lib/rubygems/specification.rb +281 -231
- data/lib/rubygems/stub_specification.rb +2 -3
- data/lib/rubygems/test_case.rb +14 -1
- data/lib/rubygems/user_interaction.rb +15 -13
- data/lib/rubygems/util.rb +6 -17
- data/lib/rubygems/version.rb +17 -3
- data/lib/rubygems/version_option.rb +6 -1
- data/setup.rb +1 -1
- data/test/rubygems/private3072_key.pem +40 -0
- data/test/rubygems/public3072_cert.pem +25 -0
- data/test/rubygems/test_config.rb +1 -1
- data/test/rubygems/test_gem.rb +72 -14
- data/test/rubygems/test_gem_bundler_version_finder.rb +125 -0
- data/test/rubygems/test_gem_command.rb +1 -1
- data/test/rubygems/test_gem_commands_build_command.rb +27 -1
- data/test/rubygems/test_gem_commands_cert_command.rb +64 -0
- data/test/rubygems/test_gem_commands_install_command.rb +35 -2
- data/test/rubygems/test_gem_commands_pristine_command.rb +1 -1
- data/test/rubygems/test_gem_commands_query_command.rb +19 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +17 -0
- data/test/rubygems/test_gem_commands_signin_command.rb +95 -0
- data/test/rubygems/test_gem_commands_signout_command.rb +37 -0
- data/test/rubygems/test_gem_commands_sources_command.rb +1 -1
- data/test/rubygems/test_gem_commands_uninstall_command.rb +12 -0
- data/test/rubygems/test_gem_commands_update_command.rb +1 -1
- data/test/rubygems/test_gem_commands_which_command.rb +3 -3
- data/test/rubygems/test_gem_dependency.rb +28 -0
- data/test/rubygems/test_gem_ext_builder.rb +2 -2
- data/test/rubygems/test_gem_ext_rake_builder.rb +2 -2
- data/test/rubygems/test_gem_install_update_options.rb +2 -1
- data/test/rubygems/test_gem_installer.rb +29 -27
- data/test/rubygems/test_gem_package.rb +5 -5
- data/test/rubygems/test_gem_remote_fetcher.rb +2 -2
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -3
- data/test/rubygems/test_gem_requirement.rb +6 -0
- data/test/rubygems/test_gem_resolver.rb +26 -0
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -1
- data/test/rubygems/test_gem_security.rb +5 -0
- data/test/rubygems/test_gem_security_policy.rb +24 -24
- data/test/rubygems/test_gem_security_signer.rb +6 -6
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
- data/test/rubygems/test_gem_server.rb +18 -1
- data/test/rubygems/test_gem_source.rb +9 -0
- data/test/rubygems/test_gem_spec_fetcher.rb +20 -0
- data/test/rubygems/test_gem_specification.rb +85 -10
- data/test/rubygems/test_gem_stream_ui.rb +6 -6
- data/test/rubygems/test_gem_stub_specification.rb +19 -1
- data/test/rubygems/test_gem_util.rb +1 -0
- data/test/rubygems/test_gem_version.rb +28 -7
- data/test/rubygems/test_gem_version_option.rb +15 -0
- data/test/rubygems/test_kernel.rb +30 -0
- data/test/rubygems/test_require.rb +44 -0
- metadata +47 -46
- data/README.rdoc +0 -54
- data/bundler/DEVELOPMENT.md +0 -150
- data/bundler/ISSUES.md +0 -117
- data/bundler/lib/bundler/postit_trampoline.rb +0 -73
- data/bundler/lib/bundler/vendor/postit/lib/postit.rb +0 -15
- data/bundler/lib/bundler/vendor/postit/lib/postit/environment.rb +0 -44
- data/bundler/lib/bundler/vendor/postit/lib/postit/installer.rb +0 -28
- data/bundler/lib/bundler/vendor/postit/lib/postit/parser.rb +0 -21
- data/bundler/lib/bundler/vendor/postit/lib/postit/setup.rb +0 -12
- data/bundler/lib/bundler/vendor/postit/lib/postit/version.rb +0 -3
- data/bundler/man/index.txt +0 -8
@@ -5,6 +5,7 @@ class Bundler::Thor
|
|
5
5
|
VALID_TYPES = [:boolean, :numeric, :hash, :array, :string]
|
6
6
|
|
7
7
|
def initialize(name, options = {})
|
8
|
+
@check_default_type = options[:check_default_type]
|
8
9
|
options[:required] = false unless options.key?(:required)
|
9
10
|
super
|
10
11
|
@lazy_default = options[:lazy_default]
|
@@ -40,31 +41,33 @@ class Bundler::Thor
|
|
40
41
|
#
|
41
42
|
# By default all options are optional, unless :required is given.
|
42
43
|
#
|
43
|
-
def self.parse(key, value)
|
44
|
+
def self.parse(key, value)
|
44
45
|
if key.is_a?(Array)
|
45
46
|
name, *aliases = key
|
46
47
|
else
|
47
|
-
name
|
48
|
+
name = key
|
49
|
+
aliases = []
|
48
50
|
end
|
49
51
|
|
50
52
|
name = name.to_s
|
51
53
|
default = value
|
52
54
|
|
53
55
|
type = case value
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
56
|
+
when Symbol
|
57
|
+
default = nil
|
58
|
+
if VALID_TYPES.include?(value)
|
59
|
+
value
|
60
|
+
elsif required = (value == :required) # rubocop:disable AssignmentInCondition
|
61
|
+
:string
|
62
|
+
end
|
63
|
+
when TrueClass, FalseClass
|
64
|
+
:boolean
|
65
|
+
when Numeric
|
66
|
+
:numeric
|
67
|
+
when Hash, Array, String
|
68
|
+
value.class.name.downcase.to_sym
|
69
|
+
end
|
70
|
+
|
68
71
|
new(name.to_s, :required => required, :type => type, :default => default, :aliases => aliases)
|
69
72
|
end
|
70
73
|
|
@@ -78,15 +81,15 @@ class Bundler::Thor
|
|
78
81
|
|
79
82
|
def usage(padding = 0)
|
80
83
|
sample = if banner && !banner.to_s.empty?
|
81
|
-
"#{switch_name}=#{banner}"
|
84
|
+
"#{switch_name}=#{banner}".dup
|
82
85
|
else
|
83
86
|
switch_name
|
84
87
|
end
|
85
88
|
|
86
|
-
sample = "[#{sample}]" unless required?
|
89
|
+
sample = "[#{sample}]".dup unless required?
|
87
90
|
|
88
91
|
if boolean?
|
89
|
-
sample << ", [#{dasherize(
|
92
|
+
sample << ", [#{dasherize('no-' + human_name)}]" unless (name == "force") || name.start_with?("no-")
|
90
93
|
end
|
91
94
|
|
92
95
|
if aliases.empty?
|
@@ -107,7 +110,25 @@ class Bundler::Thor
|
|
107
110
|
protected
|
108
111
|
|
109
112
|
def validate!
|
110
|
-
|
113
|
+
raise ArgumentError, "An option cannot be boolean and required." if boolean? && required?
|
114
|
+
validate_default_type! if @check_default_type
|
115
|
+
end
|
116
|
+
|
117
|
+
def validate_default_type!
|
118
|
+
default_type = case @default
|
119
|
+
when nil
|
120
|
+
return
|
121
|
+
when TrueClass, FalseClass
|
122
|
+
required? ? :string : :boolean
|
123
|
+
when Numeric
|
124
|
+
:numeric
|
125
|
+
when Symbol
|
126
|
+
:string
|
127
|
+
when Hash, Array, String
|
128
|
+
@default.class.name.downcase.to_sym
|
129
|
+
end
|
130
|
+
|
131
|
+
raise ArgumentError, "Expected #{@type} default value for '#{switch_name}'; got #{@default.inspect} (#{default_type})" unless default_type == @type
|
111
132
|
end
|
112
133
|
|
113
134
|
def dasherized?
|
@@ -119,7 +140,7 @@ class Bundler::Thor
|
|
119
140
|
end
|
120
141
|
|
121
142
|
def dasherize(str)
|
122
|
-
(str.length > 1 ? "--" : "-") + str.
|
143
|
+
(str.length > 1 ? "--" : "-") + str.tr("_", "-")
|
123
144
|
end
|
124
145
|
end
|
125
146
|
end
|
@@ -14,23 +14,24 @@ class Bundler::Thor
|
|
14
14
|
when true
|
15
15
|
"--#{key}"
|
16
16
|
when Array
|
17
|
-
"--#{key} #{value.map
|
17
|
+
"--#{key} #{value.map(&:inspect).join(' ')}"
|
18
18
|
when Hash
|
19
19
|
"--#{key} #{value.map { |k, v| "#{k}:#{v}" }.join(' ')}"
|
20
20
|
when nil, false
|
21
|
-
|
21
|
+
nil
|
22
22
|
else
|
23
23
|
"--#{key} #{value.inspect}"
|
24
24
|
end
|
25
|
-
end.join(" ")
|
25
|
+
end.compact.join(" ")
|
26
26
|
end
|
27
27
|
|
28
28
|
# Takes a hash of Bundler::Thor::Option and a hash with defaults.
|
29
29
|
#
|
30
30
|
# If +stop_on_unknown+ is true, #parse will stop as soon as it encounters
|
31
31
|
# an unknown option or a regular argument.
|
32
|
-
def initialize(hash_options = {}, defaults = {}, stop_on_unknown = false)
|
32
|
+
def initialize(hash_options = {}, defaults = {}, stop_on_unknown = false, disable_required_check = false)
|
33
33
|
@stop_on_unknown = stop_on_unknown
|
34
|
+
@disable_required_check = disable_required_check
|
34
35
|
options = hash_options.values
|
35
36
|
super(options)
|
36
37
|
|
@@ -40,7 +41,9 @@ class Bundler::Thor
|
|
40
41
|
@non_assigned_required.delete(hash_options[key])
|
41
42
|
end
|
42
43
|
|
43
|
-
@shorts
|
44
|
+
@shorts = {}
|
45
|
+
@switches = {}
|
46
|
+
@extra = []
|
44
47
|
|
45
48
|
options.each do |option|
|
46
49
|
@switches[option.switch_name] = option
|
@@ -52,7 +55,7 @@ class Bundler::Thor
|
|
52
55
|
end
|
53
56
|
end
|
54
57
|
|
55
|
-
def remaining
|
58
|
+
def remaining
|
56
59
|
@extra
|
57
60
|
end
|
58
61
|
|
@@ -109,7 +112,7 @@ class Bundler::Thor
|
|
109
112
|
end
|
110
113
|
end
|
111
114
|
|
112
|
-
check_requirement!
|
115
|
+
check_requirement! unless @disable_required_check
|
113
116
|
|
114
117
|
assigns = Bundler::Thor::CoreExt::HashWithIndifferentAccess.new(@assigns)
|
115
118
|
assigns.freeze
|
@@ -119,7 +122,7 @@ class Bundler::Thor
|
|
119
122
|
def check_unknown!
|
120
123
|
# an unknown option starts with - or -- and has no more --'s afterward.
|
121
124
|
unknown = @extra.select { |str| str =~ /^--?(?:(?!--).)*$/ }
|
122
|
-
|
125
|
+
raise UnknownArgumentError, "Unknown switches '#{unknown.join(', ')}'" unless unknown.empty?
|
123
126
|
end
|
124
127
|
|
125
128
|
protected
|
@@ -186,7 +189,7 @@ class Bundler::Thor
|
|
186
189
|
shift
|
187
190
|
false
|
188
191
|
else
|
189
|
-
|
192
|
+
!no_or_skip?(switch)
|
190
193
|
end
|
191
194
|
else
|
192
195
|
@switches.key?(switch) || !no_or_skip?(switch)
|
@@ -207,7 +210,7 @@ class Bundler::Thor
|
|
207
210
|
elsif option.lazy_default
|
208
211
|
return option.lazy_default
|
209
212
|
else
|
210
|
-
|
213
|
+
raise MalformattedArgumentError, "No value provided for option '#{switch}'"
|
211
214
|
end
|
212
215
|
end
|
213
216
|
|
@@ -2,19 +2,25 @@ require "bundler/vendor/thor/lib/thor"
|
|
2
2
|
require "bundler/vendor/thor/lib/thor/group"
|
3
3
|
require "bundler/vendor/thor/lib/thor/core_ext/io_binary_read"
|
4
4
|
|
5
|
-
require "fileutils"
|
6
|
-
require "open-uri"
|
7
5
|
require "yaml"
|
8
|
-
require "digest
|
6
|
+
require "digest"
|
9
7
|
require "pathname"
|
10
8
|
|
11
9
|
class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLength
|
12
10
|
map "-T" => :list, "-i" => :install, "-u" => :update, "-v" => :version
|
13
11
|
|
12
|
+
def self.banner(command, all = false, subcommand = false)
|
13
|
+
"thor " + command.formatted_usage(self, all, subcommand)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.exit_on_failure?
|
17
|
+
true
|
18
|
+
end
|
19
|
+
|
14
20
|
# Override Bundler::Thor#help so it can give information about any class and any method.
|
15
21
|
#
|
16
22
|
def help(meth = nil)
|
17
|
-
if meth && !
|
23
|
+
if meth && !respond_to?(meth)
|
18
24
|
initialize_thorfiles(meth)
|
19
25
|
klass, command = Bundler::Thor::Util.find_class_and_command_by_namespace(meth)
|
20
26
|
self.class.handle_no_command_error(command, false) if klass.nil?
|
@@ -45,16 +51,18 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
45
51
|
# command in said directory.
|
46
52
|
begin
|
47
53
|
if File.directory?(File.expand_path(name))
|
48
|
-
base
|
49
|
-
|
54
|
+
base = File.join(name, "main.thor")
|
55
|
+
package = :directory
|
56
|
+
contents = open(base, &:read)
|
50
57
|
else
|
51
|
-
base
|
52
|
-
|
58
|
+
base = name
|
59
|
+
package = :file
|
60
|
+
contents = open(name, &:read)
|
53
61
|
end
|
54
62
|
rescue OpenURI::HTTPError
|
55
63
|
raise Error, "Error opening URI '#{name}'"
|
56
64
|
rescue Errno::ENOENT
|
57
|
-
|
65
|
+
raise Error, "Error opening file '#{name}'"
|
58
66
|
end
|
59
67
|
|
60
68
|
say "Your Bundler::Thorfile contains:"
|
@@ -82,7 +90,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
82
90
|
end
|
83
91
|
|
84
92
|
thor_yaml[as] = {
|
85
|
-
:filename => Digest
|
93
|
+
:filename => Digest(:MD5).hexdigest(name + as),
|
86
94
|
:location => location,
|
87
95
|
:namespaces => Bundler::Thor::Util.namespaces_in_content(contents, base)
|
88
96
|
}
|
@@ -94,6 +102,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
94
102
|
if package == :file
|
95
103
|
File.open(destination, "w") { |f| f.puts contents }
|
96
104
|
else
|
105
|
+
require "fileutils"
|
97
106
|
FileUtils.cp_r(name, destination)
|
98
107
|
end
|
99
108
|
|
@@ -108,9 +117,10 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
108
117
|
|
109
118
|
desc "uninstall NAME", "Uninstall a named Bundler::Thor module"
|
110
119
|
def uninstall(name)
|
111
|
-
|
120
|
+
raise Error, "Can't find module '#{name}'" unless thor_yaml[name]
|
112
121
|
say "Uninstalling #{name}."
|
113
|
-
|
122
|
+
require "fileutils"
|
123
|
+
FileUtils.rm_rf(File.join(thor_root, (thor_yaml[name][:filename]).to_s))
|
114
124
|
|
115
125
|
thor_yaml.delete(name)
|
116
126
|
save_yaml(thor_yaml)
|
@@ -120,7 +130,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
120
130
|
|
121
131
|
desc "update NAME", "Update a Bundler::Thor file from its original location"
|
122
132
|
def update(name)
|
123
|
-
|
133
|
+
raise Error, "Can't find module '#{name}'" if !thor_yaml[name] || !thor_yaml[name][:location]
|
124
134
|
|
125
135
|
say "Updating '#{name}' from #{thor_yaml[name][:location]}"
|
126
136
|
|
@@ -128,6 +138,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
128
138
|
self.options = options.merge("as" => name)
|
129
139
|
|
130
140
|
if File.directory? File.expand_path(name)
|
141
|
+
require "fileutils"
|
131
142
|
FileUtils.rm_rf(File.join(thor_root, old_filename))
|
132
143
|
|
133
144
|
thor_yaml.delete(old_filename)
|
@@ -138,9 +149,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
138
149
|
filename = install(thor_yaml[name][:location])
|
139
150
|
end
|
140
151
|
|
141
|
-
unless filename == old_filename
|
142
|
-
File.delete(File.join(thor_root, old_filename))
|
143
|
-
end
|
152
|
+
File.delete(File.join(thor_root, old_filename)) unless filename == old_filename
|
144
153
|
end
|
145
154
|
|
146
155
|
desc "installed", "List the installed Bundler::Thor modules and commands"
|
@@ -168,10 +177,6 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
168
177
|
|
169
178
|
private
|
170
179
|
|
171
|
-
def self.banner(command, all = false, subcommand = false)
|
172
|
-
"thor " + command.formatted_usage(self, all, subcommand)
|
173
|
-
end
|
174
|
-
|
175
180
|
def thor_root
|
176
181
|
Bundler::Thor::Util.thor_root
|
177
182
|
end
|
@@ -190,6 +195,7 @@ private
|
|
190
195
|
yaml_file = File.join(thor_root, "thor.yml")
|
191
196
|
|
192
197
|
unless File.exist?(yaml_file)
|
198
|
+
require "fileutils"
|
193
199
|
FileUtils.mkdir_p(thor_root)
|
194
200
|
yaml_file = File.join(thor_root, "thor.yml")
|
195
201
|
FileUtils.touch(yaml_file)
|
@@ -198,10 +204,6 @@ private
|
|
198
204
|
File.open(yaml_file, "w") { |f| f.puts yaml.to_yaml }
|
199
205
|
end
|
200
206
|
|
201
|
-
def self.exit_on_failure?
|
202
|
-
true
|
203
|
-
end
|
204
|
-
|
205
207
|
# Load the Bundler::Thorfiles. If relevant_to is supplied, looks for specific files
|
206
208
|
# in the thor_root instead of loading them all.
|
207
209
|
#
|
@@ -263,11 +265,11 @@ private
|
|
263
265
|
def thorfiles_relevant_to(meth)
|
264
266
|
lookup = [meth, meth.split(":")[0...-1].join(":")]
|
265
267
|
|
266
|
-
files = thor_yaml.select do |
|
268
|
+
files = thor_yaml.select do |_, v|
|
267
269
|
v[:namespaces] && !(v[:namespaces] & lookup).empty?
|
268
270
|
end
|
269
271
|
|
270
|
-
files.map { |
|
272
|
+
files.map { |_, v| File.join(thor_root, (v[:filename]).to_s) }
|
271
273
|
end
|
272
274
|
|
273
275
|
# Display information about the given klasses. If with_module is given,
|
@@ -276,7 +278,7 @@ private
|
|
276
278
|
def display_klasses(with_modules = false, show_internal = false, klasses = Bundler::Thor::Base.subclasses)
|
277
279
|
klasses -= [Bundler::Thor, Bundler::Thor::Runner, Bundler::Thor::Group] unless show_internal
|
278
280
|
|
279
|
-
|
281
|
+
raise Error, "No Bundler::Thor commands available" if klasses.empty?
|
280
282
|
show_modules if with_modules && !thor_yaml.empty?
|
281
283
|
|
282
284
|
list = Hash.new { |h, k| h[k] = [] }
|
@@ -306,8 +308,8 @@ private
|
|
306
308
|
alias_method :display_tasks, :display_commands
|
307
309
|
|
308
310
|
def show_modules #:nodoc:
|
309
|
-
info
|
310
|
-
labels = %w
|
311
|
+
info = []
|
312
|
+
labels = %w(Modules Namespaces)
|
311
313
|
|
312
314
|
info << labels
|
313
315
|
info << ["-" * labels[0].size, "-" * labels[1].size]
|
@@ -9,7 +9,7 @@ class Bundler::Thor
|
|
9
9
|
# it will use a colored log, otherwise it will use a basic one without color.
|
10
10
|
#
|
11
11
|
def shell
|
12
|
-
@shell ||= if ENV["THOR_SHELL"] && ENV["THOR_SHELL"].
|
12
|
+
@shell ||= if ENV["THOR_SHELL"] && !ENV["THOR_SHELL"].empty?
|
13
13
|
Bundler::Thor::Shell.const_get(ENV["THOR_SHELL"])
|
14
14
|
elsif RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ && !ENV["ANSICON"]
|
15
15
|
Bundler::Thor::Shell::Basic
|
@@ -1,16 +1,16 @@
|
|
1
|
-
require "tempfile"
|
2
|
-
require "io/console" if RUBY_VERSION > "1.9.2"
|
3
|
-
|
4
1
|
class Bundler::Thor
|
5
2
|
module Shell
|
6
|
-
class Basic
|
3
|
+
class Basic
|
7
4
|
attr_accessor :base
|
8
5
|
attr_reader :padding
|
9
6
|
|
10
7
|
# Initialize base, mute and padding to nil.
|
11
8
|
#
|
12
9
|
def initialize #:nodoc:
|
13
|
-
@base
|
10
|
+
@base = nil
|
11
|
+
@mute = false
|
12
|
+
@padding = 0
|
13
|
+
@always_force = false
|
14
14
|
end
|
15
15
|
|
16
16
|
# Mute everything that's inside given block
|
@@ -24,7 +24,7 @@ class Bundler::Thor
|
|
24
24
|
|
25
25
|
# Check if base is muted
|
26
26
|
#
|
27
|
-
def mute?
|
27
|
+
def mute?
|
28
28
|
@mute
|
29
29
|
end
|
30
30
|
|
@@ -34,6 +34,15 @@ class Bundler::Thor
|
|
34
34
|
@padding = [0, value].max
|
35
35
|
end
|
36
36
|
|
37
|
+
# Sets the output padding while executing a block and resets it.
|
38
|
+
#
|
39
|
+
def indent(count = 1)
|
40
|
+
orig_padding = padding
|
41
|
+
self.padding = padding + count
|
42
|
+
yield
|
43
|
+
self.padding = orig_padding
|
44
|
+
end
|
45
|
+
|
37
46
|
# Asks something to the user and receives a response.
|
38
47
|
#
|
39
48
|
# If asked to limit the correct responses, you can pass in an
|
@@ -98,7 +107,7 @@ class Bundler::Thor
|
|
98
107
|
status = set_color status, color, true if color
|
99
108
|
|
100
109
|
buffer = "#{status}#{spaces}#{message}"
|
101
|
-
buffer
|
110
|
+
buffer = "#{buffer}\n" unless buffer.end_with?("\n")
|
102
111
|
|
103
112
|
stdout.print(buffer)
|
104
113
|
stdout.flush
|
@@ -148,10 +157,12 @@ class Bundler::Thor
|
|
148
157
|
def print_table(array, options = {}) # rubocop:disable MethodLength
|
149
158
|
return if array.empty?
|
150
159
|
|
151
|
-
formats
|
160
|
+
formats = []
|
161
|
+
indent = options[:indent].to_i
|
162
|
+
colwidth = options[:colwidth]
|
152
163
|
options[:truncate] = terminal_width if options[:truncate] == true
|
153
164
|
|
154
|
-
formats << "%-#{colwidth + 2}s" if colwidth
|
165
|
+
formats << "%-#{colwidth + 2}s".dup if colwidth
|
155
166
|
start = colwidth ? 1 : 0
|
156
167
|
|
157
168
|
colcount = array.max { |a, b| a.size <=> b.size }.size
|
@@ -161,32 +172,32 @@ class Bundler::Thor
|
|
161
172
|
start.upto(colcount - 1) do |index|
|
162
173
|
maxima = array.map { |row| row[index] ? row[index].to_s.size : 0 }.max
|
163
174
|
maximas << maxima
|
164
|
-
if index == colcount - 1
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
175
|
+
formats << if index == colcount - 1
|
176
|
+
# Don't output 2 trailing spaces when printing the last column
|
177
|
+
"%-s".dup
|
178
|
+
else
|
179
|
+
"%-#{maxima + 2}s".dup
|
180
|
+
end
|
170
181
|
end
|
171
182
|
|
172
183
|
formats[0] = formats[0].insert(0, " " * indent)
|
173
184
|
formats << "%s"
|
174
185
|
|
175
186
|
array.each do |row|
|
176
|
-
sentence = ""
|
187
|
+
sentence = "".dup
|
177
188
|
|
178
189
|
row.each_with_index do |column, index|
|
179
190
|
maxima = maximas[index]
|
180
191
|
|
181
|
-
if column.is_a?(Numeric)
|
192
|
+
f = if column.is_a?(Numeric)
|
182
193
|
if index == row.size - 1
|
183
194
|
# Don't output 2 trailing spaces when printing the last column
|
184
|
-
|
195
|
+
"%#{maxima}s"
|
185
196
|
else
|
186
|
-
|
197
|
+
"%#{maxima}s "
|
187
198
|
end
|
188
199
|
else
|
189
|
-
|
200
|
+
formats[index]
|
190
201
|
end
|
191
202
|
sentence << f % column.to_s
|
192
203
|
end
|
@@ -211,7 +222,7 @@ class Bundler::Thor
|
|
211
222
|
paras = message.split("\n\n")
|
212
223
|
|
213
224
|
paras.map! do |unwrapped|
|
214
|
-
unwrapped.strip.
|
225
|
+
unwrapped.strip.tr("\n", " ").squeeze(" ").gsub(/.{1,#{width}}(?:\s|\Z)/) { ($& + 5.chr).gsub(/\n\005/, "\n").gsub(/\005/, "\n") }
|
215
226
|
end
|
216
227
|
|
217
228
|
paras.each do |para|
|
@@ -230,7 +241,7 @@ class Bundler::Thor
|
|
230
241
|
# destination<String>:: the destination file to solve conflicts
|
231
242
|
# block<Proc>:: an optional block that returns the value to be used in diff
|
232
243
|
#
|
233
|
-
def file_collision(destination)
|
244
|
+
def file_collision(destination)
|
234
245
|
return true if @always_force
|
235
246
|
options = block_given? ? "[Ynaqdh]" : "[Ynaqh]"
|
236
247
|
|
@@ -241,6 +252,9 @@ class Bundler::Thor
|
|
241
252
|
)
|
242
253
|
|
243
254
|
case answer
|
255
|
+
when nil
|
256
|
+
say ""
|
257
|
+
return true
|
244
258
|
when is?(:yes), is?(:force), ""
|
245
259
|
return true
|
246
260
|
when is?(:no), is?(:skip)
|
@@ -249,7 +263,7 @@ class Bundler::Thor
|
|
249
263
|
return @always_force = true
|
250
264
|
when is?(:quit)
|
251
265
|
say "Aborting..."
|
252
|
-
|
266
|
+
raise SystemExit
|
253
267
|
when is?(:diff)
|
254
268
|
show_diff(destination, yield) if block_given?
|
255
269
|
say "Retrying..."
|
@@ -262,10 +276,10 @@ class Bundler::Thor
|
|
262
276
|
# This code was copied from Rake, available under MIT-LICENSE
|
263
277
|
# Copyright (c) 2003, 2004 Jim Weirich
|
264
278
|
def terminal_width
|
265
|
-
if ENV["THOR_COLUMNS"]
|
266
|
-
|
279
|
+
result = if ENV["THOR_COLUMNS"]
|
280
|
+
ENV["THOR_COLUMNS"].to_i
|
267
281
|
else
|
268
|
-
|
282
|
+
unix? ? dynamic_width : 80
|
269
283
|
end
|
270
284
|
result < 10 ? 80 : result
|
271
285
|
rescue
|
@@ -284,7 +298,7 @@ class Bundler::Thor
|
|
284
298
|
# Apply color to the given string with optional bold. Disabled in the
|
285
299
|
# Bundler::Thor::Shell::Basic class.
|
286
300
|
#
|
287
|
-
def set_color(string, *
|
301
|
+
def set_color(string, *) #:nodoc:
|
288
302
|
string
|
289
303
|
end
|
290
304
|
|
@@ -336,6 +350,7 @@ class Bundler::Thor
|
|
336
350
|
def show_diff(destination, content) #:nodoc:
|
337
351
|
diff_cmd = ENV["THOR_DIFF"] || ENV["RAILS_DIFF"] || "diff -u"
|
338
352
|
|
353
|
+
require "tempfile"
|
339
354
|
Tempfile.open(File.basename(destination), File.dirname(destination)) do |temp|
|
340
355
|
temp.write content
|
341
356
|
temp.rewind
|
@@ -353,11 +368,11 @@ class Bundler::Thor
|
|
353
368
|
end
|
354
369
|
|
355
370
|
def dynamic_width_stty
|
356
|
-
|
371
|
+
`stty size 2>/dev/null`.split[1].to_i
|
357
372
|
end
|
358
373
|
|
359
374
|
def dynamic_width_tput
|
360
|
-
|
375
|
+
`tput cols 2>/dev/null`.to_i
|
361
376
|
end
|
362
377
|
|
363
378
|
def unix?
|
@@ -370,7 +385,7 @@ class Bundler::Thor
|
|
370
385
|
if chars.length <= width
|
371
386
|
chars.join
|
372
387
|
else
|
373
|
-
|
388
|
+
chars[0, width - 3].join + "..."
|
374
389
|
end
|
375
390
|
end
|
376
391
|
end
|
@@ -381,7 +396,8 @@ class Bundler::Thor
|
|
381
396
|
end
|
382
397
|
else
|
383
398
|
def as_unicode
|
384
|
-
old
|
399
|
+
old = $KCODE
|
400
|
+
$KCODE = "U"
|
385
401
|
yield
|
386
402
|
ensure
|
387
403
|
$KCODE = old
|
@@ -391,12 +407,12 @@ class Bundler::Thor
|
|
391
407
|
def ask_simply(statement, color, options)
|
392
408
|
default = options[:default]
|
393
409
|
message = [statement, ("(#{default})" if default), nil].uniq.join(" ")
|
394
|
-
message = prepare_message(message, color)
|
410
|
+
message = prepare_message(message, *color)
|
395
411
|
result = Bundler::Thor::LineEditor.readline(message, options)
|
396
412
|
|
397
413
|
return unless result
|
398
414
|
|
399
|
-
result.strip
|
415
|
+
result = result.strip
|
400
416
|
|
401
417
|
if default && result == ""
|
402
418
|
default
|