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