class Kamaze::Project::Tools::Vagrant::Composer::File
Describe a file
File
can be overriden (“.override.yml“). A file has a name. It is loadable.
Public Instance Methods
empty?()
click to toggle source
Denote file is empty
Return “true“ when content is empty
@return [Boolean]
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 37 def empty? self.read.empty? end
load()
click to toggle source
Load file
@return [Hash]
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 60 def load return nil unless self.loadable? data = yaml_read(self) data.merge!(yaml_read(override)) if overriden? data end
loadable?()
click to toggle source
Denote file is loadable
This test is based on filesystem and emptyness
@return [Boolean]
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 46 def loadable? self.file? and self.readable? and !self.empty? end
name()
click to toggle source
@return [String]
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 23 def name self.basename('.yml').to_s end
override()
click to toggle source
Get path to potential override
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 28 def override self.dirname.join("#{name}.override.yml") end
overriden?()
click to toggle source
Denote file is overriden
@return [Booolean]
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 53 def overriden? override.file? and override.readable? end
Protected Instance Methods
yaml_read(path)
click to toggle source
Read a file (by given path)
Use “safe_load“ on file content
@param [Pathname] path
# File lib/kamaze/project/tools/vagrant/composer/file.rb, line 76 def yaml_read(path) YAML.safe_load(path.read, [Symbol]) end