From bb7f036a822ea7c7b4c6a529f1e6bf34e1c39d41 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Wed, 19 Sep 2018 21:50:51 -0600 Subject: [PATCH] Make Example#group abstract Instead of passing parent group as an argument, define the group method in the exapmle class created by the #it macro. --- src/spectator/dsl/structure_dsl.cr | 7 +++++-- src/spectator/example.cr | 5 +---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/spectator/dsl/structure_dsl.cr b/src/spectator/dsl/structure_dsl.cr index cfaaa68..ec38175 100644 --- a/src/spectator/dsl/structure_dsl.cr +++ b/src/spectator/dsl/structure_dsl.cr @@ -140,10 +140,13 @@ module Spectator def description {{description.is_a?(StringLiteral) ? description : description.stringify}} end + + def group + ::Spectator::Definitions::GROUPS[{{@type.symbolize}}] + end end - %group = ::Spectator::Definitions::GROUPS[\{{@type.symbolize}}] - %group.children << Example%example.new(%group) + ::Spectator::Definitions::GROUPS[\{{@type.symbolize}}].children << Example%example.new end macro pending(description, &block) diff --git a/src/spectator/example.cr b/src/spectator/example.cr index f6a493a..d39b857 100644 --- a/src/spectator/example.cr +++ b/src/spectator/example.cr @@ -1,12 +1,9 @@ module Spectator abstract class Example - getter group : ExampleGroup getter? finished = false - def initialize(@group) - end - abstract def run : Result abstract def description : String + abstract def group : ExampleGroup end end