module StoreAgent::Node::PathValidator

オブジェクトの操作時に、パスが不正でないかをチェックするモジュール

Public Instance Methods

chown(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 84
def chown(*)
  be_present!
  be_not_reserved!
  super
end
copy(dest_path = nil, *) click to toggle source

TODO

Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 58
def copy(dest_path = nil, *)
  be_present!
  be_not_reserved!
  super
end
create(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 21
def create(*)
  if !root?
    parent_directory.be_present!
  end
  be_absent!
  be_not_reserved!
  super
end
delete(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 44
def delete(*)
  be_present!
  be_not_root!
  be_not_reserved!
  super
end
move(dest_path = nil, *) click to toggle source

TODO

Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 65
def move(dest_path = nil, *)
  be_present!
  be_not_root!
  be_not_reserved!
  super
end
read(*, revision: nil) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 30
def read(*, revision: nil)
  if revision.nil?
    be_present!
  end
  be_not_reserved!
  super
end
set_permission(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 90
def set_permission(*)
  be_present!
  be_not_reserved!
  super
end
touch(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 51
def touch(*)
  be_present!
  be_not_reserved!
  super
end
unset_permission(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 96
def unset_permission(*)
  be_present!
  be_not_reserved!
  super
end
update(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/path_validator.rb, line 38
def update(*)
  be_present!
  be_not_reserved!
  super
end

Protected Instance Methods

be_absent!() click to toggle source
# File lib/store_agent/node/prepend_module/path_validator.rb, line 110
def be_absent!
  if exists?
    raise StoreAgent::InvalidPathError, "object already exists: #{path}"
  end
end
be_not_reserved!() click to toggle source
# File lib/store_agent/node/prepend_module/path_validator.rb, line 122
def be_not_reserved!
  basename = File.basename(path)
  reserved_extensions = [] <<
    StoreAgent.config.metadata_extension <<
    StoreAgent.config.permission_extension
  reserved_extensions.each do |extension|
    if basename.end_with?(extension)
      raise StoreAgent::InvalidPathError, "extension '#{extension}' is reserved"
    end
  end
  if StoreAgent.reserved_filenames.include?(basename)
    raise StoreAgent::InvalidPathError, "filename '#{basename}' is reserved"
  end
end
be_not_root!() click to toggle source
# File lib/store_agent/node/prepend_module/path_validator.rb, line 116
def be_not_root!
  if root?
    raise StoreAgent::InvalidPathError, "can't delete root node"
  end
end
be_present!() click to toggle source
# File lib/store_agent/node/prepend_module/path_validator.rb, line 104
def be_present!
  if !exists?
    raise StoreAgent::InvalidPathError, "object not found: #{path}"
  end
end