Module: Rubytus::StorageHelper

Included in:
Command, Storage
Defined in:
lib/rubytus/storage.rb

Instance Method Summary collapse

Instance Method Details

#file_path(uid) ⇒ Object



32
33
34
# File 'lib/rubytus/storage.rb', line 32

def file_path(uid)
  File.join(@options[:data_dir], "#{uid}.bin")
end

#info_path(uid) ⇒ Object



36
37
38
# File 'lib/rubytus/storage.rb', line 36

def info_path(uid)
  File.join(@options[:data_dir], "#{uid}.info")
end

#validates_data_dir(data_dir) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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