lib/lookbook/support/utils/path_utils.rb in lookbook-1.3.4 vs lib/lookbook/support/utils/path_utils.rb in lookbook-1.4.0
- old
+ new
@@ -3,20 +3,44 @@
class << self
def to_absolute(path)
File.absolute_path(path.to_s, Rails.root)
end
- def normalize_all(paths, allow_root: false)
+ def to_lookup_path(file_path)
+ path = file_path.to_s.downcase
+
+ directory_path = File.dirname(path)
+ directory_path = nil if directory_path.start_with?(".")
+
+ file_name = File.basename(path).split(".").first
+
+ segments = [*directory_path&.split("/"), file_name].compact
+ stripped_segments = segments.map! do |segment|
+ PositionPrefixParser.call(segment).last.tr("-", "_")
+ end
+
+ to_path(stripped_segments)
+ end
+
+ def to_path(*args)
+ args.flatten.compact.map(&:to_s).join("/")
+ end
+
+ def normalize_paths(paths, allow_root: false)
Array(paths).map do |path|
full_path = to_absolute(path)
- if Dir.exist?(full_path)
+ if File.exist?(full_path)
full_path if allow_root || !root_path?(full_path)
end
end.compact.uniq
end
def root_path?(path)
Rails.application.root.to_s == path.to_s
+ end
+
+ def strip_slashes(path)
+ path.to_s.gsub(/\A\/|\/\z/, "")
end
end
end
end