rubygems-update 1.1.1 → 1.2.0
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.
- data.tar.gz.sig +0 -0
- data/ChangeLog +267 -1
- data/Rakefile +13 -7
- data/doc/release_notes/rel_1_2_0.rdoc +105 -0
- data/lib/rubygems.rb +82 -14
- data/lib/rubygems/command.rb +1 -1
- data/lib/rubygems/command_manager.rb +3 -2
- data/lib/rubygems/commands/cert_command.rb +1 -1
- data/lib/rubygems/commands/dependency_command.rb +57 -19
- data/lib/rubygems/commands/environment_command.rb +2 -0
- data/lib/rubygems/commands/fetch_command.rb +3 -1
- data/lib/rubygems/commands/install_command.rb +3 -3
- data/lib/rubygems/commands/list_command.rb +30 -28
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/outdated_command.rb +5 -2
- data/lib/rubygems/commands/pristine_command.rb +3 -44
- data/lib/rubygems/commands/query_command.rb +80 -21
- data/lib/rubygems/commands/sources_command.rb +56 -28
- data/lib/rubygems/commands/specification_command.rb +4 -3
- data/lib/rubygems/commands/stale_command.rb +27 -0
- data/lib/rubygems/commands/update_command.rb +35 -22
- data/lib/rubygems/config_file.rb +29 -12
- data/lib/rubygems/custom_require.rb +1 -1
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/dependency.rb +63 -9
- data/lib/rubygems/dependency_installer.rb +60 -23
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/doc_manager.rb +5 -5
- data/lib/rubygems/gem_openssl.rb +1 -1
- data/lib/rubygems/indexer.rb +269 -84
- data/lib/rubygems/install_update_options.rb +6 -0
- data/lib/rubygems/installer.rb +35 -12
- data/lib/rubygems/local_remote_options.rb +26 -5
- data/lib/rubygems/platform.rb +15 -1
- data/lib/rubygems/remote_fetcher.rb +158 -90
- data/lib/rubygems/requirement.rb +16 -12
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/security.rb +2 -2
- data/lib/rubygems/server.rb +239 -110
- data/lib/rubygems/source_index.rb +44 -18
- data/lib/rubygems/source_info_cache.rb +1 -1
- data/lib/rubygems/spec_fetcher.rb +251 -0
- data/lib/rubygems/specification.rb +120 -38
- data/lib/rubygems/test_utilities.rb +120 -0
- data/lib/rubygems/uninstaller.rb +11 -10
- data/lib/rubygems/user_interaction.rb +149 -74
- data/lib/rubygems/validator.rb +3 -3
- data/lib/rubygems/version.rb +23 -21
- data/setup.rb +105 -100
- data/test/gemutilities.rb +63 -86
- data/test/test_config.rb +0 -5
- data/test/test_gem.rb +22 -2
- data/test/test_gem_command_manager.rb +1 -1
- data/test/test_gem_commands_dependency_command.rb +125 -6
- data/test/test_gem_commands_environment_command.rb +1 -0
- data/test/test_gem_commands_fetch_command.rb +24 -4
- data/test/test_gem_commands_install_command.rb +6 -8
- data/test/{test_gem_outdated_command.rb → test_gem_commands_outdated_command.rb} +5 -2
- data/test/test_gem_commands_pristine_command.rb +13 -4
- data/test/test_gem_commands_query_command.rb +113 -37
- data/test/test_gem_commands_sources_command.rb +101 -31
- data/test/test_gem_commands_specification_command.rb +4 -1
- data/test/test_gem_commands_stale_command.rb +39 -0
- data/test/test_gem_commands_update_command.rb +17 -27
- data/test/test_gem_config_file.rb +38 -1
- data/test/test_gem_dependency.rb +51 -0
- data/test/test_gem_dependency_installer.rb +133 -25
- data/test/test_gem_gem_path_searcher.rb +4 -1
- data/test/test_gem_indexer.rb +124 -19
- data/test/test_gem_installer.rb +32 -2
- data/test/test_gem_local_remote_options.rb +6 -5
- data/test/test_gem_remote_fetcher.rb +14 -9
- data/test/test_gem_server.rb +207 -21
- data/test/test_gem_source_index.rb +203 -63
- data/test/test_gem_source_info_cache.rb +8 -6
- data/test/test_gem_source_info_cache_entry.rb +11 -9
- data/test/test_gem_spec_fetcher.rb +303 -0
- data/test/test_gem_specification.rb +91 -7
- data/test/test_gem_uninstaller.rb +21 -0
- data/test/test_gem_version.rb +14 -5
- data/test/test_kernel.rb +1 -1
- metadata +10 -73
- metadata.gz.sig +0 -0
- data/lib/rubygems/indexer/abstract_index_builder.rb +0 -88
- data/lib/rubygems/indexer/latest_index_builder.rb +0 -35
- data/lib/rubygems/indexer/marshal_index_builder.rb +0 -17
- data/lib/rubygems/indexer/master_index_builder.rb +0 -54
- data/lib/rubygems/indexer/quick_index_builder.rb +0 -50
- data/test/gem_installer_test_case.rbc +0 -0
- data/test/gem_package_tar_test_case.rbc +0 -0
- data/test/gemutilities.rbc +0 -0
- data/test/mockgemui.rbc +0 -0
- data/test/simple_gem.rbc +0 -0
- data/test/test_config.rbc +0 -0
- data/test/test_gem.rbc +0 -0
- data/test/test_gem_builder.rbc +0 -0
- data/test/test_gem_command.rbc +0 -0
- data/test/test_gem_command_manager.rbc +0 -0
- data/test/test_gem_commands_build_command.rbc +0 -0
- data/test/test_gem_commands_cert_command.rbc +0 -0
- data/test/test_gem_commands_check_command.rbc +0 -0
- data/test/test_gem_commands_contents_command.rbc +0 -0
- data/test/test_gem_commands_dependency_command.rbc +0 -0
- data/test/test_gem_commands_environment_command.rbc +0 -0
- data/test/test_gem_commands_fetch_command.rbc +0 -0
- data/test/test_gem_commands_generate_index_command.rbc +0 -0
- data/test/test_gem_commands_install_command.rbc +0 -0
- data/test/test_gem_commands_mirror_command.rbc +0 -0
- data/test/test_gem_commands_pristine_command.rbc +0 -0
- data/test/test_gem_commands_query_command.rbc +0 -0
- data/test/test_gem_commands_server_command.rbc +0 -0
- data/test/test_gem_commands_sources_command.rbc +0 -0
- data/test/test_gem_commands_specification_command.rbc +0 -0
- data/test/test_gem_commands_unpack_command.rbc +0 -0
- data/test/test_gem_commands_update_command.rbc +0 -0
- data/test/test_gem_config_file.rbc +0 -0
- data/test/test_gem_dependency.rbc +0 -0
- data/test/test_gem_dependency_installer.rbc +0 -0
- data/test/test_gem_dependency_list.rbc +0 -0
- data/test/test_gem_digest.rbc +0 -0
- data/test/test_gem_doc_manager.rbc +0 -0
- data/test/test_gem_ext_configure_builder.rbc +0 -0
- data/test/test_gem_ext_ext_conf_builder.rbc +0 -0
- data/test/test_gem_ext_rake_builder.rbc +0 -0
- data/test/test_gem_format.rbc +0 -0
- data/test/test_gem_gem_path_searcher.rbc +0 -0
- data/test/test_gem_gem_runner.rbc +0 -0
- data/test/test_gem_indexer.rbc +0 -0
- data/test/test_gem_install_update_options.rbc +0 -0
- data/test/test_gem_installer.rbc +0 -0
- data/test/test_gem_local_remote_options.rbc +0 -0
- data/test/test_gem_outdated_command.rbc +0 -0
- data/test/test_gem_package_tar_header.rbc +0 -0
- data/test/test_gem_package_tar_input.rbc +0 -0
- data/test/test_gem_package_tar_output.rbc +0 -0
- data/test/test_gem_package_tar_reader.rbc +0 -0
- data/test/test_gem_package_tar_reader_entry.rbc +0 -0
- data/test/test_gem_package_tar_writer.rbc +0 -0
- data/test/test_gem_platform.rbc +0 -0
- data/test/test_gem_remote_fetcher.rbc +0 -0
- data/test/test_gem_requirement.rbc +0 -0
- data/test/test_gem_server.rbc +0 -0
- data/test/test_gem_source_index.rbc +0 -0
- data/test/test_gem_source_info_cache.rbc +0 -0
- data/test/test_gem_source_info_cache_entry.rbc +0 -0
- data/test/test_gem_specification.rbc +0 -0
- data/test/test_gem_stream_ui.rbc +0 -0
- data/test/test_gem_uninstaller.rbc +0 -0
- data/test/test_gem_validator.rbc +0 -0
- data/test/test_gem_version.rbc +0 -0
- data/test/test_gem_version_option.rbc +0 -0
- data/test/test_kernel.rbc +0 -0
data.tar.gz.sig
CHANGED
|
Binary file
|
data/ChangeLog
CHANGED
|
@@ -1,3 +1,269 @@
|
|
|
1
|
+
2008-06-21 Eric Hodel <drbrain@segment7.net>
|
|
2
|
+
|
|
3
|
+
* lib/rubygems/specification.rb: Load specifications from the future.
|
|
4
|
+
Roll back specification version change.
|
|
5
|
+
* lib/rubygems/remote_fetcher.rb: Reset connection when an HTTP
|
|
6
|
+
server misbehaves.
|
|
7
|
+
* setup.rb: Fix --destdir for windows.
|
|
8
|
+
* doc/release_notes/rel_1_2_0.rdoc: Bugs in RubyGems were
|
|
9
|
+
unintentionally added, order bug fixes by importance.
|
|
10
|
+
* lib/rubygems/rubygems_version.rb: 1.2.0.
|
|
11
|
+
|
|
12
|
+
2008-06-20 Eric Hodel <drbrain@segment7.net>
|
|
13
|
+
|
|
14
|
+
* lib/rubygems/uninstaller.rb: Improve output when a gem to uninstall
|
|
15
|
+
isn't found. Bug #20746 reported by Chad Wooley.
|
|
16
|
+
* setup.rb: Fix rdoc installation with --destdir. Patch #20739 by
|
|
17
|
+
Matthew Kent.
|
|
18
|
+
* lib/rubygems/commands/install_command.rb: Don't reset GEM_PATH when
|
|
19
|
+
installing. Fixes Bug #20746 by Chad Wooley.
|
|
20
|
+
|
|
21
|
+
2008-06-20 Luis Lavena <luislavena@gmail.com>
|
|
22
|
+
|
|
23
|
+
* setup.rb: Only prepend install_destdir when especified. Fixes
|
|
24
|
+
installation issues related to Windows paths (/C:/...)
|
|
25
|
+
|
|
26
|
+
2008-06-19 Eric Hodel <drbrain@segment7.net>
|
|
27
|
+
|
|
28
|
+
* lib/rubygems/dependency_installer.rb: Ensure that the entire
|
|
29
|
+
dependency chain is installed. Fixes bug reported by Chad Woolley.
|
|
30
|
+
|
|
31
|
+
2008-06-18 Eric Hodel <drbrain@segment7.net>
|
|
32
|
+
|
|
33
|
+
* lib/rubygems/commands/dependency_command.rb: Restore matching
|
|
34
|
+
everything when no name is specified, regexp matching. Fixes bug
|
|
35
|
+
#20716, bug #20717 by Chad Woolley.
|
|
36
|
+
|
|
37
|
+
2008-06-18 Chad Woolley <thewoolleyman@gmail.com>
|
|
38
|
+
|
|
39
|
+
* lib/rubygems/config_file.rb: Fix --config-file option with no
|
|
40
|
+
equals and subsequent options to properly assign config file.
|
|
41
|
+
Previously config file was overwritten by subsequent option.
|
|
42
|
+
Fixes bug #16688.
|
|
43
|
+
|
|
44
|
+
2008-06-17 Eric Hodel <drbrain@segment7.net>
|
|
45
|
+
|
|
46
|
+
* lib/rubygems/version.rb: Gem::Version #hash and #eql? now operate
|
|
47
|
+
on the version string, terms of the version string, so "1" and "1.0"
|
|
48
|
+
no longer correspond to the same slot. Fixes indexer bug reported by
|
|
49
|
+
Chad Woolley.
|
|
50
|
+
* setup.rb: Fix --format-executable. Patch #20698 by Richard Brown.
|
|
51
|
+
* util/gem_prelude.rb: Prevent infinite recursion, check for Gem now.
|
|
52
|
+
Patch from ruby trunk by nobu.
|
|
53
|
+
* lib/*: Spelling cleanup. Patch from trunk by Evan Farrar.
|
|
54
|
+
* test/*: Fixes for win32 test failures reported by Luis Lavena.
|
|
55
|
+
* util/gem_prelude.rb: Only remove methods added by gem_prelude.rb.
|
|
56
|
+
|
|
57
|
+
2008-06-16 Eric Hodel <drbrain@segment7.net>
|
|
58
|
+
|
|
59
|
+
* lib/rubygems/indexer.rb: Fix quick_index generation.
|
|
60
|
+
* lib/rubygems/specification.rb: Correctly guard new spec features
|
|
61
|
+
for older RubyGems.
|
|
62
|
+
* lib/rubygems/config_file.rb: Add system-wide config file
|
|
63
|
+
(/etc/gemrc). Patch #14723 by Phil Hagelberg. Add windows code to
|
|
64
|
+
use appropriate directory. Code by Daniel Berger.
|
|
65
|
+
* doc/release_notes/rel_1_2_0.rdoc: Draft of 1.2.0 release notes.
|
|
66
|
+
|
|
67
|
+
2008-06-15 Eric Hodel <drbrain@segment7.net>
|
|
68
|
+
|
|
69
|
+
* lib/rubygems/server.rb: Store off if we are returning Marshal
|
|
70
|
+
format before running =~ again. Fixes bug reported by Chad Woolley.
|
|
71
|
+
* lib/rubygems/commands/stale_command.rb: `gem stale` lists gems by
|
|
72
|
+
last access time. Patch #20593 by Aaron Patterson.
|
|
73
|
+
* lib/rubygems/setup.rb: Add --vendor and --destdir to setup.rb for
|
|
74
|
+
packagers. Patch #20610 by Richard Brown. Don't look for stub
|
|
75
|
+
files to remove any more.
|
|
76
|
+
* lib/rubygems/specification.rb: Bump specification version and be
|
|
77
|
+
backwards compatible with type 2 specs.
|
|
78
|
+
* lib/rubygems/commands/query_command.rb: Add installed location to
|
|
79
|
+
details for installed gems.
|
|
80
|
+
|
|
81
|
+
2008-06-09 Eric Hodel <drbrain@segment7.net>
|
|
82
|
+
|
|
83
|
+
* lib/rubygems/dependency_installer.rb: Only install all dependencies
|
|
84
|
+
when install_dir option is set. Don't include satisfied dependencies
|
|
85
|
+
when gathering dependencies.
|
|
86
|
+
* lib/rubygems/commands/query_command.rb: Display authors, rubyforge
|
|
87
|
+
and homepage urls with details.
|
|
88
|
+
* lib/rubygems/commands/environment_command.rb: Add executable
|
|
89
|
+
directory (from Rubinius).
|
|
90
|
+
* lib/rubygems/commands/install_command.rb: Don't set install_dir by
|
|
91
|
+
default.
|
|
92
|
+
* lib/rubygems/commands/update_command.rb: Don't set install_dir by
|
|
93
|
+
default. Use #find_missing for efficiency.
|
|
94
|
+
|
|
95
|
+
2008-06-07 Eric Hodel <drbrain@segment7.net>
|
|
96
|
+
|
|
97
|
+
* lib/rubygems/server.rb: Fully mirror Gem::Indexer indexes, set
|
|
98
|
+
correct content-type headers, always refresh the source index.
|
|
99
|
+
* lib/rubygems/source_index.rb: Add spec_dirs so that #refresh! will
|
|
100
|
+
always reload from the same locations. #refresh! on manually-built
|
|
101
|
+
SourceIndex now raises. Fixes #20509 by Chad Woolley.
|
|
102
|
+
|
|
103
|
+
2008-06-06 Eric Hodel <drbrain@segment7.net>
|
|
104
|
+
|
|
105
|
+
* lib/rubygems/installer.rb: Remove previous bin_script_path in case
|
|
106
|
+
it is a symlink.
|
|
107
|
+
* lib/rubygems/commands/pristine_command.rb: Force reinstallation of
|
|
108
|
+
the gem using the installer. Fixes bug #20387 by Erik Persson.
|
|
109
|
+
* lib/rubygems/doc_manager.rb: Ensure args to RDoc are all strings.
|
|
110
|
+
* lib/rubygems/source_index.rb: Use find_matching to discover updated
|
|
111
|
+
specs instead of fetch.
|
|
112
|
+
* lib/rubygems/commands/query_command.rb: Platform, not name in spec
|
|
113
|
+
tuples.
|
|
114
|
+
|
|
115
|
+
2008-06-05 Eric Hodel <drbrain@segment7.net>
|
|
116
|
+
|
|
117
|
+
* lib/rubygems/local_remote_options.rb: Ensure remote repository URLs
|
|
118
|
+
reference directories. Fixes bug #20134 by Neil Wilson.
|
|
119
|
+
* lib/rubygems/source_index.rb: Gracefully handle ^C or explicit exit
|
|
120
|
+
while loading .gemspec files from disk. Fixes bug #20523 by Joel
|
|
121
|
+
VanderWerf.
|
|
122
|
+
* lib/rubygems/specification.rb: Use File#expand_path in
|
|
123
|
+
installation_path. Fixes bug #19317 by Hemant Kumar.
|
|
124
|
+
* lib/rubygems/spec_fetcher.rb: Fix legacy test against URI.
|
|
125
|
+
* lib/rubygems/remote_fetcher.rb: Always raise FetchError from
|
|
126
|
+
RemoteFetcher. Fix FetchErrors without URIs. Refactor Net::HTTP
|
|
127
|
+
request code to use persistent connections for HEAD requests. Feature
|
|
128
|
+
Request #7973 by Christian Schachtzabel.
|
|
129
|
+
* lib/rubygems.rb: Don't load custom_require until after the OS and
|
|
130
|
+
implementation have had a chance to set paths.
|
|
131
|
+
|
|
132
|
+
2008-06-04 Eric Hodel <drbrain@segment7.net>
|
|
133
|
+
|
|
134
|
+
* lib/rubygems/commands/source_index.rb: Only fetch specs we need in
|
|
135
|
+
#outdated.
|
|
136
|
+
* lib/rubygems.rb: Fix typo in ::activate exception.
|
|
137
|
+
* lib/rubygems/dependency.rb: For #to_s, display dependency type when
|
|
138
|
+
nil.
|
|
139
|
+
* lib/rubygems/dependency_installer.rb: Reset #installed_gems for
|
|
140
|
+
every #install. Fixes bug #19444 by Glenn Rempe.
|
|
141
|
+
* lib/rubygems/installer.rb: Don't re-read the disk to check for new
|
|
142
|
+
gems, add them by hand on install.
|
|
143
|
+
|
|
144
|
+
2008-06-03 Eric Hodel <drbrain@segment7.net>
|
|
145
|
+
|
|
146
|
+
* lib/rubygems.rb: Add ::gzip, ::gunzip, ::deflate and ::inflate.
|
|
147
|
+
* lib/rubygems/server.rb: Add specs and latest_specs indicies.
|
|
148
|
+
* setup.rb: Don't require rdoc until needed. Patch #20414 by Brian
|
|
149
|
+
Candler.
|
|
150
|
+
* lib/uninstaller.rb: Correctly uninstall gems installed with a
|
|
151
|
+
legacy platform. Patch #19877 by Luis Lavena.
|
|
152
|
+
* lib/rubygems/commands/update_command.rb: Only fetch remote specs
|
|
153
|
+
when we know what we're looking for.
|
|
154
|
+
|
|
155
|
+
2008-06-02 Eric Hodel <drbrain@segment7.net>
|
|
156
|
+
|
|
157
|
+
* lib/rubygems/specification.rb: Remove double slash in
|
|
158
|
+
#installation_path. Fixes bug #19896 by Heiko Seebach.
|
|
159
|
+
* lib/rubygems/remote_fetcher.rb: Require StringIO. Fixes bug #19866
|
|
160
|
+
by Caleb Land.
|
|
161
|
+
* lib/rubygems.rb: Require rubygems/defaults/#{RBX_ENGINE}.rb and
|
|
162
|
+
rubygem/defaults/operating_system.rb if they exist. (OS require comes
|
|
163
|
+
first and may be overridden by operating system.)
|
|
164
|
+
|
|
165
|
+
2008-06-01 Eric Hodel <drbrain@segment7.net>
|
|
166
|
+
|
|
167
|
+
* lib/rubygems/indexer.rb: Ensure identical names, versions and
|
|
168
|
+
platforms are identical for a smaller index.
|
|
169
|
+
* lib/rubygems/spec_fetcher.rb: Only write to cache when we own it.
|
|
170
|
+
* lib/rubygems.rb: Honor default_path if GEM_PATH environment
|
|
171
|
+
variable is not set. Patch #19502 by Donavan Pantke.
|
|
172
|
+
* lib/rubygems/installer.rb: Set file mode indicated by tar file.
|
|
173
|
+
Patch #19737 by Jason Roelofs.
|
|
174
|
+
|
|
175
|
+
2008-06-01 John Barnette <jbarnette@rubyforge.org>
|
|
176
|
+
|
|
177
|
+
* lib/rubygems.rb: Add Gem.available?(gem, *specs) for easy availability
|
|
178
|
+
checks at runtime.
|
|
179
|
+
|
|
180
|
+
2008-05-31 Eric Hodel <drbrain@segment7.net>
|
|
181
|
+
|
|
182
|
+
* lib/rubygems/commands/dependency_command.rb: Delay fetching specs
|
|
183
|
+
until needed. Reverse dependencies can no longer be calculated for
|
|
184
|
+
remote sources. Add backwards compatibility.
|
|
185
|
+
* lib/rubygems/commands/fetch_command.rb: Add backwards
|
|
186
|
+
compatibility.
|
|
187
|
+
|
|
188
|
+
2008-05-30 Eric Hodel <drbrain@segment7.net>
|
|
189
|
+
|
|
190
|
+
* lib/rubygems/local_remote_options.rb: --sources option should not
|
|
191
|
+
add URIs to Gem.sources.
|
|
192
|
+
* lib/rubygems/spec_fetcher.rb: Add #warn_legacy to help handling
|
|
193
|
+
legacy sources.
|
|
194
|
+
* luby/rubygems/commands/query_command.rb: Add backwards
|
|
195
|
+
compatibility with legacy sources.
|
|
196
|
+
|
|
197
|
+
2008-05-28 Eric Hodel <drbrain@segment7.net>
|
|
198
|
+
|
|
199
|
+
* lib/rubygems/remote_fetcher.rb: Add #uri to
|
|
200
|
+
Gem::RemoteFetcher::FetchError.
|
|
201
|
+
* lib/rubygems/user_interaction.rb: Improve RDoc slightly.
|
|
202
|
+
* lib/rubygems/spec_fetcher.rb: Introduce backwards compatibility for
|
|
203
|
+
legacy (pre 1.2) repositories
|
|
204
|
+
* lib/rubygems/commands/sources_command.rb: Backwards compatibility
|
|
205
|
+
and restoration of --update.
|
|
206
|
+
* lib/rubygems/specification.rb: Ensure nil-typed dependencies become
|
|
207
|
+
runtime dependencies.
|
|
208
|
+
|
|
209
|
+
2008-05-27 Eric Hodel <drbrain@segment7.net>
|
|
210
|
+
|
|
211
|
+
* lib/rubygems/spec_fetcher.rb: Switch #fetch, #find_matching to be
|
|
212
|
+
compatible with Gem::SourceInfoCache#search_with_source. Add caching
|
|
213
|
+
for .gemspec files.
|
|
214
|
+
* lib/rubygems/dependency_installer.rb: Switch to SpecFetcher.
|
|
215
|
+
* lib/rubygems/source_index.rb: Switch #outdated to use SpecFetcher.
|
|
216
|
+
* lib/rubygems/commands/dependency_command.rb: Switch to SpecFetcher.
|
|
217
|
+
* lib/rubygems/commands/outdated_command.rb: Switch to SpecFetcher.
|
|
218
|
+
* lib/rubygems/commands/query_command.rb: Switch to SpecFetcher.
|
|
219
|
+
* lib/rubygems/commands/sources_command.rb: Switch to SpecFetcher.
|
|
220
|
+
* lib/rubygems/commands/update_command.rb: Switch to SpecFetcher.
|
|
221
|
+
* lib/rubygems/version.rb: Handle comparisons with non-Gem::Version
|
|
222
|
+
objects.
|
|
223
|
+
|
|
224
|
+
2008-05-13 Eric Hodel <drbrain@segment7.net>
|
|
225
|
+
|
|
226
|
+
* lib/rubygems/spec_fetcher.rb: Add caching of specs, latest_specs
|
|
227
|
+
files.
|
|
228
|
+
* test/gemutilities.rb: Ensure Gem.user_home doesn't point to ~.
|
|
229
|
+
|
|
230
|
+
2008-05-09 Eric Hodel <drbrain@segment7.net>
|
|
231
|
+
|
|
232
|
+
* lib/rubygems/indexer.rb: Add Marshal format index of spec names,
|
|
233
|
+
versions and platforms. WIP.
|
|
234
|
+
* lib/rubygems/spec_fetcher.rb: WIP for replacement of
|
|
235
|
+
Gem::SourceInfoCache and SourceInfoCacheEntry.
|
|
236
|
+
* lib/rubygems/dependency.rb: Add #=~.
|
|
237
|
+
|
|
238
|
+
2008-05-07 John Barnette <jbarnette@gmail.com>
|
|
239
|
+
|
|
240
|
+
* lib/rubygems/specification.rb, et. al: Let gems have development
|
|
241
|
+
dependencies, which aren't installed (except when --development is
|
|
242
|
+
supplied) or activated.
|
|
243
|
+
|
|
244
|
+
2008-05-02 Eric Hodel <drbrain@segment7.net>
|
|
245
|
+
|
|
246
|
+
* lib/rubygems/indexer.rb: Refactored into simpler more imperative
|
|
247
|
+
code.
|
|
248
|
+
* lib/rubygems.rb: Leave rbconfig/datadir.rb for non-RubyGems use.
|
|
249
|
+
|
|
250
|
+
2008-04-16 Eric Hodel <drbrain@segment7.net>
|
|
251
|
+
|
|
252
|
+
* lib/rubygems/server.rb: Refresh the source index per request so new
|
|
253
|
+
gems will be found after server startup.
|
|
254
|
+
|
|
255
|
+
2008-04-15 Eric Hodel <drbrain@segment7.net>
|
|
256
|
+
|
|
257
|
+
* lib/rubygems/source_index.rb: Only print out "Bulk updating" when
|
|
258
|
+
verbose, fix #latest_specs documentation.
|
|
259
|
+
* lib/rubygems/dependency_installer.rb: Add :cache_dir option for
|
|
260
|
+
Tinderbox.
|
|
261
|
+
|
|
262
|
+
2008-04-14 Eric Hodel <drbrain@segment7.net>
|
|
263
|
+
|
|
264
|
+
* lib/rubygems/test_utilities.rb: Expose some internal testing
|
|
265
|
+
utilities that are of general use.
|
|
266
|
+
|
|
1
267
|
2008-04-10 Eric Hodel <drbrain@segment7.net>
|
|
2
268
|
|
|
3
269
|
* lib/rubygems.rb: Fix Gem.prefix so it reports nil when rubygems.rb
|
|
@@ -3749,7 +4015,7 @@ Tue Dec 6 14:51:13 2005 Jim Weirich <jim@tardis>
|
|
|
3749
4015
|
2004-04-02 07:48 chadfowler
|
|
3750
4016
|
|
|
3751
4017
|
* lib/rubygems/remote_installer.rb: Prompt for installation of
|
|
3752
|
-
|
|
4018
|
+
dependencies.
|
|
3753
4019
|
|
|
3754
4020
|
For now, there is a puts/gets in the middle of
|
|
3755
4021
|
remote_installer.rb This should probably be cleaned up later
|
data/Rakefile
CHANGED
|
@@ -282,7 +282,13 @@ PKG_FILES = FileList[
|
|
|
282
282
|
"setup.rb",
|
|
283
283
|
"test/**/*"
|
|
284
284
|
]
|
|
285
|
-
|
|
285
|
+
|
|
286
|
+
PKG_FILES.exclude %r(^test/temp(/|$))
|
|
287
|
+
PKG_FILES.exclude %r(\*\.rbc$)
|
|
288
|
+
|
|
289
|
+
task :package_files do
|
|
290
|
+
puts PKG_FILES.join("\n")
|
|
291
|
+
end
|
|
286
292
|
|
|
287
293
|
Rake::PackageTask.new("package") do |p|
|
|
288
294
|
p.name = PKG_NAME
|
|
@@ -307,7 +313,7 @@ installation of RubyGems before this update can be applied.
|
|
|
307
313
|
s.email = "rubygems-developers@rubyforge.org"
|
|
308
314
|
s.homepage = "http://rubygems.rubyforge.org"
|
|
309
315
|
s.rubyforge_project = "rubygems"
|
|
310
|
-
s.bindir = "bin"
|
|
316
|
+
s.bindir = "bin" # Use these for applications.
|
|
311
317
|
s.executables = ["update_rubygems"]
|
|
312
318
|
certdir = ENV['CERT_DIR']
|
|
313
319
|
if certdir
|
|
@@ -336,7 +342,8 @@ task :install do
|
|
|
336
342
|
svnversion = `svnversion`.split(':').last.sub(/[^\d]/, '').strip
|
|
337
343
|
|
|
338
344
|
unless svnversion.empty? then
|
|
339
|
-
|
|
345
|
+
File.read('lib/rubygems/rubygems_version.rb') =~ /RubyGemsVersion = '(.*)'/
|
|
346
|
+
current_version = $1.split '.', 4
|
|
340
347
|
rubygems_version = (current_version[0, 3] << svnversion).join '.'
|
|
341
348
|
rubygems_version_file = File.join Gem::ConfigMap[:sitelibdir], 'rubygems',
|
|
342
349
|
'rubygems_version.rb'
|
|
@@ -395,7 +402,7 @@ task :rf => :rubyfiles
|
|
|
395
402
|
# RUBINIUS_PATH.
|
|
396
403
|
|
|
397
404
|
diff_options = "-urpN --exclude '*svn*' --exclude '*swp' --exclude '*rbc'"
|
|
398
|
-
rsync_options = "-avP --exclude '*svn*' --exclude '*swp' --exclude '*rbc' --exclude '*.rej' --exclude '*.orig'"
|
|
405
|
+
rsync_options = "-avP --exclude '*svn*' --exclude '*swp' --exclude '*rbc' --exclude '*.rej' --exclude '*.orig' --exclude 'lib/rubygems/defaults/*'"
|
|
399
406
|
|
|
400
407
|
rubinius_dir = ENV['RUBINIUS_PATH'] || '../../../git/git.rubini.us/code'
|
|
401
408
|
ruby_dir = ENV['RUBY_PATH'] || '../../ruby/trunk'
|
|
@@ -423,7 +430,7 @@ end
|
|
|
423
430
|
|
|
424
431
|
desc "Updates Rubinius HEAD with the currently checked-out copy of RubyGems."
|
|
425
432
|
task :update_rubinius do
|
|
426
|
-
sh "rsync #{rsync_options} bin/gem #{rubinius_dir}/lib/bin/gem
|
|
433
|
+
sh "rsync #{rsync_options} bin/gem #{rubinius_dir}/lib/bin/gem"
|
|
427
434
|
sh "rsync #{rsync_options} lib/ #{rubinius_dir}/lib"
|
|
428
435
|
sh "rsync #{rsync_options} test/ #{rubinius_dir}/test/rubygems"
|
|
429
436
|
sh "rsync #{rsync_options} util/gem_prelude.rb #{rubinius_dir}/kernel/core/gem_prelude.rb"
|
|
@@ -431,11 +438,10 @@ end
|
|
|
431
438
|
|
|
432
439
|
desc "Diffs Rubinius HEAD with the currently checked-out copy of RubyGems."
|
|
433
440
|
task :diff_rubinius do
|
|
434
|
-
sh "diff #{diff_options} bin/gem #{rubinius_dir}/lib/bin/gem
|
|
441
|
+
sh "diff #{diff_options} bin/gem #{rubinius_dir}/lib/bin/gem; true"
|
|
435
442
|
sh "diff #{diff_options} lib/ubygems.rb #{rubinius_dir}/lib/ubygems.rb; true"
|
|
436
443
|
sh "diff #{diff_options} lib/rubygems.rb #{rubinius_dir}/lib/rubygems.rb; true"
|
|
437
444
|
sh "diff #{diff_options} lib/rubygems #{rubinius_dir}/lib/rubygems; true"
|
|
438
|
-
sh "diff #{diff_options} lib/rbconfig #{rubinius_dir}/lib/rbconfig; true"
|
|
439
445
|
sh "diff #{diff_options} test #{rubinius_dir}/test/rubygems; true"
|
|
440
446
|
sh "diff #{diff_options} util/gem_prelude.rb #{rubinius_dir}/kernel/core/gem_prelude.rb; true"
|
|
441
447
|
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
= Announce: RubyGems Release 1.2.0
|
|
2
|
+
|
|
3
|
+
Release 1.2.0 adds new features and fixes some bugs.
|
|
4
|
+
|
|
5
|
+
New features:
|
|
6
|
+
|
|
7
|
+
* RubyGems no longer performs bulk updates and instead only fetches the gemspec
|
|
8
|
+
files it needs. Alternate sources will need to upgrade to RubyGems 1.2 to
|
|
9
|
+
allow RubyGems to take advantage of the new metadata updater. If a pre 1.2
|
|
10
|
+
remote source is in the sources list, RubyGems will revert to the bulk update
|
|
11
|
+
code for compatibility.
|
|
12
|
+
* RubyGems now has runtime and development dependency types. Use
|
|
13
|
+
#add_development_dependency and #add_runtime_dependency. All typeless
|
|
14
|
+
dependencies are considered to be runtime dependencies.
|
|
15
|
+
* RubyGems will now require rubygems/defaults/operating_system.rb and
|
|
16
|
+
rubygems/defaults/#{RBX_ENGINE}.rb if they exist. This allows packagers and
|
|
17
|
+
ruby implementers to add custom behavior to RubyGems via these files. (If
|
|
18
|
+
the RubyGems API is insufficient, please suggest improvements via the
|
|
19
|
+
RubyGems list.)
|
|
20
|
+
* /etc/gemrc (and windows equivalent) for global settings
|
|
21
|
+
* setup.rb now handles --vendor and --destdir for packagers
|
|
22
|
+
* `gem stale` command that lists gems by last access time
|
|
23
|
+
|
|
24
|
+
Bugs Fixed:
|
|
25
|
+
|
|
26
|
+
* File modes from gems are now honored, patch #19737
|
|
27
|
+
* Marshal Gem::Specification objects from the future can now be loaded.
|
|
28
|
+
* A trailing / is now added to remote sources when missing, bug #20134
|
|
29
|
+
* Gems with legacy platforms will now be correctly uninstalled, patch #19877
|
|
30
|
+
* `gem install --no-wrappers` followed by `gem install --wrappers` no longer
|
|
31
|
+
overwrites executables
|
|
32
|
+
* `gem pristine` now forces reinstallation of gems, bug #20387
|
|
33
|
+
* RubyGems gracefully handles ^C while loading .gemspec files from disk, bug
|
|
34
|
+
#20523
|
|
35
|
+
* Paths are expanded in more places, bug #19317, bug #19896
|
|
36
|
+
* Gem::DependencyInstaller resets installed gems every install, bug #19444
|
|
37
|
+
* Gem.default_path is now honored if GEM_PATH is not set, patch #19502
|
|
38
|
+
|
|
39
|
+
Other Changes Include:
|
|
40
|
+
|
|
41
|
+
* setup.rb
|
|
42
|
+
* stub files created by RubyGems 0.7.x and older are no longer removed. When
|
|
43
|
+
upgrading from these ancient versions, upgrade to 1.1.x first to clean up
|
|
44
|
+
stubs.
|
|
45
|
+
* RDoc is no longer required until necessary, patch #20414
|
|
46
|
+
* `gem server`
|
|
47
|
+
* Now completely matches the output of `gem generate_index` and
|
|
48
|
+
has correct content types
|
|
49
|
+
* Refreshes from source directories for every hit. The server will no longer
|
|
50
|
+
need to be restarted after installing gems.
|
|
51
|
+
* `gem query --details` and friends now display author, homepage, rubyforge url
|
|
52
|
+
and installed location
|
|
53
|
+
* `gem install` without -i no longer reinstalls dependencies if they are in
|
|
54
|
+
GEM_PATH but not in GEM_HOME
|
|
55
|
+
* Gem::RemoteFetcher now performs persistent connections for HEAD requests,
|
|
56
|
+
bug #7973
|
|
57
|
+
|
|
58
|
+
For a full list of changes to RubyGems and the contributor for each change, see
|
|
59
|
+
the ChangeLog file.
|
|
60
|
+
|
|
61
|
+
Special thanks to Chad Wooley for backwards compatibility testing and Luis
|
|
62
|
+
Lavena for continuing windows support.
|
|
63
|
+
|
|
64
|
+
== How can I get RubyGems?
|
|
65
|
+
|
|
66
|
+
NOTE: If you have installed RubyGems using a package system you may want to
|
|
67
|
+
install a new RubyGems through the same packaging system.
|
|
68
|
+
|
|
69
|
+
If you have a recent version of RubyGems (0.8.5 or later), then all
|
|
70
|
+
you need to do is:
|
|
71
|
+
|
|
72
|
+
$ gem update --system (you might need to be admin/root)
|
|
73
|
+
|
|
74
|
+
(Note: You may have to run the command twice if you have any previosly
|
|
75
|
+
installed rubygems-update gems).
|
|
76
|
+
|
|
77
|
+
If you have an older version of RubyGems installed, then you can still
|
|
78
|
+
do it in two steps:
|
|
79
|
+
|
|
80
|
+
$ gem install rubygems-update (again, might need to be admin/root)
|
|
81
|
+
$ update_rubygems (... here too)
|
|
82
|
+
|
|
83
|
+
If you don't have any gems install, there is still the pre-gem
|
|
84
|
+
approach to getting software ... doing it manually:
|
|
85
|
+
|
|
86
|
+
1. DOWNLOAD FROM: http://rubyforge.org/frs/?group_id=126
|
|
87
|
+
2. UNPACK INTO A DIRECTORY AND CD THERE
|
|
88
|
+
3. INSTALL WITH: ruby setup.rb (you may need admin/root privilege)
|
|
89
|
+
|
|
90
|
+
== To File Bugs
|
|
91
|
+
|
|
92
|
+
The RubyGems bug tracker can be found on RubyForge at:
|
|
93
|
+
http://rubyforge.org/tracker/?func=add&group_id=126&atid=575
|
|
94
|
+
|
|
95
|
+
When filing a bug, `gem env` output will be helpful in diagnosing the issue.
|
|
96
|
+
|
|
97
|
+
If you find a bug where RubyGems crashes, please provide debug output. You can
|
|
98
|
+
do that with `gem --debug the_command`.
|
|
99
|
+
|
|
100
|
+
== Thanks
|
|
101
|
+
|
|
102
|
+
Keep those gems coming!
|
|
103
|
+
|
|
104
|
+
-- Jim & Chad & Eric (for the RubyGems team)
|
|
105
|
+
|
data/lib/rubygems.rb
CHANGED
|
@@ -67,11 +67,14 @@ module Gem
|
|
|
67
67
|
:RUBY_SO_NAME => RbConfig::CONFIG["RUBY_SO_NAME"],
|
|
68
68
|
:arch => RbConfig::CONFIG["arch"],
|
|
69
69
|
:bindir => RbConfig::CONFIG["bindir"],
|
|
70
|
+
:datadir => RbConfig::CONFIG["datadir"],
|
|
70
71
|
:libdir => RbConfig::CONFIG["libdir"],
|
|
71
72
|
:ruby_install_name => RbConfig::CONFIG["ruby_install_name"],
|
|
72
73
|
:ruby_version => RbConfig::CONFIG["ruby_version"],
|
|
73
74
|
:sitedir => RbConfig::CONFIG["sitedir"],
|
|
74
|
-
:sitelibdir => RbConfig::CONFIG["sitelibdir"]
|
|
75
|
+
:sitelibdir => RbConfig::CONFIG["sitelibdir"],
|
|
76
|
+
:vendordir => RbConfig::CONFIG["vendordir"] ,
|
|
77
|
+
:vendorlibdir => RbConfig::CONFIG["vendorlibdir"]
|
|
75
78
|
)
|
|
76
79
|
|
|
77
80
|
DIRECTORIES = %w[cache doc gems specifications] unless defined?(DIRECTORIES)
|
|
@@ -137,7 +140,7 @@ module Gem
|
|
|
137
140
|
|
|
138
141
|
unless matches.any? { |spec| spec.version == existing_spec.version } then
|
|
139
142
|
raise Gem::Exception,
|
|
140
|
-
"can't activate #{gem}, already activated #{existing_spec.full_name}
|
|
143
|
+
"can't activate #{gem}, already activated #{existing_spec.full_name}"
|
|
141
144
|
end
|
|
142
145
|
|
|
143
146
|
return false
|
|
@@ -151,7 +154,7 @@ module Gem
|
|
|
151
154
|
@loaded_specs[spec.name] = spec
|
|
152
155
|
|
|
153
156
|
# Load dependent gems first
|
|
154
|
-
spec.
|
|
157
|
+
spec.runtime_dependencies.each do |dep_gem|
|
|
155
158
|
activate dep_gem
|
|
156
159
|
end
|
|
157
160
|
|
|
@@ -203,6 +206,20 @@ module Gem
|
|
|
203
206
|
|
|
204
207
|
private_class_method :all_partials
|
|
205
208
|
|
|
209
|
+
##
|
|
210
|
+
# See if a given gem is available.
|
|
211
|
+
|
|
212
|
+
def self.available?(gem, *requirements)
|
|
213
|
+
requirements = Gem::Requirement.default if requirements.empty?
|
|
214
|
+
|
|
215
|
+
unless gem.respond_to?(:name) and
|
|
216
|
+
gem.respond_to?(:version_requirements) then
|
|
217
|
+
gem = Gem::Dependency.new gem, requirements
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
!Gem.source_index.search(gem).empty?
|
|
221
|
+
end
|
|
222
|
+
|
|
206
223
|
##
|
|
207
224
|
# The mode needed to read a file as straight binary.
|
|
208
225
|
|
|
@@ -267,6 +284,13 @@ module Gem
|
|
|
267
284
|
File.join(spec.full_gem_path, 'data', gem_name)
|
|
268
285
|
end
|
|
269
286
|
|
|
287
|
+
##
|
|
288
|
+
# A Zlib::Deflate.deflate wrapper
|
|
289
|
+
|
|
290
|
+
def self.deflate(data)
|
|
291
|
+
Zlib::Deflate.deflate data
|
|
292
|
+
end
|
|
293
|
+
|
|
270
294
|
##
|
|
271
295
|
# The path where gems are to be installed.
|
|
272
296
|
|
|
@@ -345,6 +369,33 @@ module Gem
|
|
|
345
369
|
|
|
346
370
|
private_class_method :find_home
|
|
347
371
|
|
|
372
|
+
##
|
|
373
|
+
# Zlib::GzipReader wrapper that unzips +data+.
|
|
374
|
+
|
|
375
|
+
def self.gunzip(data)
|
|
376
|
+
data = StringIO.new data
|
|
377
|
+
|
|
378
|
+
Zlib::GzipReader.new(data).read
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
##
|
|
382
|
+
# Zlib::GzipWriter wrapper that zips +data+.
|
|
383
|
+
|
|
384
|
+
def self.gzip(data)
|
|
385
|
+
zipped = StringIO.new
|
|
386
|
+
|
|
387
|
+
Zlib::GzipWriter.wrap zipped do |io| io.write data end
|
|
388
|
+
|
|
389
|
+
zipped.string
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
##
|
|
393
|
+
# A Zlib::Inflate#inflate wrapper
|
|
394
|
+
|
|
395
|
+
def self.inflate(data)
|
|
396
|
+
Zlib::Inflate.inflate data
|
|
397
|
+
end
|
|
398
|
+
|
|
348
399
|
##
|
|
349
400
|
# Return a list of all possible load paths for the latest version for all
|
|
350
401
|
# gems in the Gem installation.
|
|
@@ -438,7 +489,11 @@ module Gem
|
|
|
438
489
|
@gem_path ||= nil
|
|
439
490
|
|
|
440
491
|
unless @gem_path then
|
|
441
|
-
paths =
|
|
492
|
+
paths = if ENV['GEM_PATH'] then
|
|
493
|
+
[ENV['GEM_PATH']]
|
|
494
|
+
else
|
|
495
|
+
[default_path]
|
|
496
|
+
end
|
|
442
497
|
|
|
443
498
|
if defined?(APPLE_GEM_HOME) and not ENV['GEM_PATH'] then
|
|
444
499
|
paths << APPLE_GEM_HOME
|
|
@@ -459,7 +514,7 @@ module Gem
|
|
|
459
514
|
|
|
460
515
|
##
|
|
461
516
|
# Array of platforms this RubyGems supports.
|
|
462
|
-
|
|
517
|
+
|
|
463
518
|
def self.platforms
|
|
464
519
|
@platforms ||= []
|
|
465
520
|
if @platforms.empty?
|
|
@@ -586,13 +641,13 @@ module Gem
|
|
|
586
641
|
def self.set_paths(gpaths)
|
|
587
642
|
if gpaths
|
|
588
643
|
@gem_path = gpaths.split(File::PATH_SEPARATOR)
|
|
589
|
-
|
|
644
|
+
|
|
590
645
|
if File::ALT_SEPARATOR then
|
|
591
646
|
@gem_path.map! do |path|
|
|
592
647
|
path.gsub File::ALT_SEPARATOR, File::SEPARATOR
|
|
593
648
|
end
|
|
594
649
|
end
|
|
595
|
-
|
|
650
|
+
|
|
596
651
|
@gem_path << Gem.dir
|
|
597
652
|
else
|
|
598
653
|
@gem_path = [Gem.dir]
|
|
@@ -683,24 +738,25 @@ module Gem
|
|
|
683
738
|
|
|
684
739
|
end
|
|
685
740
|
|
|
686
|
-
|
|
741
|
+
MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/"
|
|
687
742
|
|
|
688
|
-
|
|
743
|
+
YAML_SPEC_DIR = 'quick/'
|
|
689
744
|
|
|
690
|
-
|
|
745
|
+
end
|
|
691
746
|
|
|
692
|
-
module Config
|
|
747
|
+
module Config
|
|
748
|
+
# :stopdoc:
|
|
693
749
|
class << self
|
|
694
|
-
alias gem_original_datadir datadir
|
|
695
|
-
|
|
696
750
|
# Return the path to the data directory associated with the named
|
|
697
751
|
# package. If the package is loaded as a gem, return the gem
|
|
698
752
|
# specific data directory. Otherwise return a path to the share
|
|
699
753
|
# area as define by "#{ConfigMap[:datadir]}/#{package_name}".
|
|
700
754
|
def datadir(package_name)
|
|
701
|
-
Gem.datadir(package_name) ||
|
|
755
|
+
Gem.datadir(package_name) ||
|
|
756
|
+
File.join(Gem::ConfigMap[:datadir], package_name)
|
|
702
757
|
end
|
|
703
758
|
end
|
|
759
|
+
# :startdoc:
|
|
704
760
|
end
|
|
705
761
|
|
|
706
762
|
require 'rubygems/exceptions'
|
|
@@ -712,6 +768,18 @@ require 'rubygems/source_index' # Needed for Kernel#gem
|
|
|
712
768
|
require 'rubygems/platform'
|
|
713
769
|
require 'rubygems/builder' # HACK: Needed for rake's package task.
|
|
714
770
|
|
|
771
|
+
begin
|
|
772
|
+
require 'rubygems/defaults/operating_system'
|
|
773
|
+
rescue LoadError
|
|
774
|
+
end
|
|
775
|
+
|
|
776
|
+
if defined?(RUBY_ENGINE) then
|
|
777
|
+
begin
|
|
778
|
+
require "rubygems/defaults/#{RUBY_ENGINE}"
|
|
779
|
+
rescue LoadError
|
|
780
|
+
end
|
|
781
|
+
end
|
|
782
|
+
|
|
715
783
|
if RUBY_VERSION < '1.9' then
|
|
716
784
|
require 'rubygems/custom_require'
|
|
717
785
|
end
|