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

Version Path
librarianp-1.1.2 lib/librarian/config/file_source.rb
librarianp-1.1.1 lib/librarian/config/file_source.rb
librarianp-1.1.0 lib/librarian/config/file_source.rb
librarianp-1.0.0 lib/librarian/config/file_source.rb
librarianp-0.6.4 lib/librarian/config/file_source.rb
librarianp-0.6.3 lib/librarian/config/file_source.rb
librarianp-0.6.2 lib/librarian/config/file_source.rb
librarianp-0.6.1 lib/librarian/config/file_source.rb
librarianp-0.6.0 lib/librarian/config/file_source.rb
librarianp-0.5.1 lib/librarian/config/file_source.rb
librarianp-0.5.0 lib/librarian/config/file_source.rb
librarianp-0.4.0 lib/librarian/config/file_source.rb
librarianp-0.3.0 lib/librarian/config/file_source.rb
librarianp-0.2.0 lib/librarian/config/file_source.rb
librarianp-0.1.2 lib/librarian/config/file_source.rb
librarian-0.1.2 lib/librarian/config/file_source.rb
librarian-puppet-0.9.10 vendor/librarian/lib/librarian/config/file_source.rb
librarian-0.1.1 lib/librarian/config/file_source.rb
librarian-puppet-0.9.9 vendor/librarian/lib/librarian/config/file_source.rb
librarian-0.1.0 lib/librarian/config/file_source.rb