class MotherBrain::CookbookMetadata

Constants

JSON_FILENAME
RUBY_FILENAME

Public Class Methods

from_file(filepath) click to toggle source

@param [#to_s] filepath

@return [Cookbook::Metadata]

# File lib/mb/cookbook_metadata.rb, line 18
def from_file(filepath)
  filepath = filepath.to_s

  if File.extname(filepath) =~ /\.json/
    from_json_file(filepath)
  else
    from_ruby_file(filepath)
  end
end
from_path(path) click to toggle source

@param [#to_s] path

@return [Cookbook::Metadata]

# File lib/mb/cookbook_metadata.rb, line 31
def from_path(path)
  ruby_file     = File.join(path, RUBY_FILENAME)
  json_file     = File.join(path, JSON_FILENAME)
  metadata_file = File.exists?(json_file) ? json_file : ruby_file

  from_file(metadata_file)
end
load(&block) click to toggle source

@return [Cookbook::Metadata]

# File lib/mb/cookbook_metadata.rb, line 9
def load(&block)
  klass = new()
  klass.instance_eval(&block) if block_given?
  klass
end
new(&block) click to toggle source

@param [Cookbook::Metadata]

Calls superclass method
# File lib/mb/cookbook_metadata.rb, line 51
def initialize(&block)
  super
  
  begin
    self.instance_eval(&block) if block_given?
  rescue => e
    raise MotherBrain::InvalidCookbookMetadata, e
  end
end

Private Class Methods

from_json_file(filepath) click to toggle source
# File lib/mb/cookbook_metadata.rb, line 45
def from_json_file(filepath)
  load { from_json(File.read(filepath)) }
end
from_ruby_file(filepath) click to toggle source
# File lib/mb/cookbook_metadata.rb, line 41
def from_ruby_file(filepath)
  load { eval(File.read(filepath), binding, filepath, 1) }
end

Public Instance Methods

version(data = nil) click to toggle source

Override the default version with [Semverse::Version]

@return [Semverse::Version]

# File lib/mb/cookbook_metadata.rb, line 64
def version(data = nil)
  @version = data.nil? ? @version : Semverse::Version.new(data)
end

Private Instance Methods

method_missing(*args) click to toggle source
# File lib/mb/cookbook_metadata.rb, line 70
def method_missing(*args); nil end