Sha256: 7b8d3abaed09a2d260de9000c6326945c248ebca8f1c99268b199eaac3f8c547
Contents?: true
Size: 1.75 KB
Versions: 1
Compression:
Stored size: 1.75 KB
Contents
require 'yamlr/writer/builder' module Yamlr module Writer class EmptyFilenameError < StandardError; end class EmptyInputError < StandardError; end class InvalidInputError < StandardError; end class InvalidFilenameError < StandardError; end # array, hash, or string to array of lines of .yml file # def self.build(object, options) raise Yamlr::Writer::EmptyInputError if object.is_a?(String) && object.strip.empty? raise Yamlr::Writer::InvalidInputError unless object.is_a?(String) or object.is_a?(Array) or object.is_a?(Hash) Yamlr::Writer::Builder.build([], object, options) end # array, hash, or string to file # def self.write(object, filename, options) filename = "#{ENV['HOME']}/#{File.basename(filename.to_s)}" if (filename =~ /^~/) raise Yamlr::Writer::EmptyInputError if (object.is_a?(String) && object.strip.empty?) raise Yamlr::Writer::InvalidInputError unless (object.is_a?(String) or object.is_a?(Array) or object.is_a?(Hash)) raise Yamlr::Writer::EmptyFilenameError if File.basename(filename.to_s).strip.empty? raise Yamlr::Writer::InvalidFilenameError unless File.exists?(File.dirname(filename)) File.open(filename, "w") do |file| self.build(object, options).each {|line| file.print("#{line}\n") } end filename end # write a yamlr dotfile to home dir # def self.dotfile(options, home) filename = "#{home.chomp("/")}/.yamlrc" new_name = nil if File.exists?(filename) new_name = "#{filename}.#{Time.now.strftime("%Y%m%d%H%M%S")}" File.rename(filename, new_name) end self.write(options, filename, Yamlr::Indicators.options) new_name ? new_name : filename end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
yamlr-2.0.0 | lib/yamlr/writer.rb |