module Sus::It
def self.build(parent, description = nil, &block)
def self.build(parent, description = nil, &block) base = Class.new(parent) base.extend(It) base.description = description base.identity = Identity.nested(parent.identity, base.description) if block_given? base.define_method(:call, &block) end return base end
def call(assertions)
def call(assertions) assertions.nested(self, identity: self.identity, isolated: true, measure: true) do |assertions| instance = self.new(assertions) instance.around do instance.call end end end
def leaf?
def leaf? true end
def print(output)
def print(output) self.superclass.print(output) if description = self.description output.write(" it ", :it, description, :reset, " ", :identity, self.identity.to_s, :reset) else output.write(" and ", :identity, self.identity.to_s, :reset) end end