referator/lib/referator/config.rb

41 lines
705 B
Ruby

# frozen_string_literal: true
module Referator
class Config
attr_reader :workdir
def initialize(workdir)
self.workdir = workdir
end
def freeze
scripts.freeze
categories.freeze
repo.freeze
super
end
def scripts
@scripts ||= Scripts.new self
end
def categories
@categories ||= Categories.new self
end
def repo
@repo ||= Repo.new self
end
private
def workdir=(workdir)
workdir = Pathname.new(workdir).expand_path.freeze
raise 'Expected absolute path' unless workdir.absolute?
raise 'Expected existing directory' unless workdir.directory?
@workdir = workdir
end
end
end