class Kanrisuru::Mode::Permission

Attributes

symbolic[R]

Public Class Methods

new(numeric, symbolic) click to toggle source
# File lib/kanrisuru/mode.rb, line 8
def initialize(numeric, symbolic)
  @numeric = numeric
  @symbolic = symbolic

  update_symbolic_rwx
end

Public Instance Methods

all?() click to toggle source
# File lib/kanrisuru/mode.rb, line 27
def all?
  read? && write? && execute?
end
execute=(boolean) click to toggle source
# File lib/kanrisuru/mode.rb, line 59
def execute=(boolean)
  @executable = boolean

  update_numeric
  update_symbolic
end
execute?() click to toggle source
# File lib/kanrisuru/mode.rb, line 74
def execute?
  @executable
end
numeric() click to toggle source
# File lib/kanrisuru/mode.rb, line 23
def numeric
  @numeric.to_s
end
numeric=(numeric) click to toggle source
# File lib/kanrisuru/mode.rb, line 38
def numeric=(numeric)
  @numeric = numeric

  update_numeric_rwx
  update_symbolic
end
read=(boolean) click to toggle source
# File lib/kanrisuru/mode.rb, line 45
def read=(boolean)
  @readable = boolean

  update_numeric
  update_symbolic
end
read?() click to toggle source
# File lib/kanrisuru/mode.rb, line 66
def read?
  @readable
end
symbolic=(symbolic) click to toggle source
# File lib/kanrisuru/mode.rb, line 31
def symbolic=(symbolic)
  @symbolic = symbolic

  update_symbolic_rwx
  update_numeric
end
to_i() click to toggle source
# File lib/kanrisuru/mode.rb, line 15
def to_i
  numeric.to_i
end
to_s() click to toggle source
# File lib/kanrisuru/mode.rb, line 19
def to_s
  symbolic
end
write=(boolean) click to toggle source
# File lib/kanrisuru/mode.rb, line 52
def write=(boolean)
  @writeable = boolean

  update_numeric
  update_symbolic
end
write?() click to toggle source
# File lib/kanrisuru/mode.rb, line 70
def write?
  @writeable
end

Private Instance Methods

update_numeric() click to toggle source
# File lib/kanrisuru/mode.rb, line 94
def update_numeric
  @numeric = (((read? ? 1 : 0) << 2) + ((write? ? 1 : 0) << 1) + (execute? ? 1 : 0)).to_s
end
update_numeric_rwx() click to toggle source
# File lib/kanrisuru/mode.rb, line 86
def update_numeric_rwx
  mode = @numeric.to_i(8)

  @readable   = ((mode >> 2) & 0b001) == 1
  @writeable  = ((mode >> 1) & 0b001) == 1
  @executable = ((mode >> 0) & 0b001) == 1
end
update_symbolic() click to toggle source
# File lib/kanrisuru/mode.rb, line 98
def update_symbolic
  @symbolic = "#{read? ? 'r' : '-'}#{write? ? 'w' : '-'}#{execute? ? 'x' : '-'}"
end
update_symbolic_rwx() click to toggle source
# File lib/kanrisuru/mode.rb, line 80
def update_symbolic_rwx
  @readable   = @symbolic.include?('r')
  @writeable  = @symbolic.include?('w')
  @executable = @symbolic.include?('x')
end