On Tue, Jul 7, 2009 at 11:35 AM, Chris Sund<ch...@silhouettesolutions.net> wrote: > Hey Everyone, > > I've been working my way through the Rspec book trying to absorb and > understand everything. This is my first time with BDD and I'm just > trying to figure out some simple syntax stuff. My questions revolve > around some of the syntaxing used in the book. These are really simple > questions. > > > 1.) Given /^the secret code is (. . . .)$/ do |code| > Is (. . . .) simply a place holder? could I use something like > (- - - -) instead, or does it actually mean something?
Yes it actually means something. the stuff between // is a regular expression, and some of the characters have meaning. ^ means the beginning of the string $ means the end of the string Each . will mark a single character, any character will do. The parens mark a group, the part of the string which marks the group will be assigned to the code parameter. So when the whole regex matches code will be set to the four characters of the code separated by spaces. > > 2.) Then /^the mark should be (.*)$/ do |mark| > Similar question....what does .* represent? it means zero or more arbitrary characters > 3.) In the following example why don't I pass |guess| to the When > statement? I'm sure it has something to do with the (code.split) > syntax, I'm just not sure what. > > When /^I guess (. . . .)$/ do |code| > @game.guess(code.split) > end There isn't a variable named guess here. As I said in answer to the first question, if the story says When I guess 1 3 4 2 then when the step is executed the code parameter to the block will be set to "1 3 4 2" and "1 3 4 2".split gives ["1", "3", "4", "2"] > 4.) And finally what does ("\n") do? > > Then /^the mark should be (.*)$/ do |mark| > �...@messenger.string.split("\n").should include(mark) > end "\n" is a ruby string literal representing a new-line, so @messenger.string.split("\n") results in an array comprising each line within @messenger.string -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users