module Blueprints
# Module that blueprints file is executed against. Defined blueprint and namespace methods.
module FileContext
# Creates a new plan by name and block passed
def self.blueprint(plan, &block)
Plan.new(plan, &block)
end
# Creates new namespace by name, and evaluates block against it.
def self.namespace(name)
old_namespace = Namespace.root
namespace = Namespace.new(name)
Namespace.root = namespace
yield
old_namespace.add_child(namespace)
Namespace.root = old_namespace
namespace
end
# Creates dependency for current blueprint on some other blueprint and marks that instance variable with same name
# should be used for value of column. Only works on "Class.blueprint :name" type of blueprints
def self.d(name)
Buildable::Dependency.new(name)
end
end
end