lib/blueprints/file_context.rb in blueprints-0.7.2 vs lib/blueprints/file_context.rb in blueprints-0.7.3
- old
+ new
@@ -1,17 +1,27 @@
module Blueprints
# Module that blueprints file is executed against. Defined <tt>blueprint</tt> and <tt>namespace</tt> methods.
- module FileContext
- mattr_accessor :evaluating
+ class FileContext
+ @@current = nil
+ cattr_accessor :current
+ attr_reader :file
+ def initialize(file)
+ file = Pathname.new(file)
+ @file = file.relative_path_from(Blueprints.config.root)
+ FileContext.current = self
+ instance_eval(File.read(file))
+ FileContext.current = nil
+ end
+
# Creates a new blueprint by name and block passed
- def self.blueprint(name, &block)
- Blueprint.new(name, &block)
+ def blueprint(name, &block)
+ Blueprint.new(name, @file, &block)
end
# Creates new namespace by name, and evaluates block against it.
- def self.namespace(name)
+ def namespace(name)
old_namespace = Namespace.root
namespace = Namespace.new(name)
Namespace.root = namespace
yield
old_namespace.add_child(namespace)
@@ -19,10 +29,10 @@
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)
+ def d(name)
Buildable::Dependency.new(name)
end
end
end