class Ellipses::Client::MetaFile

Constants

EMPTY
FILES

Attributes

alternatives[R]
directory[R]

Public Class Methods

create(directory) click to toggle source
# File lib/ellipses/client/meta_file.rb, line 11
def self.create(directory)
  Support.dir!(directory)

  selected = FILES.find { |path| ::Dir.exist? File.join(directory, ::File.dirname(path)) }
  file     = ::File.join(directory, selected)

  ::File.write(file, EMPTY) unless ::File.exist? file

  new
end
new() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 24
def initialize
  @directory, @file = Support.search_path FILES
end

Public Instance Methods

file() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 28
def file
  loaded!
  @file
end
loaded!() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 37
def loaded!
  raise 'Lockfile not located' if @file.nil?

  raise "Lockfile not found: #{@file}" unless ::File.exist? @file
end
loaded?() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 33
def loaded?
  @file && ::File.exist?(@file)
end
read() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 43
def read
  Meta.from_array JSON.load_file(file, symbolize_names: true)
end
to_s() click to toggle source
# File lib/ellipses/client/meta_file.rb, line 51
def to_s
  file
end
write(meta) click to toggle source
# File lib/ellipses/client/meta_file.rb, line 47
def write(meta)
  Support.updatelines(file, meta.empty? ? EMPTY : JSON.pretty_generate(meta))
end