Sha256: 26c5204cffa02fb5c22dd6f2866bcb76a73ec647c36bf5925500da517e4b1aa1

Contents?: true

Size: 924 Bytes

Versions: 3

Compression:

Stored size: 924 Bytes

Contents

module Blueprints
  # Module that blueprints file is executed against. Defined <tt>blueprint</tt> and <tt>namespace</tt> methods.
  module FileContext
    mattr_accessor :evaluating

    # 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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
blueprints-0.6.3 lib/blueprints/file_context.rb
blueprints-0.6.2 lib/blueprints/file_context.rb
blueprints-0.6.1 lib/blueprints/file_context.rb