def blueprint(name = :master, &block)
      @blueprints ||= {}
      if block_given?
        parent = (name == :master ? superclass : self) # Where should we look for the parent blueprint?
        @blueprints[name] = blueprint_class.new(self, :parent => parent, &block)
      end
      @blueprints[name]
    end
def blueprint(name = :master, &block)
      @blueprints ||= {}
      if block_given?
        parent = (name == :master ? superclass : self) # Where should we look for the parent blueprint?
        @blueprints[name] = blueprint_class.new(self, :parent => parent, &block)
      end
      @blueprints[name]
    end
Define a blueprint with the given name for this class.

 e.g.
   Post.blueprint do
     title { "A Post" }
     body  { "Lorem ipsum..." }
   end

 If you provide the +name+ argument, a named blueprint will be created.
 See the +blueprint_name+ argument to the make method.