rubygems-update 2.1.0.rc.1 → 2.1.0.rc.2
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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.txt +11 -3
- data/Manifest.txt +1 -0
- data/Rakefile +22 -18
- data/lib/rubygems.rb +8 -10
- data/lib/rubygems/basic_specification.rb +112 -108
- data/lib/rubygems/commands/build_command.rb +19 -0
- data/lib/rubygems/commands/check_command.rb +7 -0
- data/lib/rubygems/commands/cleanup_command.rb +5 -5
- data/lib/rubygems/commands/contents_command.rb +8 -0
- data/lib/rubygems/commands/dependency_command.rb +11 -0
- data/lib/rubygems/commands/environment_command.rb +3 -0
- data/lib/rubygems/commands/fetch_command.rb +10 -0
- data/lib/rubygems/commands/list_command.rb +12 -1
- data/lib/rubygems/commands/mirror_command.rb +6 -0
- data/lib/rubygems/commands/outdated_command.rb +9 -0
- data/lib/rubygems/commands/owner_command.rb +9 -2
- data/lib/rubygems/commands/pristine_command.rb +12 -11
- data/lib/rubygems/commands/push_command.rb +8 -2
- data/lib/rubygems/commands/query_command.rb +9 -0
- data/lib/rubygems/commands/rdoc_command.rb +6 -2
- data/lib/rubygems/commands/search_command.rb +14 -1
- data/lib/rubygems/commands/sources_command.rb +47 -0
- data/lib/rubygems/commands/specification_command.rb +16 -0
- data/lib/rubygems/commands/stale_command.rb +10 -0
- data/lib/rubygems/commands/uninstall_command.rb +19 -6
- data/lib/rubygems/commands/unpack_command.rb +18 -0
- data/lib/rubygems/commands/update_command.rb +9 -0
- data/lib/rubygems/commands/which_command.rb +11 -0
- data/lib/rubygems/commands/yank_command.rb +16 -2
- data/lib/rubygems/core_ext/kernel_require.rb +4 -4
- data/lib/rubygems/defaults.rb +7 -0
- data/lib/rubygems/dependency_installer.rb +1 -4
- data/lib/rubygems/ext/builder.rb +118 -0
- data/lib/rubygems/installer.rb +7 -60
- data/lib/rubygems/package_task.rb +5 -2
- data/lib/rubygems/remote_fetcher.rb +1 -1
- data/lib/rubygems/security/policy.rb +5 -0
- data/lib/rubygems/security/signer.rb +19 -1
- data/lib/rubygems/source.rb +7 -3
- data/lib/rubygems/source/local.rb +5 -4
- data/lib/rubygems/source/specific_file.rb +28 -0
- data/lib/rubygems/specification.rb +55 -44
- data/lib/rubygems/stub_specification.rb +93 -92
- data/lib/rubygems/test_case.rb +10 -9
- data/test/rubygems/test_gem.rb +27 -0
- data/test/rubygems/test_gem_commands_install_command.rb +1 -0
- data/test/rubygems/test_gem_commands_uninstall_command.rb +17 -8
- data/test/rubygems/test_gem_ext_builder.rb +97 -2
- data/test/rubygems/test_gem_installer.rb +0 -89
- data/test/rubygems/test_gem_package.rb +6 -8
- data/test/rubygems/test_gem_package_task.rb +23 -2
- data/test/rubygems/test_gem_security_policy.rb +11 -0
- data/test/rubygems/test_gem_security_signer.rb +6 -0
- data/test/rubygems/test_gem_source.rb +23 -0
- data/test/rubygems/test_gem_source_installed.rb +28 -0
- data/test/rubygems/test_gem_source_local.rb +29 -6
- data/test/rubygems/test_gem_source_specific_file.rb +38 -0
- data/test/rubygems/test_gem_specification.rb +10 -2
- metadata +7 -5
- metadata.gz.sig +0 -0
@@ -6,7 +6,7 @@ class Gem::Commands::CleanupCommand < Gem::Command
|
|
6
6
|
|
7
7
|
def initialize
|
8
8
|
super 'cleanup',
|
9
|
-
'Clean up old versions of installed gems
|
9
|
+
'Clean up old versions of installed gems',
|
10
10
|
:force => false, :install_dir => Gem.dir
|
11
11
|
|
12
12
|
add_option('-n', '-d', '--dryrun',
|
@@ -33,11 +33,11 @@ class Gem::Commands::CleanupCommand < Gem::Command
|
|
33
33
|
|
34
34
|
def description # :nodoc:
|
35
35
|
<<-EOF
|
36
|
-
The cleanup command removes old gems from GEM_HOME
|
37
|
-
|
36
|
+
The cleanup command removes old versions of gems from GEM_HOME that are not
|
37
|
+
required to meet a dependency. If a gem is installed elsewhere in GEM_PATH
|
38
|
+
the cleanup command won't delete it.
|
38
39
|
|
39
|
-
|
40
|
-
are not removed.
|
40
|
+
If no gems are named all gems in GEM_HOME are cleaned.
|
41
41
|
EOF
|
42
42
|
end
|
43
43
|
|
@@ -45,6 +45,14 @@ class Gem::Commands::ContentsCommand < Gem::Command
|
|
45
45
|
"--no-lib-only --prefix"
|
46
46
|
end
|
47
47
|
|
48
|
+
def description # :nodoc:
|
49
|
+
<<-EOF
|
50
|
+
The contents command lists the files in an installed gem. The listing can
|
51
|
+
be given as full file names, file names without the installed directory
|
52
|
+
prefix or only the files that are requireable.
|
53
|
+
EOF
|
54
|
+
end
|
55
|
+
|
48
56
|
def usage # :nodoc:
|
49
57
|
"#{program_name} GEMNAME [GEMNAME ...]"
|
50
58
|
end
|
@@ -38,6 +38,17 @@ class Gem::Commands::DependencyCommand < Gem::Command
|
|
38
38
|
"--local --version '#{Gem::Requirement.default}' --no-reverse-dependencies"
|
39
39
|
end
|
40
40
|
|
41
|
+
def description # :nodoc:
|
42
|
+
<<-EOF
|
43
|
+
The dependency commands lists which other gems a given gem depends on. For
|
44
|
+
local gems only the reverse dependencies can be shown (which gems depend on
|
45
|
+
the named gem).
|
46
|
+
|
47
|
+
The dependency list can be displayed in a format suitable for piping for
|
48
|
+
use with other commands.
|
49
|
+
EOF
|
50
|
+
end
|
51
|
+
|
41
52
|
def usage # :nodoc:
|
42
53
|
"#{program_name} GEMNAME"
|
43
54
|
end
|
@@ -21,6 +21,9 @@ class Gem::Commands::EnvironmentCommand < Gem::Command
|
|
21
21
|
|
22
22
|
def description # :nodoc:
|
23
23
|
<<-EOF
|
24
|
+
The environment command lets you query rubygems for its configuration for
|
25
|
+
use in shell scripts or as a debugging aid.
|
26
|
+
|
24
27
|
The RubyGems environment can be controlled through command line arguments,
|
25
28
|
gemrc files, environment variables and built-in defaults.
|
26
29
|
|
@@ -28,6 +28,16 @@ class Gem::Commands::FetchCommand < Gem::Command
|
|
28
28
|
"--version '#{Gem::Requirement.default}'"
|
29
29
|
end
|
30
30
|
|
31
|
+
def description # :nodoc:
|
32
|
+
<<-EOF
|
33
|
+
The fetch command fetches gem files that can be stored for later use or
|
34
|
+
unpacked to examine their contents.
|
35
|
+
|
36
|
+
See the build command help for an example of unpacking a gem, modifying it,
|
37
|
+
then repackaging it.
|
38
|
+
EOF
|
39
|
+
end
|
40
|
+
|
31
41
|
def usage # :nodoc:
|
32
42
|
"#{program_name} GEMNAME [GEMNAME ...]"
|
33
43
|
end
|
@@ -8,7 +8,7 @@ require 'rubygems/commands/query_command'
|
|
8
8
|
class Gem::Commands::ListCommand < Gem::Commands::QueryCommand
|
9
9
|
|
10
10
|
def initialize
|
11
|
-
super 'list', 'Display gems whose name starts with STRING'
|
11
|
+
super 'list', 'Display local gems whose name starts with STRING'
|
12
12
|
|
13
13
|
remove_option('--name-matches')
|
14
14
|
end
|
@@ -21,6 +21,17 @@ class Gem::Commands::ListCommand < Gem::Commands::QueryCommand
|
|
21
21
|
"--local --no-details"
|
22
22
|
end
|
23
23
|
|
24
|
+
def description # :nodoc:
|
25
|
+
<<-EOF
|
26
|
+
The list command is used to view the gems you have installed locally.
|
27
|
+
|
28
|
+
The --details option displays additional details including the summary, the
|
29
|
+
homepage, the author, the locations of different versions of the gem.
|
30
|
+
|
31
|
+
To search for remote gems use the search command.
|
32
|
+
EOF
|
33
|
+
end
|
34
|
+
|
24
35
|
def usage # :nodoc:
|
25
36
|
"#{program_name} [STRING]"
|
26
37
|
end
|
@@ -10,6 +10,12 @@ class Gem::Commands::MirrorCommand < Gem::Command
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
+
def description # :nodoc:
|
14
|
+
<<-EOF
|
15
|
+
The mirror command has been moved to the rubygems-mirror gem.
|
16
|
+
EOF
|
17
|
+
end
|
18
|
+
|
13
19
|
def execute
|
14
20
|
alert_error "Install the rubygems-mirror gem for the mirror command"
|
15
21
|
end
|
@@ -15,6 +15,15 @@ class Gem::Commands::OutdatedCommand < Gem::Command
|
|
15
15
|
add_platform_option
|
16
16
|
end
|
17
17
|
|
18
|
+
def description # :nodoc:
|
19
|
+
<<-EOF
|
20
|
+
The outdated command lists gems you way wish to upgrade to a newer version.
|
21
|
+
|
22
|
+
You can check for dependency mismatches using the dependency command and
|
23
|
+
update the gems with the update or install commands.
|
24
|
+
EOF
|
25
|
+
end
|
26
|
+
|
18
27
|
def execute
|
19
28
|
Gem::Specification.outdated_and_latest_version.each do |spec, remote_version|
|
20
29
|
say "#{spec.name} (#{spec.version} < #{remote_version})"
|
@@ -7,7 +7,14 @@ class Gem::Commands::OwnerCommand < Gem::Command
|
|
7
7
|
include Gem::GemcutterUtilities
|
8
8
|
|
9
9
|
def description # :nodoc:
|
10
|
-
|
10
|
+
<<-EOF
|
11
|
+
The owner command lets you add and remove owners of a gem on a push
|
12
|
+
server (the default is https://rubygems.org).
|
13
|
+
|
14
|
+
The owner of a gem has the permission to push new versions, yank existing
|
15
|
+
versions or edit the HTML page of the gem. Be careful of who you give push
|
16
|
+
permission to.
|
17
|
+
EOF
|
11
18
|
end
|
12
19
|
|
13
20
|
def arguments # :nodoc:
|
@@ -19,7 +26,7 @@ class Gem::Commands::OwnerCommand < Gem::Command
|
|
19
26
|
end
|
20
27
|
|
21
28
|
def initialize
|
22
|
-
super 'owner',
|
29
|
+
super 'owner', 'Manage gem owners of a gem on the push server'
|
23
30
|
add_proxy_option
|
24
31
|
add_key_option
|
25
32
|
defaults.merge! :add => [], :remove => []
|
@@ -21,7 +21,8 @@ class Gem::Commands::PristineCommand < Gem::Command
|
|
21
21
|
end
|
22
22
|
|
23
23
|
add_option('--[no-]extensions',
|
24
|
-
'Restore gems with extensions'
|
24
|
+
'Restore gems with extensions',
|
25
|
+
'in addition to regular gems') do |value, options|
|
25
26
|
options[:extensions] = value
|
26
27
|
end
|
27
28
|
|
@@ -49,23 +50,23 @@ class Gem::Commands::PristineCommand < Gem::Command
|
|
49
50
|
|
50
51
|
def description # :nodoc:
|
51
52
|
<<-EOF
|
52
|
-
The pristine command compares
|
53
|
-
cached gem and restores any files that don't match the cached gem's
|
53
|
+
The pristine command compares an installed gem with the contents of its
|
54
|
+
cached .gem file and restores any files that don't match the cached .gem's
|
55
|
+
copy.
|
54
56
|
|
55
|
-
If you have made modifications to
|
56
|
-
will revert them.
|
57
|
-
|
57
|
+
If you have made modifications to an installed gem, the pristine command
|
58
|
+
will revert them. All extensions are rebuilt and all bin stubs for the gem
|
59
|
+
are regenerated after checking for modifications.
|
58
60
|
|
59
|
-
If the cached gem cannot be found
|
60
|
-
revert the gem.
|
61
|
+
If the cached gem cannot be found it will be downloaded.
|
61
62
|
|
62
|
-
If --no-extensions is provided pristine will not attempt to restore
|
63
|
-
with
|
63
|
+
If --no-extensions is provided pristine will not attempt to restore a gem
|
64
|
+
with an extension.
|
64
65
|
EOF
|
65
66
|
end
|
66
67
|
|
67
68
|
def usage # :nodoc:
|
68
|
-
"#{program_name} [
|
69
|
+
"#{program_name} [GEMNAME ...]"
|
69
70
|
end
|
70
71
|
|
71
72
|
def execute
|
@@ -8,7 +8,13 @@ class Gem::Commands::PushCommand < Gem::Command
|
|
8
8
|
include Gem::GemcutterUtilities
|
9
9
|
|
10
10
|
def description # :nodoc:
|
11
|
-
|
11
|
+
<<-EOF
|
12
|
+
The push command uploads a gem to the push server (the default is
|
13
|
+
https://rubygems.org) and adds it to the index.
|
14
|
+
|
15
|
+
The gem can be removed from the index (but only the index) using the yank
|
16
|
+
command. For further discussion see the help for the yank command.
|
17
|
+
EOF
|
12
18
|
end
|
13
19
|
|
14
20
|
def arguments # :nodoc:
|
@@ -20,7 +26,7 @@ class Gem::Commands::PushCommand < Gem::Command
|
|
20
26
|
end
|
21
27
|
|
22
28
|
def initialize
|
23
|
-
super 'push',
|
29
|
+
super 'push', 'Push a gem up to the gem server', :host => self.host
|
24
30
|
|
25
31
|
add_proxy_option
|
26
32
|
add_key_option
|
@@ -61,6 +61,15 @@ class Gem::Commands::QueryCommand < Gem::Command
|
|
61
61
|
"--local --name-matches // --no-details --versions --no-installed"
|
62
62
|
end
|
63
63
|
|
64
|
+
def description # :nodoc:
|
65
|
+
<<-EOF
|
66
|
+
The query command is the basis for the list and search commands.
|
67
|
+
|
68
|
+
You should really use the list and search commands instead. This command
|
69
|
+
is too hard to use.
|
70
|
+
EOF
|
71
|
+
end
|
72
|
+
|
64
73
|
def execute
|
65
74
|
exit_code = 0
|
66
75
|
|
@@ -45,8 +45,12 @@ class Gem::Commands::RdocCommand < Gem::Command
|
|
45
45
|
|
46
46
|
def description # :nodoc:
|
47
47
|
<<-DESC
|
48
|
-
The rdoc command builds
|
49
|
-
|
48
|
+
The rdoc command builds documentation for installed gems. By default
|
49
|
+
only documentation is built using rdoc, but additional types of
|
50
|
+
documentation may be built through rubygems plugins and the
|
51
|
+
Gem.post_installs hook.
|
52
|
+
|
53
|
+
Use --overwrite to force rebuilding of documentation.
|
50
54
|
DESC
|
51
55
|
end
|
52
56
|
|
@@ -4,7 +4,7 @@ require 'rubygems/commands/query_command'
|
|
4
4
|
class Gem::Commands::SearchCommand < Gem::Commands::QueryCommand
|
5
5
|
|
6
6
|
def initialize
|
7
|
-
super 'search', 'Display
|
7
|
+
super 'search', 'Display remote gems whose name contains STRING'
|
8
8
|
|
9
9
|
remove_option '--name-matches'
|
10
10
|
|
@@ -19,6 +19,19 @@ class Gem::Commands::SearchCommand < Gem::Commands::QueryCommand
|
|
19
19
|
"--remote --no-details"
|
20
20
|
end
|
21
21
|
|
22
|
+
def description # :nodoc:
|
23
|
+
<<-EOF
|
24
|
+
The search command displays remote gems whose name contains the given
|
25
|
+
string.
|
26
|
+
|
27
|
+
The --details option displays additional details from the gem but will
|
28
|
+
take a little longer to complete as it must download the information
|
29
|
+
individually from the index.
|
30
|
+
|
31
|
+
To list local gems use the list command.
|
32
|
+
EOF
|
33
|
+
end
|
34
|
+
|
22
35
|
def usage # :nodoc:
|
23
36
|
"#{program_name} [STRING]"
|
24
37
|
end
|
@@ -97,6 +97,53 @@ Do you want to add this insecure source?
|
|
97
97
|
'--list'
|
98
98
|
end
|
99
99
|
|
100
|
+
def description # :nodoc:
|
101
|
+
<<-EOF
|
102
|
+
RubyGems fetches gems from the sources you have configured (stored in your
|
103
|
+
~/.gemrc).
|
104
|
+
|
105
|
+
The default source is https://rubygems.org, but you may have older sources
|
106
|
+
configured. This guide will help you update your sources or configure
|
107
|
+
yourself to use your own gem server.
|
108
|
+
|
109
|
+
Without any arguments the sources lists your currently configured sources:
|
110
|
+
|
111
|
+
$ gem sources
|
112
|
+
*** CURRENT SOURCES ***
|
113
|
+
|
114
|
+
https://rubygems.org
|
115
|
+
|
116
|
+
This may list multiple sources or non-rubygems sources. You probably
|
117
|
+
configured them before or have an old `~/.gemrc`. If you have sources you
|
118
|
+
do not recognize you should remove them.
|
119
|
+
|
120
|
+
RubyGems has been configured to serve gems via the following URLs through
|
121
|
+
its history:
|
122
|
+
|
123
|
+
* http://gems.rubyforge.org (RubyGems 1.3.6 and earlier)
|
124
|
+
* http://rubygems.org (RubyGems 1.3.7 through 1.8.25)
|
125
|
+
* https://rubygems.org (RubyGems 2.0.1 and newer)
|
126
|
+
|
127
|
+
Since all of these sources point to the same set of gems you only need one
|
128
|
+
of them in your list. https://rubygems.org is recommended as it brings the
|
129
|
+
protections of an SSL connection to gem downloads.
|
130
|
+
|
131
|
+
To add a source use the --add argument:
|
132
|
+
|
133
|
+
$ gem sources --add https://rubygems.org
|
134
|
+
https://rubygems.org added to sources
|
135
|
+
|
136
|
+
RubyGems will check to see if gems can be installed from the source given
|
137
|
+
before it is added.
|
138
|
+
|
139
|
+
To remove a source use the --remove argument:
|
140
|
+
|
141
|
+
$ gem sources --remove http://rubygems.org
|
142
|
+
http://rubygems.org removed from sources
|
143
|
+
|
144
|
+
EOF
|
145
|
+
end
|
146
|
+
|
100
147
|
def list # :nodoc:
|
101
148
|
say "*** CURRENT SOURCES ***"
|
102
149
|
say
|
@@ -50,6 +50,22 @@ FIELD name of gemspec field to show
|
|
50
50
|
"--local --version '#{Gem::Requirement.default}' --yaml"
|
51
51
|
end
|
52
52
|
|
53
|
+
def description # :nodoc:
|
54
|
+
<<-EOF
|
55
|
+
The specification command allows you to extract the specification from
|
56
|
+
a gem for examination.
|
57
|
+
|
58
|
+
The specification can be output in YAML, ruby or Marshal formats.
|
59
|
+
|
60
|
+
Specific fields in the specification can be extracted in YAML format:
|
61
|
+
|
62
|
+
$ gem spec rake summary
|
63
|
+
--- Ruby based make-like utility.
|
64
|
+
...
|
65
|
+
|
66
|
+
EOF
|
67
|
+
end
|
68
|
+
|
53
69
|
def usage # :nodoc:
|
54
70
|
"#{program_name} [GEMFILE] [FIELD]"
|
55
71
|
end
|
@@ -5,6 +5,16 @@ class Gem::Commands::StaleCommand < Gem::Command
|
|
5
5
|
super('stale', 'List gems along with access times')
|
6
6
|
end
|
7
7
|
|
8
|
+
def description # :nodoc:
|
9
|
+
<<-EOF
|
10
|
+
The stale command lists the latest access time for all the files in your
|
11
|
+
installed gems.
|
12
|
+
|
13
|
+
You can use this command to discover gems and gem versions you are no
|
14
|
+
longer using.
|
15
|
+
EOF
|
16
|
+
end
|
17
|
+
|
8
18
|
def usage # :nodoc:
|
9
19
|
"#{program_name}"
|
10
20
|
end
|
@@ -88,6 +88,16 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
|
88
88
|
"--user-install"
|
89
89
|
end
|
90
90
|
|
91
|
+
def description # :nodoc:
|
92
|
+
<<-EOF
|
93
|
+
The uninstall command removes a previously installed gem.
|
94
|
+
|
95
|
+
RubyGems will ask for confirmation if you are attempting to uninstall a gem
|
96
|
+
that is a dependency of an existing gem. You can use the
|
97
|
+
--ignore-dependencies option to skip this check.
|
98
|
+
EOF
|
99
|
+
end
|
100
|
+
|
91
101
|
def usage # :nodoc:
|
92
102
|
"#{program_name} GEMNAME [GEMNAME ...]"
|
93
103
|
end
|
@@ -104,15 +114,18 @@ class Gem::Commands::UninstallCommand < Gem::Command
|
|
104
114
|
end
|
105
115
|
|
106
116
|
def uninstall_all
|
107
|
-
|
117
|
+
_, specs = Gem::Specification.partition { |spec| spec.default_gem? }
|
108
118
|
|
109
|
-
|
110
|
-
|
119
|
+
specs.each do |spec|
|
120
|
+
options[:version] = spec.version
|
111
121
|
|
112
|
-
|
113
|
-
|
122
|
+
begin
|
123
|
+
Gem::Uninstaller.new(spec.name, options).uninstall
|
124
|
+
rescue Gem::InstallError
|
125
|
+
end
|
114
126
|
end
|
115
|
-
|
127
|
+
|
128
|
+
alert "Uninstalled all gems in #{options[:install_dir]}"
|
116
129
|
end
|
117
130
|
|
118
131
|
def uninstall_specific
|
@@ -34,6 +34,24 @@ class Gem::Commands::UnpackCommand < Gem::Command
|
|
34
34
|
"--version '#{Gem::Requirement.default}'"
|
35
35
|
end
|
36
36
|
|
37
|
+
def description
|
38
|
+
<<-EOF
|
39
|
+
The unpack command allows you to examine the contents of a gem or modify
|
40
|
+
them to help diagnose a bug.
|
41
|
+
|
42
|
+
You can add the contents of the unpacked gem to the load path using the
|
43
|
+
RUBYLIB environment variable or -I:
|
44
|
+
|
45
|
+
$ gem unpack my_gem
|
46
|
+
Unpacked gem: '.../my_gem-1.0'
|
47
|
+
[edit my_gem-1.0/lib/my_gem.rb]
|
48
|
+
$ ruby -Imy_gem-1.0/lib -S other_program
|
49
|
+
|
50
|
+
You can repackage an unpacked gem using the build command. See the build
|
51
|
+
command help for an example.
|
52
|
+
EOF
|
53
|
+
end
|
54
|
+
|
37
55
|
def usage # :nodoc:
|
38
56
|
"#{program_name} GEMNAME"
|
39
57
|
end
|