module Rubytus::StorageHelper

Public Instance Methods

file_path(uid) click to toggle source
# File lib/rubytus/storage.rb, line 32
def file_path(uid)
  File.join(@options[:data_dir], "#{uid}.bin")
end
info_path(uid) click to toggle source
# File lib/rubytus/storage.rb, line 36
def info_path(uid)
  File.join(@options[:data_dir], "#{uid}.info")
end
validates_data_dir(data_dir) click to toggle source
# File lib/rubytus/storage.rb, line 8
def validates_data_dir(data_dir)
  if Pathname.new(data_dir).relative?
    data_dir = File.join(ENV['PWD'], data_dir)
  end

  begin
    unless File.directory?(data_dir)
      Dir.mkdir(data_dir)
    end
  rescue SystemCallError => _
    raise PermissionError, "Couldn't create `data_dir` in #{data_dir}"
  end

  unless File.world_writable?(data_dir)
    begin
      File.chmod(0777, data_dir)
    rescue Errno::EPERM
      raise PermissionError, "Couldn't make `data_dir` in #{data_dir} writable"
    end
  end

  data_dir
end