@@ -41,10 +41,9 @@ def camelize(string)
4141 # )
4242 def initialize ( root_path :, load_paths :, inflector : DefaultInflector . new )
4343 root_path += "/" unless root_path . end_with? ( "/" )
44- load_paths = load_paths . map { |p | p . end_with? ( "/" ) ? p : p + "/" } . uniq
4544
4645 @root_path = root_path
47- @load_paths = load_paths
46+ @load_paths = coerce_load_paths ( load_paths )
4847 @file_map = nil
4948 @inflector = inflector
5049 end
@@ -76,10 +75,11 @@ def file_map
7675 @file_map = { }
7776 duplicate_files = { }
7877
79- @load_paths . each do |load_path |
78+ @load_paths . each_pair do |load_path , default_ns |
8079 Dir [ glob_path ( load_path ) ] . each do |file_path |
8180 root_relative_path = file_path . delete_prefix! ( @root_path )
8281 const_name = @inflector . camelize ( root_relative_path . delete_prefix ( load_path ) . delete_suffix! ( ".rb" ) )
82+ const_name = "#{ default_ns } ::#{ const_name } " unless default_ns == "Object"
8383 existing_entry = @file_map [ const_name ]
8484
8585 if existing_entry
@@ -102,7 +102,7 @@ def file_map
102102 raise ( Error , <<~MSG )
103103 Could not find any ruby files. Searched in:
104104
105- - #{ @load_paths . map { |load_path | glob_path ( load_path ) } . join ( "\n - " ) }
105+ - #{ @load_paths . keys . map { |load_path | glob_path ( load_path ) } . join ( "\n - " ) }
106106 MSG
107107 end
108108
@@ -119,6 +119,15 @@ def config
119119
120120 private
121121
122+ def coerce_load_paths ( load_paths )
123+ load_paths = Hash [ load_paths . map { |p | [ p , "Object" ] } ] unless load_paths . respond_to? ( :transform_keys )
124+
125+ load_paths . transform_keys! { |p | p . end_with? ( "/" ) ? p : p + "/" }
126+ load_paths . transform_values! { |ns | ns . to_s . delete_prefix ( "::" ) }
127+
128+ load_paths
129+ end
130+
122131 def ambiguous_constant_message ( const_name , paths )
123132 <<~MSG . chomp
124133 "#{ const_name } " could refer to any of
0 commit comments