module Sus::Describe

def self.build(parent, subject, unique: true, &block)

def self.build(parent, subject, unique: true, &block)
	base = Class.new(parent)
	base.singleton_class.prepend(Describe)
	base.children = Hash.new
	base.subject = subject
	base.description = subject.to_s
	base.identity = Identity.nested(parent.identity, base.description, unique: unique)
	base.set_temporary_name("#{self}[#{base.description}]")
	
	base.define_method(:subject, ->{subject})
	
	if block_given?
		base.class_exec(&block)
	end
	
	return base
end

def print(output)

def print(output)
	output.write(
		"describe ", :describe, self.description, :reset,
		# " ", self.identity.to_s
	)
end