Sha256: bd89a06d6d697a996d36bc8848f13691530fb17e246bfd4ced6879d8d78e752a

Contents?: true

Size: 596 Bytes

Versions: 7

Compression:

Stored size: 596 Bytes

Contents

require 'yaml'
require 'deepstruct'

module Hobo
  module Config
    class File
      def self.save(file, config)
        config = config.unwrap if config.public_methods.include? :unwrap
        dir = ::File.dirname file
        FileUtils.mkdir_p dir unless ::File.exists? dir
        ::File.open(file, 'w+') do |f|
          f.puts config.to_yaml
        end
      end

      def self.load(file)
        config = ::File.exists?(file) ? YAML.load_file(file) : {}
        raise "Invalid hobo configuration (#{file})" unless config
        return DeepStruct.wrap(config)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
hobo-inviqa-0.0.9.pre.rc1 lib/hobo/config/file.rb
hobo-inviqa-0.0.9.pre.alpha lib/hobo/config/file.rb
hobo-inviqa-0.0.8 lib/hobo/config/file.rb
hobo-inviqa-0.0.7.pre.rc3 lib/hobo/config/file.rb
hobo-inviqa-0.0.7.pre.rc2 lib/hobo/config/file.rb
hobo-inviqa-0.0.7.pre.rc1 lib/hobo/config/file.rb
hobo-inviqa-0.0.7 lib/hobo/config/file.rb