8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/ree/core/packages_detector.rb', line 8
def call(dir, gem_name = nil)
if !Dir.exist?(dir)
raise Ree::Error.new("dir does not exist: #{dir}", :invalid_dir)
end
names = {}
packages = []
package_dirs = File.join(dir, "**/package")
Dir[package_dirs].each do |package_dir|
next unless File.directory?(package_dir)
dir_path = Pathname.new(package_dir)
name = dir_path.parent.basename.to_s
next if names.has_key?(name)
package_rel_path = dir_path.relative_path_from(dir)
entry_path = Ree::PathHelper.package_entry_path(package_rel_path)
next unless File.exist?(File.join(dir, entry_path))
names[name] = entry_path
packages << {
name: name.to_sym,
entry_path: entry_path,
gem_name: gem_name
}
end
packages
end
|