Sha256: 39475fa45d4ead1b6a9a9f3bfa3b5ae12ab83f854a77fecb01abd66b1a666094
Contents?: true
Size: 1011 Bytes
Versions: 39
Compression:
Stored size: 1011 Bytes
Contents
require "yaml" require "librarian/config/source" module Librarian module Config class FileSource < Source attr_accessor :config_path private :config_path= def initialize(adapter_name, options = { }) super self.config_path = options.delete(:config_path) or raise ArgumentError, "must provide config_path" end def to_s config_path end private def load return { } unless File.file?(config_path) raw = YAML.load_file(config_path) return { } unless Hash === raw translate_raw_to_config(raw) end def save(config) raw = translate_config_to_raw(config) if config.empty? File.delete(config_path) if File.file?(config_path) else config_dir = File.dirname(config_path) FileUtils.mkpath(config_dir) unless File.directory?(config_dir) File.open(config_path, "wb"){|f| YAML.dump(raw, f)} end end end end end
Version data entries
39 entries across 39 versions & 5 rubygems