rubygems-update 1.6.2 → 1.7.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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data.tar.gz.sig +0 -0
- data/.autotest +0 -1
- data/History.txt +70 -4
- data/README.rdoc +3 -0
- data/Rakefile +76 -0
- data/lib/rubygems.rb +57 -27
- data/lib/rubygems/command.rb +6 -4
- data/lib/rubygems/commands/contents_command.rb +14 -11
- data/lib/rubygems/commands/fetch_command.rb +6 -3
- data/lib/rubygems/commands/outdated_command.rb +2 -1
- data/lib/rubygems/commands/pristine_command.rb +4 -3
- data/lib/rubygems/commands/unpack_command.rb +46 -4
- data/lib/rubygems/commands/update_command.rb +24 -10
- data/lib/rubygems/custom_require.rb +1 -2
- data/lib/rubygems/dependency_installer.rb +1 -1
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gem_runner.rb +1 -0
- data/lib/rubygems/mock_gem_ui.rb +2 -1
- data/lib/rubygems/package/tar_input.rb +1 -0
- data/lib/rubygems/remote_fetcher.rb +62 -39
- data/lib/rubygems/server.rb +1 -1
- data/lib/rubygems/source_index.rb +64 -43
- data/lib/rubygems/spec_fetcher.rb +5 -6
- data/lib/rubygems/specification.rb +375 -402
- data/lib/rubygems/test_case.rb +7 -8
- data/lib/rubygems/uninstaller.rb +2 -2
- data/lib/rubygems/user_interaction.rb +27 -31
- data/test/rubygems/test_gem.rb +2 -44
- data/test/rubygems/test_gem_commands_contents_command.rb +19 -30
- data/test/rubygems/test_gem_commands_unpack_command.rb +24 -0
- data/test/rubygems/test_gem_commands_update_command.rb +26 -1
- data/test/rubygems/test_gem_dependency_installer.rb +9 -5
- data/test/rubygems/test_gem_dependency_list.rb +2 -6
- data/test/rubygems/test_gem_gem_runner.rb +1 -4
- data/test/rubygems/test_gem_installer.rb +1 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +131 -24
- data/test/rubygems/test_gem_source_index.rb +7 -192
- data/test/rubygems/test_gem_specification.rb +132 -103
- metadata +9 -9
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/.autotest
CHANGED
data/History.txt
CHANGED
@@ -1,4 +1,66 @@
|
|
1
|
-
=== 1.
|
1
|
+
=== 1.7.0 / 2011-03-31
|
2
|
+
|
3
|
+
* 16 Deprecations (woot!)
|
4
|
+
* Deprecated Gem.all_load_paths, latest_load_paths, promote_load_path, and
|
5
|
+
cache.
|
6
|
+
* Deprecated RemoteFetcher#open_uri_or_path.
|
7
|
+
* Deprecated SourceIndex#all_gems.
|
8
|
+
* Deprecated SourceIndex#initialize(hash_of_specs).
|
9
|
+
* Deprecated SourceIndex.from_installed_gems, from_gems_in, and
|
10
|
+
load_specification.
|
11
|
+
* Deprecated Specification#has_rdoc, default_executable, and
|
12
|
+
test_suite_file(=).
|
13
|
+
* Deprecated Specification#has_rdoc= and default_executable=
|
14
|
+
|
15
|
+
* 26 minor enhancements:
|
16
|
+
* Added stupid simple deprecation module.
|
17
|
+
* Added --spec option to `gem unpack` to output a gem's original metadata
|
18
|
+
* Added packaging option to Specification#validate
|
19
|
+
* Gem.bin_path requires the exec_name argument.
|
20
|
+
* Read from cached specs if fetch fails for some reason
|
21
|
+
* Refactored Specification#assign_defaults into #initialize.
|
22
|
+
* RemoteFetcher#fetch_path now dispatches dynamically to 'fetch_<uri.schema>'
|
23
|
+
* Removed Specification @@gather.
|
24
|
+
* Removed Specification.attribute.
|
25
|
+
* Removed Specification.attribute_alias_singular.
|
26
|
+
* Removed Specification.attribute_defaults.
|
27
|
+
* Removed Specification.attributes
|
28
|
+
* Removed Specification.overwrite_accessor.
|
29
|
+
* Removed Specification.read_only.
|
30
|
+
* Removed Specification.required_attribute.
|
31
|
+
* Removed Specification::SPECIFICATION_VERSION_HISTORY and turned into rdoc
|
32
|
+
* Removed blanket rescue in default_executable. Hope it doesn't blow up! :P
|
33
|
+
* Removed nearly all metaprogramming from Specification. Yay for
|
34
|
+
attr_accessor!
|
35
|
+
* SourceIndex#initialize changed to prefer an array of spec dirs, defaulting
|
36
|
+
to none.
|
37
|
+
* SourceIndex.new is now the preferred way to create SourceIndex instances.
|
38
|
+
*gasp*
|
39
|
+
* Specification#validate now checks that array attribs are indeed arrays.
|
40
|
+
* Specification.default_value is now an instance method.
|
41
|
+
* Switched Specification::TODAY to be proper midnight @ UTC
|
42
|
+
* Update Gem::RemoteFetcher\'s User-Agent to handle RUBY_ENGINE and
|
43
|
+
RUBY_REVISION when patchlevel is -1
|
44
|
+
* UpdateCommand#gems_to_update now returns (name, version) pairs.
|
45
|
+
* UpdateCommand#which_to_update now takes an optional system argument.
|
46
|
+
|
47
|
+
* 11 bug fixes:
|
48
|
+
* Added missing remote fetcher require to pristine command (aarnell)
|
49
|
+
* Building gems now checks to ensure all required fields are non-nil
|
50
|
+
* Fix option parser when summary is nil.
|
51
|
+
* Fixed `gem contents` to work with the lightweight specifications
|
52
|
+
* Fixed `gem update --system x.y.z` where x.y.z == latest version. (MGPalmer)
|
53
|
+
* Fixed gem contents sorting and tests. (MGPalmer)
|
54
|
+
* Fixed intermittant problem in `gem fetch` with --platform specified (quix)
|
55
|
+
* Fixed lightweight specifications so `gem rdoc` will generate proper
|
56
|
+
documentation
|
57
|
+
* MockGemUI#terminate_interaction should not raise Gem::SystemExitException.
|
58
|
+
(MGPalmer)
|
59
|
+
* RubyGems now raises a better error for broken .gem files. Bug #29067 by
|
60
|
+
Elias Baixas
|
61
|
+
* `gem update` now uniq's command line arguments.
|
62
|
+
|
63
|
+
=== 1.6.2 / 2011-03-08
|
2
64
|
|
3
65
|
Bug Fixes:
|
4
66
|
|
@@ -972,11 +1034,11 @@ There has been some minor usability enhancements and changes ...
|
|
972
1034
|
names. This was useful for him while testing libs that he had in
|
973
1035
|
development.
|
974
1036
|
|
975
|
-
=== 0.8.1 /
|
1037
|
+
=== 0.8.1 / 2004-09-17
|
976
1038
|
|
977
1039
|
* Quick release to capture some bug fixes.
|
978
1040
|
|
979
|
-
=== 0.8.0 /
|
1041
|
+
=== 0.8.0 / 2004-09-15
|
980
1042
|
|
981
1043
|
* Remove need for library stubs. Set the RUBYOPT environment variable to
|
982
1044
|
include "rrubygems", and a normal require will find gem files. Continue to
|
@@ -1003,6 +1065,10 @@ There has been some minor usability enhancements and changes ...
|
|
1003
1065
|
|
1004
1066
|
See ChangeLog
|
1005
1067
|
|
1068
|
+
=== 0.6.1 / 2004-06-08
|
1069
|
+
|
1070
|
+
See ChangeLog
|
1071
|
+
|
1006
1072
|
=== 0.6.0 / 2004-06-08
|
1007
1073
|
|
1008
1074
|
* Collapse output of --search and --list (and gem_server) operations so that
|
@@ -1039,7 +1105,7 @@ See ChangeLog
|
|
1039
1105
|
automatically included.
|
1040
1106
|
* Some small bug fixes
|
1041
1107
|
|
1042
|
-
=== 0.4.0 / 2004-05-
|
1108
|
+
=== 0.4.0 / 2004-05-30
|
1043
1109
|
|
1044
1110
|
* Minor bug fixes including Windows compatability issues
|
1045
1111
|
|
data/README.rdoc
CHANGED
@@ -47,3 +47,6 @@ You're sure you've found a bug! But where do you let us know? The best place
|
|
47
47
|
for letting the RubyGems team know about bugs you've found is {on the rubygems
|
48
48
|
tracker at rubyforge}[http://rubyforge.org/tracker/?group_id=126].
|
49
49
|
|
50
|
+
=== Bundler Compatibility
|
51
|
+
|
52
|
+
See http://gembundler.com/compatibility for known issues.
|
data/Rakefile
CHANGED
@@ -171,3 +171,79 @@ task "rcov:for", [:test] do |task, args|
|
|
171
171
|
ruby "#{flags.join ' '} #{rcov} #{rflags.join ' '} #{args[:test]}"
|
172
172
|
end
|
173
173
|
|
174
|
+
def changelog_section code
|
175
|
+
name = {
|
176
|
+
:major => "major enhancement",
|
177
|
+
:minor => "minor enhancement",
|
178
|
+
:bug => "bug fix",
|
179
|
+
:unknown => "unknown",
|
180
|
+
}[code]
|
181
|
+
|
182
|
+
changes = $changes[code]
|
183
|
+
count = changes.size
|
184
|
+
name += "s" if count > 1
|
185
|
+
name.sub!(/fixs/, 'fixes')
|
186
|
+
|
187
|
+
return if count < 1
|
188
|
+
|
189
|
+
puts "* #{count} #{name}:"
|
190
|
+
puts
|
191
|
+
changes.sort.each do |line|
|
192
|
+
puts " * #{line}"
|
193
|
+
end
|
194
|
+
puts
|
195
|
+
end
|
196
|
+
|
197
|
+
desc "Print the current changelog."
|
198
|
+
task "git:newchangelog" do
|
199
|
+
# This must be in here until rubygems depends on the version of hoe that has
|
200
|
+
# git_tags
|
201
|
+
# TODO: get this code back into hoe-git
|
202
|
+
module Hoe::Git
|
203
|
+
module_function :git_tags, :git_svn?, :git_release_tag_prefix
|
204
|
+
end
|
205
|
+
|
206
|
+
tags = Hoe::Git.git_tags
|
207
|
+
tag = ENV["FROM"] || tags.last
|
208
|
+
range = [tag, "HEAD"].compact.join ".."
|
209
|
+
cmd = "git log #{range} '--format=tformat:%B|||%aN|||%aE|||'"
|
210
|
+
now = Time.new.strftime "%Y-%m-%d"
|
211
|
+
|
212
|
+
changes = `#{cmd}`.split(/\|\|\|/).each_slice(3).map do |msg, author, email|
|
213
|
+
msg.split(/\n/).reject { |s| s.empty? }
|
214
|
+
end
|
215
|
+
|
216
|
+
changes = changes.flatten
|
217
|
+
|
218
|
+
next if changes.empty?
|
219
|
+
|
220
|
+
$changes = Hash.new { |h,k| h[k] = [] }
|
221
|
+
|
222
|
+
codes = {
|
223
|
+
"!" => :major,
|
224
|
+
"+" => :minor,
|
225
|
+
"*" => :minor,
|
226
|
+
"-" => :bug,
|
227
|
+
"?" => :unknown,
|
228
|
+
}
|
229
|
+
|
230
|
+
codes_re = Regexp.escape codes.keys.join
|
231
|
+
|
232
|
+
changes.each do |change|
|
233
|
+
if change =~ /^\s*([#{codes_re}])\s*(.*)/ then
|
234
|
+
code, line = codes[$1], $2
|
235
|
+
else
|
236
|
+
code, line = codes["?"], change.chomp
|
237
|
+
end
|
238
|
+
|
239
|
+
$changes[code] << line
|
240
|
+
end
|
241
|
+
|
242
|
+
puts "=== #{ENV['VERSION'] || 'NEXT'} / #{now}"
|
243
|
+
puts
|
244
|
+
changelog_section :major
|
245
|
+
changelog_section :minor
|
246
|
+
changelog_section :bug
|
247
|
+
changelog_section :unknown
|
248
|
+
puts
|
249
|
+
end
|
data/lib/rubygems.rb
CHANGED
@@ -28,6 +28,7 @@ end
|
|
28
28
|
require 'rubygems/defaults'
|
29
29
|
require "rubygems/dependency_list"
|
30
30
|
require 'rbconfig'
|
31
|
+
require "rubygems/deprecate"
|
31
32
|
|
32
33
|
##
|
33
34
|
# RubyGems is the Ruby standard for publishing and managing third party
|
@@ -118,7 +119,7 @@ require 'rbconfig'
|
|
118
119
|
# -The RubyGems Team
|
119
120
|
|
120
121
|
module Gem
|
121
|
-
VERSION = '1.
|
122
|
+
VERSION = '1.7.0'
|
122
123
|
|
123
124
|
##
|
124
125
|
# Raised when RubyGems is unable to load or activate a gem. Contains the
|
@@ -182,7 +183,6 @@ module Gem
|
|
182
183
|
|
183
184
|
@configuration = nil
|
184
185
|
@loaded_specs = {}
|
185
|
-
@loaded_stacks = {}
|
186
186
|
@platforms = []
|
187
187
|
@ruby = nil
|
188
188
|
@sources = []
|
@@ -232,34 +232,27 @@ module Gem
|
|
232
232
|
# Gem::Requirement and Gem::Version documentation.
|
233
233
|
|
234
234
|
def self.activate(dep, *requirements)
|
235
|
-
|
236
|
-
|
237
|
-
options = requirements.pop
|
238
|
-
else
|
239
|
-
options = {}
|
240
|
-
end
|
235
|
+
activate_dep dep, *requirements
|
236
|
+
end
|
241
237
|
|
238
|
+
def self.activate_dep dep, *requirements
|
242
239
|
requirements = Gem::Requirement.default if requirements.empty?
|
243
240
|
dep = Gem::Dependency.new(dep, requirements) unless Gem::Dependency === dep
|
244
241
|
|
245
|
-
# TODO: remove sources entirely
|
246
|
-
sources = options[:sources] || []
|
247
242
|
matches = Gem.source_index.search dep, true
|
248
243
|
report_activate_error(dep) if matches.empty?
|
249
244
|
|
250
|
-
|
245
|
+
existing_spec = @loaded_specs[dep.name]
|
246
|
+
|
247
|
+
# TODO: move this to Dependency
|
248
|
+
if existing_spec then
|
251
249
|
# This gem is already loaded. If the currently loaded gem is not in the
|
252
250
|
# list of candidate gems, then we have a version conflict.
|
253
|
-
existing_spec = @loaded_specs[dep.name]
|
254
251
|
|
255
252
|
# TODO: unless dep.matches_spec? existing_spec then
|
256
253
|
unless matches.any? { |spec| spec.version == existing_spec.version } then
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
msg = "can't activate #{dep} for #{sources_message.inspect}, "
|
261
|
-
msg << "already activated #{existing_spec.full_name} for "
|
262
|
-
msg << "#{stack_message.inspect}"
|
254
|
+
msg = "can't activate #{dep}, "
|
255
|
+
msg << "already activated #{existing_spec.full_name}"
|
263
256
|
|
264
257
|
e = Gem::LoadError.new msg
|
265
258
|
e.name = dep.name
|
@@ -271,9 +264,36 @@ module Gem
|
|
271
264
|
return false
|
272
265
|
end
|
273
266
|
|
267
|
+
# TODO: this + spec.conflicts hint that activation is still dumb
|
274
268
|
spec = matches.last
|
275
269
|
|
270
|
+
activate_spec spec
|
271
|
+
end
|
272
|
+
|
273
|
+
def self.activate_spec spec
|
274
|
+
existing_spec = @loaded_specs[spec.name]
|
275
|
+
|
276
|
+
# TODO: move this to Specification
|
277
|
+
if existing_spec then
|
278
|
+
if spec.version != existing_spec.version then
|
279
|
+
# This gem is already loaded. If the currently loaded gem is not in the
|
280
|
+
# list of candidate gems, then we have a version conflict.
|
281
|
+
|
282
|
+
msg = "can't activate #{dep}, "
|
283
|
+
msg << "already activated #{existing_spec.full_name}"
|
284
|
+
|
285
|
+
e = Gem::LoadError.new msg
|
286
|
+
e.name = dep.name
|
287
|
+
e.requirement = dep.requirement
|
288
|
+
|
289
|
+
raise e
|
290
|
+
end
|
291
|
+
|
292
|
+
return false
|
293
|
+
end
|
294
|
+
|
276
295
|
conf = spec.conflicts
|
296
|
+
|
277
297
|
unless conf.empty? then
|
278
298
|
why = conf.map { |act,con|
|
279
299
|
"#{act.full_name} conflicts with #{con.join(", ")}"
|
@@ -284,11 +304,8 @@ module Gem
|
|
284
304
|
raise LoadError, "Unable to activate #{spec.full_name}, because #{why}"
|
285
305
|
end
|
286
306
|
|
287
|
-
return false if spec.loaded?
|
288
|
-
|
289
307
|
spec.loaded = true
|
290
308
|
@loaded_specs[spec.name] = spec
|
291
|
-
@loaded_stacks[spec.name] = sources.dup
|
292
309
|
|
293
310
|
spec.runtime_dependencies.each do |spec_dep|
|
294
311
|
next if Gem.loaded_specs.include? spec_dep.name
|
@@ -372,6 +389,8 @@ module Gem
|
|
372
389
|
# you to specify specific gem versions.
|
373
390
|
|
374
391
|
def self.bin_path(name, exec_name = nil, *requirements)
|
392
|
+
raise ArgumentError, "you must supply exec_name" unless exec_name
|
393
|
+
|
375
394
|
requirements = Gem::Requirement.default if
|
376
395
|
requirements.empty?
|
377
396
|
specs = Gem.source_index.find_name(name, requirements)
|
@@ -587,6 +606,7 @@ module Gem
|
|
587
606
|
# Zlib::GzipReader wrapper that unzips +data+.
|
588
607
|
|
589
608
|
def self.gunzip(data)
|
609
|
+
# TODO: move to utils
|
590
610
|
require 'stringio'
|
591
611
|
require 'zlib'
|
592
612
|
data = StringIO.new data
|
@@ -598,6 +618,7 @@ module Gem
|
|
598
618
|
# Zlib::GzipWriter wrapper that zips +data+.
|
599
619
|
|
600
620
|
def self.gzip(data)
|
621
|
+
# TODO: move to utils
|
601
622
|
require 'stringio'
|
602
623
|
require 'zlib'
|
603
624
|
zipped = StringIO.new
|
@@ -611,6 +632,7 @@ module Gem
|
|
611
632
|
# A Zlib::Inflate#inflate wrapper
|
612
633
|
|
613
634
|
def self.inflate(data)
|
635
|
+
# TODO: move to utils
|
614
636
|
require 'zlib'
|
615
637
|
Zlib::Inflate.inflate data
|
616
638
|
end
|
@@ -620,12 +642,14 @@ module Gem
|
|
620
642
|
# <tt>https://rubygems.org</tt>.
|
621
643
|
|
622
644
|
def self.host
|
645
|
+
# TODO: move to utils
|
623
646
|
@host ||= "https://rubygems.org"
|
624
647
|
end
|
625
648
|
|
626
649
|
## Set the default RubyGems API host.
|
627
650
|
|
628
651
|
def self.host= host
|
652
|
+
# TODO: move to utils
|
629
653
|
@host = host
|
630
654
|
end
|
631
655
|
|
@@ -706,6 +730,7 @@ module Gem
|
|
706
730
|
file = $1
|
707
731
|
lineno = $2.to_i
|
708
732
|
|
733
|
+
# TODO: it is ALWAYS joined! STUPID!
|
709
734
|
[file, lineno]
|
710
735
|
end
|
711
736
|
|
@@ -1022,7 +1047,7 @@ module Gem
|
|
1022
1047
|
# Returns the Gem::SourceIndex of specifications that are in the Gem.path
|
1023
1048
|
|
1024
1049
|
def self.source_index
|
1025
|
-
@@source_index ||= SourceIndex.
|
1050
|
+
@@source_index ||= SourceIndex.new Gem::SourceIndex.installed_spec_directories
|
1026
1051
|
end
|
1027
1052
|
|
1028
1053
|
##
|
@@ -1214,11 +1239,6 @@ module Gem
|
|
1214
1239
|
end
|
1215
1240
|
|
1216
1241
|
def self.cache # :nodoc:
|
1217
|
-
warn "#{Gem.location_of_caller.join ':'}:Warning: " \
|
1218
|
-
"Gem::cache is deprecated and will be removed on or after " \
|
1219
|
-
"August 2011. " \
|
1220
|
-
"Use Gem::source_index."
|
1221
|
-
|
1222
1242
|
source_index
|
1223
1243
|
end
|
1224
1244
|
|
@@ -1238,6 +1258,16 @@ module Gem
|
|
1238
1258
|
autoload :Platform, 'rubygems/platform'
|
1239
1259
|
autoload :Builder, 'rubygems/builder'
|
1240
1260
|
autoload :ConfigFile, 'rubygems/config_file'
|
1261
|
+
|
1262
|
+
class << self
|
1263
|
+
extend Deprecate
|
1264
|
+
# Can't do this one until I add Specification#activate
|
1265
|
+
# deprecate :activate, "Specification#activate", 2011, 10
|
1266
|
+
deprecate :all_load_paths, :none, 2011, 10
|
1267
|
+
deprecate :latest_load_paths, :none, 2011, 10
|
1268
|
+
deprecate :promote_load_path, :none, 2011, 10
|
1269
|
+
deprecate :cache, "Gem::source_index", 2011, 8
|
1270
|
+
end
|
1241
1271
|
end
|
1242
1272
|
|
1243
1273
|
module Kernel
|
data/lib/rubygems/command.rb
CHANGED
@@ -404,10 +404,12 @@ class Gem::Command
|
|
404
404
|
end
|
405
405
|
end
|
406
406
|
|
407
|
-
@
|
408
|
-
|
409
|
-
|
410
|
-
@
|
407
|
+
if @summary then
|
408
|
+
@parser.separator nil
|
409
|
+
@parser.separator " Summary:"
|
410
|
+
wrap(@summary, 80 - 4).split("\n").each do |line|
|
411
|
+
@parser.separator " #{line.strip}"
|
412
|
+
end
|
411
413
|
end
|
412
414
|
|
413
415
|
if description then
|
@@ -58,7 +58,7 @@ class Gem::Commands::ContentsCommand < Gem::Command
|
|
58
58
|
"specified path"
|
59
59
|
end
|
60
60
|
|
61
|
-
si = Gem::SourceIndex.
|
61
|
+
si = Gem::SourceIndex.new spec_dirs
|
62
62
|
|
63
63
|
gem_names = if options[:all] then
|
64
64
|
si.map { |_, spec| spec.name }
|
@@ -67,9 +67,9 @@ class Gem::Commands::ContentsCommand < Gem::Command
|
|
67
67
|
end
|
68
68
|
|
69
69
|
gem_names.each do |name|
|
70
|
-
|
70
|
+
spec = si.find_name(name, version).last
|
71
71
|
|
72
|
-
unless
|
72
|
+
unless spec then
|
73
73
|
say "Unable to find gem '#{name}' in #{path_kind}"
|
74
74
|
|
75
75
|
if Gem.configuration.verbose then
|
@@ -80,16 +80,19 @@ class Gem::Commands::ContentsCommand < Gem::Command
|
|
80
80
|
terminate_interaction 1 if gem_names.length == 1
|
81
81
|
end
|
82
82
|
|
83
|
-
|
83
|
+
gem_path = spec.full_gem_path
|
84
|
+
extra = "/{#{spec.require_paths.join ','}}" if options[:lib_only]
|
85
|
+
glob = "#{gem_path}#{extra}/**/*"
|
86
|
+
files = Dir[glob]
|
84
87
|
|
85
|
-
|
86
|
-
path = if options[:prefix] then
|
87
|
-
File.join gem_spec.full_gem_path, f
|
88
|
-
else
|
89
|
-
f
|
90
|
-
end
|
88
|
+
gem_path = File.join gem_path, '' # add trailing / if missing
|
91
89
|
|
92
|
-
|
90
|
+
files.sort.each do |file|
|
91
|
+
next if File.directory? file
|
92
|
+
|
93
|
+
file = file.sub gem_path, '' unless options[:prefix]
|
94
|
+
|
95
|
+
say file
|
93
96
|
end
|
94
97
|
end
|
95
98
|
end
|