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