class MacSetup::SymlinkPathBuilder
Constants
- HOME
Public Class Methods
paths_for(root_dir) { |child, rewrite_path(child, root)| ... }
click to toggle source
# File lib/mac_setup/symlink_path_builder.rb, line 6 def paths_for(root_dir) root = Pathname.new(root_dir) each_child(root) do |child| yield [child.to_s, rewrite_path(child, root)] end end
Private Class Methods
each_child(dir, &block)
click to toggle source
# File lib/mac_setup/symlink_path_builder.rb, line 16 def each_child(dir, &block) dir.children.each do |child| next if child.basename.to_s.start_with?(".") if child.directory? each_child(child, &block) else block.call(child) end end end
rewrite_path(path, base)
click to toggle source
# File lib/mac_setup/symlink_path_builder.rb, line 28 def rewrite_path(path, base) first_part, rest = path.to_s.split(%r{^#{Regexp.escape(base.to_s)}/([^/]+)}).drop(1) parts = Dir.exist?(HOME + first_part) ? [HOME, first_part, rest] : [HOME, ".", first_part, rest] parts.join end