class Epuber::Lockfile

Attributes

defined_from_file[RW]

Public Class Methods

from_file(file_path) { |inst| ... } click to toggle source

Load existing lockfile from given path, or create new one. You can define default attributes in block.

@return [self]

# File lib/epuber/lockfile.rb, line 20
def self.from_file(file_path)
  hash = if File.exist?(file_path)
           YAML.safe_load(File.read(file_path))
         else
           {}
         end

  # backward compatibility for version 0.5 and older
  hash['epuber_version'] = hash.delete('version') if hash.include?('version')

  inst = new(hash)
  inst.defined_from_file = file_path
  yield inst if hash.empty? && block_given?
  inst
end
new(data = {}) click to toggle source

@param [Hash] data

# File lib/epuber/lockfile.rb, line 12
def initialize(data = {})
  @internal_data = data
end

Public Instance Methods

bade_version() click to toggle source

@return [Epuber::Version]

# File lib/epuber/lockfile.rb, line 58
def bade_version
  value = @internal_data['bade_version']
  value = Version.new(value) unless value.nil?
  value
end
bade_version=(new_version) click to toggle source

@param [Epuber::Version] new_version

# File lib/epuber/lockfile.rb, line 66
def bade_version=(new_version)
  @internal_data['bade_version'] = new_version
end
epuber_version() click to toggle source

@return [Epuber::Version]

# File lib/epuber/lockfile.rb, line 46
def epuber_version
  Version.new(@internal_data['epuber_version'])
end
epuber_version=(new_version) click to toggle source

@param [Epuber::Version] new_version

# File lib/epuber/lockfile.rb, line 52
def epuber_version=(new_version)
  @internal_data['epuber_version'] = new_version.to_s
end
write_to_file() click to toggle source

@return nil

# File lib/epuber/lockfile.rb, line 38
def write_to_file
  return if defined_from_file.nil?

  File.write(defined_from_file, @internal_data.to_yaml)
end