From: nobu@... Date: 2020-06-20T05:15:55+00:00 Subject: [ruby-core:98896] [Ruby master Feature#16972] Pathname#mkpath to accept block to call on each created directory Issue #16972 has been updated by nobu (Nobuyoshi Nakada). Assignee set to akr (Akira Tanaka) Status changed from Open to Assigned Description updated `Pathname#mkpath` is a wrapper of `FileUtils.mkdir_p`, and the latter has `mode:` argument to create intermediate directories. So it would be simple and better to add the same option to `Pathname#mkpath` for this purpose, I think. Or do you have any other use cases that this more generic solution is needed? ---------------------------------------- Feature #16972: Pathname#mkpath to accept block to call on each created directory https://bugs.ruby-lang.org/issues/16972#change-86272 * Author: Dan0042 (Daniel DeLorme) * Status: Assigned * Priority: Normal * Assignee: akr (Akira Tanaka) ---------------------------------------- I just had a case where I need to set the permissions on each directory created by `Pathname#mkpath`, but since this requires to know which directories are created I had to reimplement the `mkpath` logic like this: ```ruby file = Pathname.new(Dir.pwd) + "a/b/c/d/e/foo.txt" #any of these directories may already exist file.dirname.ascend.take_while{ |d| !d.exist? }.reverse_each do |dir| dir.mkdir dir.chmod(0775) #rwxrwxr-x end ``` It occured to me it would be very elegant if `mkpath` allowed this ```ruby file.dirname.mkpath{ |dir| dir.chmod(0775) } ``` -- https://bugs.ruby-lang.org/ Unsubscribe: