class Molecule::Molecule
Attributes
dependencies[RW]
name[RW]
version[RW]
Public Class Methods
clear_cache()
click to toggle source
# File lib/molecule/molecule.rb, line 39 def self.clear_cache @@cache = {} end
new(name, version, dependencies)
click to toggle source
# File lib/molecule/molecule.rb, line 10 def initialize name, version, dependencies @name = name.to_s @version = version @dependencies = dependencies end
read(name)
click to toggle source
# File lib/molecule/molecule.rb, line 20 def self.read name read_from_cache(name) || read_from_file(name) end
read_from_cache(name)
click to toggle source
# File lib/molecule/molecule.rb, line 35 def self.read_from_cache name @@cache[name] end
read_from_file(name)
click to toggle source
# File lib/molecule/molecule.rb, line 24 def self.read_from_file name molecule_config = ::Molecule::File.new(name).read raise "invalid molecule name '#{name}' in:\n#{molecule_config.inspect}" if name.to_s != molecule_config[:name] version = molecule_config[:version] || '0.1.0' dependencies = molecule_config[:dependencies] || [] @@cache[name] = self.new name, version, dependencies end
Public Instance Methods
has_child?(name)
click to toggle source
# File lib/molecule/molecule.rb, line 16 def has_child? name @dependencies.include?(name) end