module Blueprints # Module that blueprints file is executed against. Defined blueprint and namespace methods. module FileContext mattr_accessor :evaluating # Creates a new blueprint by name and block passed def self.blueprint(name, &block) Blueprint.new(name, &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