From aa08819bb30257a4c829a9174298776e58a7f67c Mon Sep 17 00:00:00 2001 From: gedi Date: Wed, 10 Jun 2015 15:02:30 +0300 Subject: [PATCH] register steps like http handler --- behat.go => cmd/behat/main.go | 0 runner.go | 1 + steps.go | 23 +++++++++++++++++++++++ 3 files changed, 24 insertions(+) rename behat.go => cmd/behat/main.go (100%) create mode 100644 runner.go create mode 100644 steps.go diff --git a/behat.go b/cmd/behat/main.go similarity index 100% rename from behat.go rename to cmd/behat/main.go diff --git a/runner.go b/runner.go new file mode 100644 index 0000000..6832c0f --- /dev/null +++ b/runner.go @@ -0,0 +1 @@ +package behat diff --git a/steps.go b/steps.go new file mode 100644 index 0000000..6b8186e --- /dev/null +++ b/steps.go @@ -0,0 +1,23 @@ +package behat + +import "regexp" + +var stepHandlers map[*regexp.Regexp]StepHandler + +type StepHandler interface { + HandleStep(args ...interface{}) error +} + +type StepHandlerFunc func(...interface{}) error + +func (f StepHandlerFunc) HandleStep(args ...interface{}) error { + return f(args...) +} + +func Step(exp *regexp.Regexp, h StepHandler) { + stepHandlers[exp] = h +} + +func init() { + stepHandlers = make(map[*regexp.Regexp]StepHandler) +}