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