Module: Sus::It
- Defined in:
- lib/sus/it.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call(assertions) ⇒ Object
- #handle_skip(instance, assertions) ⇒ Object
- #leaf? ⇒ Boolean
- #print(output) ⇒ Object
- #to_s ⇒ Object
Class Method Details
.build(parent, description = nil, unique: true, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/sus/it.rb', line 10 def self.build(parent, description = nil, unique: true, &block) base = Class.new(parent) base.extend(It) base.description = description base.identity = Identity.nested(parent.identity, base.description, unique: unique) base.set_temporary_name("#{self}[#{description}]") if block_given? base.define_method(:call, &block) end return base end |
Instance Method Details
#call(assertions) ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/sus/it.rb', line 38 def call(assertions) assertions.nested(self, identity: self.identity, isolated: true, measure: true) do |assertions| instance = self.new(assertions) instance.around do handle_skip(instance, assertions) end end end |
#handle_skip(instance, assertions) ⇒ Object
48 49 50 51 52 |
# File 'lib/sus/it.rb', line 48 def handle_skip(instance, assertions) catch(:skip) do return instance.call end end |
#leaf? ⇒ Boolean
24 25 26 |
# File 'lib/sus/it.rb', line 24 def leaf? true end |
#print(output) ⇒ Object
28 29 30 31 32 |
# File 'lib/sus/it.rb', line 28 def print(output) self.superclass.print(output) output.write(" it ", :it, self.description, :reset, " ", :identity, self.identity.to_s, :reset) end |
#to_s ⇒ Object
34 35 36 |
# File 'lib/sus/it.rb', line 34 def to_s "it #{description}" end |