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