method
symbolic_modes_to_i
v1_9_3_392 -
Show latest stable
- Class:
FileUtils
symbolic_modes_to_i(modes, path)public
No documentation available.
# File lib/fileutils.rb, line 907
def symbolic_modes_to_i(modes, path) #:nodoc:
current_mode = (File.stat(path).mode & 07777)
modes.split(/,/).inject(0) do |mode, mode_sym|
mode_sym = "a#{mode_sym}" if mode_sym =~ %^[+-=]!
target, mode = mode_sym.split %[+-=]!
user_mask = user_mask(target)
mode_mask = mode_mask(mode ? mode : "", path)
case mode_sym
when /=/
current_mode &= ~(user_mask)
current_mode |= user_mask & mode_mask
when /\+/
current_mode |= user_mask & mode_mask
when /-/
current_mode &= ~(user_mask & mode_mask)
end
end
end