My use case is that I want to be able to use a Logging::Logger[1]
within my scenario code.
I can create the logger explicitly within the step block, but this is
a hackaround.
I think I could monkey-patch Cucumber::Rails::World to include my
logger, but that also feels dirty.
Is there a nice clean way I can use on of the above (AFAIK
undocumented) methods to help me?
Better, is there some documentation / a blog post I can be pointed to
so I can help myself? I have had a pretty thorough read of the code
but I’m not quite there yet with my Ruby to make sufficient sense of it.
This way steps files could extend the world by adding to a chain,
agnostic of the nature of the original world object.
You may want to be in control over the world type (class). For
example, in Rails the world instance is a
ActionController::Integration::Session instance (off the top of my
head) and in vanilla Cucumber it is Object. what if you want to change
that?
Maybe Cucumber could send in a world instance it thinks is the one
you want (allowing what you suggest (and allow the user to instantiate
a different class if they want to).
I’m happy with the suggested type
World do |world|
returning world do |w|
w.extend(Logging::Logger)
end
end
I want my own type!
World do
world = MyType.new
returning world do |w|
w.extend(Logging::Logger)
end
end
I didn’t see a ticket yet, so please add my comment or link to mail
archive for this thread when you create the ticket.