|
|
|
@ -56,15 +56,19 @@ else |
|
|
|
|
module Internal |
|
|
|
|
def self.infer_package(names) |
|
|
|
|
# Package is longest common prefix ending in '.', if any. |
|
|
|
|
min, max = names.minmax |
|
|
|
|
last_common_dot = nil |
|
|
|
|
min.size.times { |i| |
|
|
|
|
if min[i] != max[i] then break end |
|
|
|
|
if min[i] == ?. then last_common_dot = i end |
|
|
|
|
} |
|
|
|
|
if last_common_dot |
|
|
|
|
return min.slice(0, last_common_dot) |
|
|
|
|
if not names.empty? |
|
|
|
|
min, max = names.minmax |
|
|
|
|
last_common_dot = nil |
|
|
|
|
min.size.times { |i| |
|
|
|
|
if min[i] != max[i] then break end |
|
|
|
|
if min[i] == ?. then last_common_dot = i end |
|
|
|
|
} |
|
|
|
|
if last_common_dot |
|
|
|
|
return min.slice(0, last_common_dot) |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
nil |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
class NestingBuilder |
|
|
|
|