rubygems-update 3.3.18 → 3.3.22
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/CHANGELOG.md +65 -0
- data/Manifest.txt +11 -0
- data/bin/gem +2 -2
- data/bin/update_rubygems +4 -4
- data/bundler/CHANGELOG.md +100 -0
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +6 -8
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +1 -0
- data/bundler/lib/bundler/cli/install.rb +5 -2
- data/bundler/lib/bundler/cli/outdated.rb +12 -3
- data/bundler/lib/bundler/cli/platform.rb +1 -1
- data/bundler/lib/bundler/cli.rb +7 -4
- data/bundler/lib/bundler/current_ruby.rb +14 -5
- data/bundler/lib/bundler/definition.rb +102 -31
- data/bundler/lib/bundler/dependency.rb +18 -85
- data/bundler/lib/bundler/dsl.rb +2 -2
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher.rb +6 -6
- data/bundler/lib/bundler/gem_helpers.rb +7 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +8 -18
- data/bundler/lib/bundler/index.rb +10 -12
- data/bundler/lib/bundler/injector.rb +2 -1
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/installer/standalone.rb +1 -1
- data/bundler/lib/bundler/installer.rb +14 -12
- data/bundler/lib/bundler/lazy_specification.rb +30 -23
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +25 -6
- data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -1
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +23 -47
- data/bundler/lib/bundler/man/gemfile.5.ronn +32 -43
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/plugin.rb +2 -0
- data/bundler/lib/bundler/remote_specification.rb +6 -11
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
- data/bundler/lib/bundler/resolver.rb +95 -90
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +52 -1
- data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/bundler/lib/bundler/settings.rb +1 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +48 -33
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +3 -3
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +4 -4
- data/lib/rubygems/command.rb +25 -25
- data/lib/rubygems/command_manager.rb +9 -9
- data/lib/rubygems/commands/build_command.rb +8 -8
- data/lib/rubygems/commands/cert_command.rb +33 -33
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +17 -17
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +16 -16
- data/lib/rubygems/commands/environment_command.rb +5 -5
- data/lib/rubygems/commands/fetch_command.rb +8 -8
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +20 -20
- data/lib/rubygems/commands/list_command.rb +3 -3
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +11 -11
- data/lib/rubygems/commands/pristine_command.rb +36 -36
- data/lib/rubygems/commands/push_command.rb +8 -8
- data/lib/rubygems/commands/query_command.rb +8 -8
- data/lib/rubygems/commands/rdoc_command.rb +17 -17
- data/lib/rubygems/commands/search_command.rb +3 -3
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +96 -106
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +21 -21
- data/lib/rubygems/commands/specification_command.rb +13 -13
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +40 -40
- data/lib/rubygems/commands/unpack_command.rb +12 -12
- data/lib/rubygems/commands/update_command.rb +40 -56
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/config_file.rb +21 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +16 -16
- data/lib/rubygems/dependency.rb +9 -9
- data/lib/rubygems/dependency_installer.rb +13 -13
- data/lib/rubygems/dependency_list.rb +6 -6
- data/lib/rubygems/doctor.rb +18 -18
- data/lib/rubygems/errors.rb +2 -2
- data/lib/rubygems/exceptions.rb +5 -5
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +16 -16
- data/lib/rubygems/ext/cargo_builder.rb +7 -7
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -7
- data/lib/rubygems/gem_runner.rb +5 -5
- data/lib/rubygems/gemcutter_utilities.rb +31 -28
- data/lib/rubygems/indexer.rb +27 -27
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +55 -55
- data/lib/rubygems/installer.rb +32 -40
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +18 -20
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +50 -50
- data/lib/rubygems/package/tar_reader/entry.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +54 -43
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/platform.rb +66 -55
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +22 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +22 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +5 -5
- data/lib/rubygems/request_set.rb +17 -17
- data/lib/rubygems/requirement.rb +6 -6
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +11 -16
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +39 -39
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +2 -2
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +18 -18
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +28 -28
- data/lib/rubygems/security_option.rb +5 -5
- data/lib/rubygems/source/git.rb +21 -21
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +9 -9
- data/lib/rubygems/specification.rb +63 -62
- data/lib/rubygems/specification_policy.rb +15 -15
- data/lib/rubygems/stub_specification.rb +5 -5
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +18 -18
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +33 -19
- data/lib/rubygems/util/licenses.rb +3 -3
- data/lib/rubygems/util.rb +10 -10
- data/lib/rubygems/validator.rb +5 -5
- data/lib/rubygems/version.rb +15 -9
- data/lib/rubygems/version_option.rb +3 -3
- data/lib/rubygems.rb +62 -61
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +9 -9
- data/test/rubygems/helper.rb +132 -134
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +10 -10
- data/test/rubygems/test_config.rb +3 -3
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +2 -2
- data/test/rubygems/test_gem.rb +342 -342
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
- data/test/rubygems/test_gem_command.rb +44 -44
- data/test/rubygems/test_gem_command_manager.rb +29 -29
- data/test/rubygems/test_gem_commands_build_command.rb +63 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
- data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +131 -131
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
- data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
- data/test/rubygems/test_gem_commands_push_command.rb +54 -54
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +2 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
- data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +89 -89
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +73 -73
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +59 -59
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +7 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +48 -48
- data/test/rubygems/test_gem_install_update_options.rb +16 -16
- data/test/rubygems/test_gem_installer.rb +303 -300
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +228 -206
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +42 -42
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +14 -14
- data/test/rubygems/test_gem_platform.rb +298 -227
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
- data/test/rubygems/test_gem_request.rb +55 -55
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +99 -99
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -41
- data/test/rubygems/test_gem_resolver.rb +133 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +67 -67
- data/test/rubygems/test_gem_security_policy.rb +62 -62
- data/test/rubygems/test_gem_security_signer.rb +28 -28
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +59 -59
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +444 -436
- data/test/rubygems/test_gem_stream_ui.rb +19 -19
- data/test/rubygems/test_gem_stub_specification.rb +32 -32
- data/test/rubygems/test_gem_text.rb +1 -1
- data/test/rubygems/test_gem_uninstaller.rb +112 -112
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +22 -15
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +31 -31
- data/test/rubygems/test_project_sanity.rb +1 -1
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +43 -43
- data/test/rubygems/test_rubygems.rb +8 -8
- data/test/rubygems/utilities.rb +19 -19
- metadata +14 -3
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/request_set"
|
4
4
|
|
5
5
|
class TestGemRequestSet < Gem::TestCase
|
6
6
|
def setup
|
@@ -23,24 +23,24 @@ class TestGemRequestSet < Gem::TestCase
|
|
23
23
|
def test_gem_duplicate
|
24
24
|
rs = Gem::RequestSet.new
|
25
25
|
|
26
|
-
rs.gem
|
27
|
-
rs.gem
|
26
|
+
rs.gem "a", "1"
|
27
|
+
rs.gem "a", "2"
|
28
28
|
|
29
|
-
assert_equal [dep(
|
29
|
+
assert_equal [dep("a", "= 1", "= 2")], rs.dependencies
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_import
|
33
33
|
rs = Gem::RequestSet.new
|
34
|
-
rs.gem
|
34
|
+
rs.gem "a"
|
35
35
|
|
36
|
-
rs.import [dep(
|
36
|
+
rs.import [dep("b")]
|
37
37
|
|
38
|
-
assert_equal [dep(
|
38
|
+
assert_equal [dep("a"), dep("b")], rs.dependencies
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_install_from_gemdeps
|
42
42
|
spec_fetcher do |fetcher|
|
43
|
-
fetcher.gem
|
43
|
+
fetcher.gem "a", 2
|
44
44
|
end
|
45
45
|
|
46
46
|
done_installing_ran = false
|
@@ -52,7 +52,7 @@ class TestGemRequestSet < Gem::TestCase
|
|
52
52
|
rs = Gem::RequestSet.new
|
53
53
|
installed = []
|
54
54
|
|
55
|
-
File.open
|
55
|
+
File.open "gem.deps.rb", "w" do |io|
|
56
56
|
io.puts 'gem "a"'
|
57
57
|
io.flush
|
58
58
|
|
@@ -63,9 +63,9 @@ class TestGemRequestSet < Gem::TestCase
|
|
63
63
|
assert_kind_of Array, result # what is supposed to be in here?
|
64
64
|
end
|
65
65
|
|
66
|
-
assert_includes installed,
|
67
|
-
assert_path_exist File.join @gemhome,
|
68
|
-
assert_path_exist
|
66
|
+
assert_includes installed, "a-2"
|
67
|
+
assert_path_exist File.join @gemhome, "gems", "a-2"
|
68
|
+
assert_path_exist "gem.deps.rb.lock"
|
69
69
|
|
70
70
|
assert rs.remote
|
71
71
|
refute done_installing_ran
|
@@ -73,12 +73,12 @@ class TestGemRequestSet < Gem::TestCase
|
|
73
73
|
|
74
74
|
def test_install_from_gemdeps_explain
|
75
75
|
spec_fetcher do |fetcher|
|
76
|
-
fetcher.gem
|
76
|
+
fetcher.gem "a", 2
|
77
77
|
end
|
78
78
|
|
79
79
|
rs = Gem::RequestSet.new
|
80
80
|
|
81
|
-
File.open
|
81
|
+
File.open "gem.deps.rb", "w" do |io|
|
82
82
|
io.puts 'gem "a"'
|
83
83
|
io.flush
|
84
84
|
|
@@ -96,21 +96,21 @@ Gems to install:
|
|
96
96
|
|
97
97
|
def test_install_from_gemdeps_install_dir
|
98
98
|
spec_fetcher do |fetcher|
|
99
|
-
fetcher.gem
|
99
|
+
fetcher.gem "a", 2
|
100
100
|
end
|
101
101
|
|
102
102
|
util_clear_gems
|
103
|
-
assert_path_not_exist File.join Gem.dir,
|
103
|
+
assert_path_not_exist File.join Gem.dir, "gems", "a-2"
|
104
104
|
|
105
105
|
rs = Gem::RequestSet.new
|
106
106
|
installed = []
|
107
107
|
|
108
|
-
File.open
|
108
|
+
File.open "gem.deps.rb", "w" do |io|
|
109
109
|
io.puts 'gem "a"'
|
110
110
|
end
|
111
111
|
|
112
112
|
options = {
|
113
|
-
:gemdeps =>
|
113
|
+
:gemdeps => "gem.deps.rb",
|
114
114
|
:install_dir => "#{@gemhome}2",
|
115
115
|
}
|
116
116
|
|
@@ -118,18 +118,18 @@ Gems to install:
|
|
118
118
|
installed << req.full_name
|
119
119
|
end
|
120
120
|
|
121
|
-
assert_includes installed,
|
122
|
-
assert_path_not_exist File.join Gem.dir,
|
121
|
+
assert_includes installed, "a-2"
|
122
|
+
assert_path_not_exist File.join Gem.dir, "gems", "a-2"
|
123
123
|
end
|
124
124
|
|
125
125
|
def test_install_from_gemdeps_local
|
126
126
|
spec_fetcher do |fetcher|
|
127
|
-
fetcher.gem
|
127
|
+
fetcher.gem "a", 2
|
128
128
|
end
|
129
129
|
|
130
130
|
rs = Gem::RequestSet.new
|
131
131
|
|
132
|
-
File.open
|
132
|
+
File.open "gem.deps.rb", "w" do |io|
|
133
133
|
io.puts 'gem "a"'
|
134
134
|
io.flush
|
135
135
|
|
@@ -143,15 +143,15 @@ Gems to install:
|
|
143
143
|
|
144
144
|
def test_install_from_gemdeps_lockfile
|
145
145
|
spec_fetcher do |fetcher|
|
146
|
-
fetcher.download
|
147
|
-
fetcher.download
|
148
|
-
fetcher.download
|
146
|
+
fetcher.download "a", 1
|
147
|
+
fetcher.download "a", 2
|
148
|
+
fetcher.download "b", 1, "a" => ">= 0"
|
149
149
|
end
|
150
150
|
|
151
151
|
rs = Gem::RequestSet.new
|
152
152
|
installed = []
|
153
153
|
|
154
|
-
File.open
|
154
|
+
File.open "gem.deps.rb.lock", "w" do |io|
|
155
155
|
io.puts <<-LOCKFILE
|
156
156
|
GEM
|
157
157
|
remote: #{@gem_repo}
|
@@ -168,19 +168,19 @@ DEPENDENCIES
|
|
168
168
|
LOCKFILE
|
169
169
|
end
|
170
170
|
|
171
|
-
File.open
|
171
|
+
File.open "gem.deps.rb", "w" do |io|
|
172
172
|
io.puts 'gem "b"'
|
173
173
|
end
|
174
174
|
|
175
|
-
rs.install_from_gemdeps :gemdeps =>
|
175
|
+
rs.install_from_gemdeps :gemdeps => "gem.deps.rb" do |req, installer|
|
176
176
|
installed << req.full_name
|
177
177
|
end
|
178
178
|
|
179
|
-
assert_includes installed,
|
180
|
-
assert_includes installed,
|
179
|
+
assert_includes installed, "b-1"
|
180
|
+
assert_includes installed, "a-1"
|
181
181
|
|
182
|
-
assert_path_exist File.join @gemhome,
|
183
|
-
assert_path_exist File.join @gemhome,
|
182
|
+
assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
|
183
|
+
assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
|
184
184
|
end
|
185
185
|
|
186
186
|
def test_install_from_gemdeps_complex_dependencies
|
@@ -197,7 +197,7 @@ DEPENDENCIES
|
|
197
197
|
rs = Gem::RequestSet.new
|
198
198
|
installed = []
|
199
199
|
|
200
|
-
File.open
|
200
|
+
File.open "Gemfile.lock", "w" do |io|
|
201
201
|
io.puts <<-LOCKFILE
|
202
202
|
GEM
|
203
203
|
remote: #{@gem_repo}
|
@@ -212,7 +212,7 @@ DEPENDENCIES
|
|
212
212
|
LOCKFILE
|
213
213
|
end
|
214
214
|
|
215
|
-
File.open
|
215
|
+
File.open "testo.gemspec", "w" do |io|
|
216
216
|
io.puts <<-LOCKFILE
|
217
217
|
Gem::Specification.new do |spec|
|
218
218
|
spec.name = 'testo'
|
@@ -222,28 +222,28 @@ end
|
|
222
222
|
LOCKFILE
|
223
223
|
end
|
224
224
|
|
225
|
-
File.open
|
225
|
+
File.open "Gemfile", "w" do |io|
|
226
226
|
io.puts("gemspec")
|
227
227
|
end
|
228
228
|
|
229
|
-
rs.install_from_gemdeps :gemdeps =>
|
229
|
+
rs.install_from_gemdeps :gemdeps => "Gemfile" do |req, installer|
|
230
230
|
installed << req.full_name
|
231
231
|
end
|
232
232
|
|
233
|
-
assert_includes installed,
|
233
|
+
assert_includes installed, "z-1.0.3"
|
234
234
|
|
235
|
-
assert_path_exist File.join @gemhome,
|
235
|
+
assert_path_exist File.join @gemhome, "specifications", "z-1.0.3.gemspec"
|
236
236
|
end
|
237
237
|
|
238
238
|
def test_install_from_gemdeps_version_mismatch
|
239
239
|
spec_fetcher do |fetcher|
|
240
|
-
fetcher.gem
|
240
|
+
fetcher.gem "a", 2
|
241
241
|
end
|
242
242
|
|
243
243
|
rs = Gem::RequestSet.new
|
244
244
|
installed = []
|
245
245
|
|
246
|
-
File.open
|
246
|
+
File.open "gem.deps.rb", "w" do |io|
|
247
247
|
io.puts <<-GEM_DEPS
|
248
248
|
gem "a"
|
249
249
|
ruby "0"
|
@@ -256,13 +256,13 @@ ruby "0"
|
|
256
256
|
end
|
257
257
|
end
|
258
258
|
|
259
|
-
assert_includes installed,
|
259
|
+
assert_includes installed, "a-2"
|
260
260
|
end
|
261
261
|
|
262
262
|
def test_load_gemdeps
|
263
263
|
rs = Gem::RequestSet.new
|
264
264
|
|
265
|
-
tf = Tempfile.open
|
265
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
266
266
|
io.puts 'gem "a"'
|
267
267
|
io.flush
|
268
268
|
|
@@ -273,7 +273,7 @@ ruby "0"
|
|
273
273
|
end
|
274
274
|
tf.close!
|
275
275
|
|
276
|
-
assert_equal [dep(
|
276
|
+
assert_equal [dep("a")], rs.dependencies
|
277
277
|
|
278
278
|
assert rs.git_set
|
279
279
|
assert rs.vendor_set
|
@@ -282,7 +282,7 @@ ruby "0"
|
|
282
282
|
def test_load_gemdeps_installing
|
283
283
|
rs = Gem::RequestSet.new
|
284
284
|
|
285
|
-
tf = Tempfile.open
|
285
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
286
286
|
io.puts 'ruby "0"'
|
287
287
|
io.puts 'gem "a"'
|
288
288
|
io.flush
|
@@ -294,13 +294,13 @@ ruby "0"
|
|
294
294
|
end
|
295
295
|
tf.close!
|
296
296
|
|
297
|
-
assert_equal [dep(
|
297
|
+
assert_equal [dep("a")], rs.dependencies
|
298
298
|
end
|
299
299
|
|
300
300
|
def test_load_gemdeps_without_groups
|
301
301
|
rs = Gem::RequestSet.new
|
302
302
|
|
303
|
-
tf = Tempfile.open
|
303
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
304
304
|
io.puts 'gem "a", :group => :test'
|
305
305
|
io.flush
|
306
306
|
|
@@ -332,12 +332,12 @@ ruby "0"
|
|
332
332
|
end
|
333
333
|
|
334
334
|
def test_bug_bug_990
|
335
|
-
a = util_spec
|
336
|
-
b = util_spec
|
337
|
-
c = util_spec
|
335
|
+
a = util_spec "a", "1.b", "b" => "~> 1.a"
|
336
|
+
b = util_spec "b", "1.b", "c" => ">= 1"
|
337
|
+
c = util_spec "c", "1.1.b"
|
338
338
|
|
339
339
|
rs = Gem::RequestSet.new
|
340
|
-
rs.gem
|
340
|
+
rs.gem "a"
|
341
341
|
rs.prerelease = true
|
342
342
|
|
343
343
|
res = rs.resolve StaticSet.new([a, b, c])
|
@@ -349,11 +349,11 @@ ruby "0"
|
|
349
349
|
end
|
350
350
|
|
351
351
|
def test_resolve_development
|
352
|
-
a = util_spec
|
352
|
+
a = util_spec "a", 1
|
353
353
|
spec = Gem::Resolver::SpecSpecification.new nil, a
|
354
354
|
|
355
355
|
rs = Gem::RequestSet.new
|
356
|
-
rs.gem
|
356
|
+
rs.gem "a"
|
357
357
|
rs.development = true
|
358
358
|
|
359
359
|
res = rs.resolve StaticSet.new [spec]
|
@@ -364,22 +364,22 @@ ruby "0"
|
|
364
364
|
end
|
365
365
|
|
366
366
|
def test_resolve_development_shallow
|
367
|
-
a = util_spec
|
368
|
-
s.add_development_dependency
|
367
|
+
a = util_spec "a", 1 do |s|
|
368
|
+
s.add_development_dependency "b"
|
369
369
|
end
|
370
370
|
|
371
|
-
b = util_spec
|
372
|
-
s.add_development_dependency
|
371
|
+
b = util_spec "b", 1 do |s|
|
372
|
+
s.add_development_dependency "c"
|
373
373
|
end
|
374
374
|
|
375
|
-
c = util_spec
|
375
|
+
c = util_spec "c", 1
|
376
376
|
|
377
377
|
a_spec = Gem::Resolver::SpecSpecification.new nil, a
|
378
378
|
b_spec = Gem::Resolver::SpecSpecification.new nil, b
|
379
379
|
c_spec = Gem::Resolver::SpecSpecification.new nil, c
|
380
380
|
|
381
381
|
rs = Gem::RequestSet.new
|
382
|
-
rs.gem
|
382
|
+
rs.gem "a"
|
383
383
|
rs.development = true
|
384
384
|
rs.development_shallow = true
|
385
385
|
|
@@ -395,7 +395,7 @@ ruby "0"
|
|
395
395
|
|
396
396
|
rs = Gem::RequestSet.new
|
397
397
|
|
398
|
-
tf = Tempfile.open
|
398
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
399
399
|
io.puts <<-GEMS_DEPS_RB
|
400
400
|
gem "#{name}", :git => "#{repository}"
|
401
401
|
GEMS_DEPS_RB
|
@@ -435,12 +435,12 @@ ruby "0"
|
|
435
435
|
end
|
436
436
|
|
437
437
|
def test_resolve_incompatible
|
438
|
-
a1 = util_spec
|
439
|
-
a2 = util_spec
|
438
|
+
a1 = util_spec "a", 1
|
439
|
+
a2 = util_spec "a", 2
|
440
440
|
|
441
441
|
rs = Gem::RequestSet.new
|
442
|
-
rs.gem
|
443
|
-
rs.gem
|
442
|
+
rs.gem "a", "= 1"
|
443
|
+
rs.gem "a", "= 2"
|
444
444
|
|
445
445
|
set = StaticSet.new [a1, a2]
|
446
446
|
|
@@ -450,15 +450,15 @@ ruby "0"
|
|
450
450
|
end
|
451
451
|
|
452
452
|
def test_resolve_vendor
|
453
|
-
a_name, _, a_directory = vendor_gem
|
454
|
-
s.add_dependency
|
453
|
+
a_name, _, a_directory = vendor_gem "a", 1 do |s|
|
454
|
+
s.add_dependency "b", "~> 2.0"
|
455
455
|
end
|
456
456
|
|
457
|
-
b_name, _, b_directory = vendor_gem
|
457
|
+
b_name, _, b_directory = vendor_gem "b", 2
|
458
458
|
|
459
459
|
rs = Gem::RequestSet.new
|
460
460
|
|
461
|
-
tf = Tempfile.open
|
461
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
462
462
|
io.puts <<-GEMS_DEPS_RB
|
463
463
|
gem "#{a_name}", :path => "#{a_directory}"
|
464
464
|
gem "#{b_name}", :path => "#{b_directory}"
|
@@ -509,7 +509,7 @@ ruby "0"
|
|
509
509
|
end
|
510
510
|
|
511
511
|
rs = Gem::RequestSet.new
|
512
|
-
rs.gem
|
512
|
+
rs.gem "a"
|
513
513
|
|
514
514
|
rs.resolve
|
515
515
|
|
@@ -525,8 +525,8 @@ ruby "0"
|
|
525
525
|
assert_equal %w[b-1 a-1],
|
526
526
|
installers.map {|installer| installer.spec.full_name }
|
527
527
|
|
528
|
-
assert_path_exist File.join @gemhome,
|
529
|
-
assert_path_exist File.join @gemhome,
|
528
|
+
assert_path_exist File.join @gemhome, "specifications", "a-1.gemspec"
|
529
|
+
assert_path_exist File.join @gemhome, "specifications", "b-1.gemspec"
|
530
530
|
|
531
531
|
assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
|
532
532
|
|
@@ -545,32 +545,32 @@ ruby "0"
|
|
545
545
|
rs.resolve
|
546
546
|
|
547
547
|
installed = rs.install_into @tempdir do
|
548
|
-
assert_equal @tempdir, ENV[
|
548
|
+
assert_equal @tempdir, ENV["GEM_HOME"]
|
549
549
|
end
|
550
550
|
|
551
|
-
assert_path_exist File.join @tempdir,
|
552
|
-
assert_path_exist File.join @tempdir,
|
551
|
+
assert_path_exist File.join @tempdir, "specifications", "a-1.gemspec"
|
552
|
+
assert_path_exist File.join @tempdir, "specifications", "b-1.gemspec"
|
553
553
|
|
554
554
|
assert_equal %w[b-1 a-1], installed.map {|s| s.full_name }
|
555
555
|
end
|
556
556
|
|
557
557
|
def test_install_into_development_shallow
|
558
558
|
spec_fetcher do |fetcher|
|
559
|
-
fetcher.gem
|
560
|
-
s.add_development_dependency
|
559
|
+
fetcher.gem "a", "1" do |s|
|
560
|
+
s.add_development_dependency "b", "= 1"
|
561
561
|
end
|
562
562
|
|
563
|
-
fetcher.gem
|
564
|
-
s.add_development_dependency
|
563
|
+
fetcher.gem "b", "1" do |s|
|
564
|
+
s.add_development_dependency "c", "= 1"
|
565
565
|
end
|
566
566
|
|
567
|
-
fetcher.spec
|
567
|
+
fetcher.spec "c", "1"
|
568
568
|
end
|
569
569
|
|
570
570
|
rs = Gem::RequestSet.new
|
571
571
|
rs.development = true
|
572
572
|
rs.development_shallow = true
|
573
|
-
rs.gem
|
573
|
+
rs.gem "a"
|
574
574
|
|
575
575
|
rs.resolve
|
576
576
|
|
@@ -580,25 +580,25 @@ ruby "0"
|
|
580
580
|
}
|
581
581
|
|
582
582
|
installed = rs.install_into @tempdir, true, options do
|
583
|
-
assert_equal @tempdir, ENV[
|
583
|
+
assert_equal @tempdir, ENV["GEM_HOME"]
|
584
584
|
end
|
585
585
|
|
586
586
|
assert_equal %w[a-1 b-1], installed.map {|s| s.full_name }.sort
|
587
587
|
end
|
588
588
|
|
589
589
|
def test_sorted_requests_development_shallow
|
590
|
-
a = util_spec
|
591
|
-
s.add_development_dependency
|
590
|
+
a = util_spec "a", 1 do |s|
|
591
|
+
s.add_development_dependency "b"
|
592
592
|
end
|
593
593
|
|
594
|
-
b = util_spec
|
595
|
-
s.add_development_dependency
|
594
|
+
b = util_spec "b", 1 do |s|
|
595
|
+
s.add_development_dependency "c"
|
596
596
|
end
|
597
597
|
|
598
|
-
c = util_spec
|
598
|
+
c = util_spec "c", 1
|
599
599
|
|
600
600
|
rs = Gem::RequestSet.new
|
601
|
-
rs.gem
|
601
|
+
rs.gem "a"
|
602
602
|
rs.development = true
|
603
603
|
rs.development_shallow = true
|
604
604
|
|
@@ -612,18 +612,18 @@ ruby "0"
|
|
612
612
|
end
|
613
613
|
|
614
614
|
def test_tsort_each_child_development
|
615
|
-
a = util_spec
|
616
|
-
s.add_development_dependency
|
615
|
+
a = util_spec "a", 1 do |s|
|
616
|
+
s.add_development_dependency "b"
|
617
617
|
end
|
618
618
|
|
619
|
-
b = util_spec
|
620
|
-
s.add_development_dependency
|
619
|
+
b = util_spec "b", 1 do |s|
|
620
|
+
s.add_development_dependency "c"
|
621
621
|
end
|
622
622
|
|
623
|
-
c = util_spec
|
623
|
+
c = util_spec "c", 1
|
624
624
|
|
625
625
|
rs = Gem::RequestSet.new
|
626
|
-
rs.gem
|
626
|
+
rs.gem "a"
|
627
627
|
rs.development = true
|
628
628
|
rs.development_shallow = true
|
629
629
|
|
@@ -641,18 +641,18 @@ ruby "0"
|
|
641
641
|
end
|
642
642
|
|
643
643
|
def test_tsort_each_child_development_shallow
|
644
|
-
a = util_spec
|
645
|
-
s.add_development_dependency
|
644
|
+
a = util_spec "a", 1 do |s|
|
645
|
+
s.add_development_dependency "b"
|
646
646
|
end
|
647
647
|
|
648
|
-
b = util_spec
|
649
|
-
s.add_development_dependency
|
648
|
+
b = util_spec "b", 1 do |s|
|
649
|
+
s.add_development_dependency "c"
|
650
650
|
end
|
651
651
|
|
652
|
-
c = util_spec
|
652
|
+
c = util_spec "c", 1
|
653
653
|
|
654
654
|
rs = Gem::RequestSet.new
|
655
|
-
rs.gem
|
655
|
+
rs.gem "a"
|
656
656
|
rs.development = true
|
657
657
|
rs.development_shallow = true
|
658
658
|
|