Avoid extra array allocations
This commit is contained in:
parent
b322020338
commit
5bf652ecdd
@ -106,13 +106,16 @@ class Options
|
||||
when self then arg
|
||||
when Option then new << arg
|
||||
when Array
|
||||
opts = arg.map do |_arg|
|
||||
case _arg
|
||||
when /^-[^-]+$/ then _arg[1..-1].split(//)
|
||||
else _arg
|
||||
opts = new
|
||||
arg.each do |a|
|
||||
case a
|
||||
when /^-[^-]+$/
|
||||
a[1..-1].split(//).each { |o| opts << Option.new(o) }
|
||||
else
|
||||
opts << Option.new(a)
|
||||
end
|
||||
end.flatten
|
||||
new(opts.map { |o| Option.new(o) })
|
||||
end
|
||||
opts
|
||||
else
|
||||
raise TypeError, "Cannot convert #{arg.inspect} to Options"
|
||||
end
|
||||
|
||||
@ -97,7 +97,7 @@ class Version
|
||||
protected
|
||||
|
||||
def to_a
|
||||
@array ||= @version.scan(/\d+|[a-zA-Z]+/).map { |e| VersionElement.new(e) }
|
||||
@array ||= @version.scan(/\d+|[a-zA-Z]+/).map! { |e| VersionElement.new(e) }
|
||||
end
|
||||
|
||||
def self.parse spec
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user