add Formulary.from_contents
This commit is contained in:
parent
ff0f6598ce
commit
61c8f69c25
@ -170,6 +170,23 @@ class Formulary
|
||||
end
|
||||
end
|
||||
|
||||
# Load formulae directly from their contents
|
||||
class FormulaContentsLoader < FormulaLoader
|
||||
# The formula's contents
|
||||
attr_reader :contents
|
||||
|
||||
def initialize(name, path, contents)
|
||||
@contents = contents
|
||||
super name, path
|
||||
end
|
||||
|
||||
def klass
|
||||
STDERR.puts "#{$0} (#{self.class.name}): loading #{path}" if ARGV.debug?
|
||||
namespace = "FormulaNamespace#{Digest::MD5.hexdigest(contents)}"
|
||||
Formulary.load_formula(name, path, contents, namespace)
|
||||
end
|
||||
end
|
||||
|
||||
# Return a Formula instance for the given reference.
|
||||
# `ref` is string containing:
|
||||
# * a formula name
|
||||
@ -199,6 +216,11 @@ class Formulary
|
||||
end
|
||||
end
|
||||
|
||||
# Return a Formula instance directly from contents
|
||||
def self.from_contents(name, path, contents, spec = :stable)
|
||||
FormulaContentsLoader.new(name, path, contents).get_formula(spec)
|
||||
end
|
||||
|
||||
def self.to_rack(ref)
|
||||
# First, check whether the rack with the given name exists.
|
||||
if (rack = HOMEBREW_CELLAR/File.basename(ref, ".rb")).directory?
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user