I have this in a _spec.rb file: (a gem I inherited at work)
Open3.expects(:popen3).with do |command|
case part_of_command
when Regexp: command =~ part_of_command
when String: command.include?(part_of_command)
else raise "Can't match that"
end
end
which ruby is complaining about:
spec/ruby_gpg_spec.rb:7: syntax error, unexpected ':', expecting
keyword_then or ',' or ';' or '\n'
when Regexp: command =~ part_of_command
^
spec/ruby_gpg_spec.rb:8: syntax error, unexpected keyword_when,
expecting keyword_end
when String: command.include?(part_of_command)
^
spec/ruby_gpg_spec.rb:9: syntax error, unexpected keyword_else,
expecting keyword_end
else raise "Can't match that"
^
spec/ruby_gpg_spec.rb:241: syntax error, unexpected keyword_end,
expecting $end
I'm completely unfamiliar with what is supposed to be happening above,
but I rather assume that Regexp: and String: have something to do with
the Open3.expects bit.
I'm a bit pressed for time right now, can anyone give me some fast
pointers? Already delving into Open3...
on 2013-02-05 14:34
on 2013-02-05 14:47
Subject: old syntax? what's going on here Date: mar 05 feb 13 10:33:35 +0900 Quoting tamouse mailing lists (tamouse.lists@gmail.com): > I have this in a _spec.rb file: (a gem I inherited at work) > > Open3.expects(:popen3).with do |command| > case part_of_command > when Regexp: command =~ part_of_command > when String: command.include?(part_of_command) > else raise "Can't match that" > end > end Are you sure that code ever worked? From my very worn copy of "Ruby in a nutshell": "A *when* statement's *expression* is separated from *code* by the reserved word *then*, a newline, or a semicolon." That colon should be a semicolon (or *then* or a newline)... Carlo
on 2013-02-05 14:53
On Tue, Feb 5, 2013 at 7:47 AM, Carlo E. Prelz <fluido@fluido.as> wrote: >> when String: command.include?(part_of_command) > > That colon should be a semicolon (or *then* or a newline)... Heh, no -- I've inherited this little bit of thing that no one in the group has ever done much with.
on 2013-02-05 14:55
On Tue, Feb 5, 2013 at 7:52 AM, tamouse mailing lists <tamouse.lists@gmail.com> wrote: >>> when Regexp: command =~ part_of_command >> reserved word *then*, a newline, or a semicolon." >> >> That colon should be a semicolon (or *then* or a newline)... > > Heh, no -- I've inherited this little bit of thing that no one in the > group has ever done much with. Sure enough, Carlos. Now it syntax checks. But on to other problems, namely with the Open3.expects and a later Open3.stub. I'm guessing I need some kind of mocker; the .gemspec refers to mocha, which I'm trying to look into.
on 2013-02-05 14:59
Am 05.02.2013 14:33, schrieb tamouse mailing lists: > which ruby is complaining about: > expecting keyword_end > else raise "Can't match that" > ^ > spec/ruby_gpg_spec.rb:241: syntax error, unexpected keyword_end, expecting $end > > I'm completely unfamiliar with what is supposed to be happening above, > but I rather assume that Regexp: and String: have something to do with > the Open3.expects bit. No. This case statement (with corrected syntax of course) uses the class of the object referenced by the `command` variable to branch execution. command = 'list' case command when String puts 'a String' when Regexp puts 'a Regexp' else puts 'neither String nor Regexp' end => a String
on 2013-02-05 15:04
----- Original Message ---- From: "sto.mar@web.de" <sto.mar@web.de> > No. This case statement (with corrected syntax of course) > uses the class of the object referenced by the `command` > variable to branch execution. I'm just a tad loss (not on the explanation), but where this is coming from... > Open3.expects(:popen3).with do |command| > case part_of_command Here case is looking at a local variable called part_of_command, but we didn't pass that value (did we???), or is that somehow part of command in this snippet of code? Wayne
on 2013-02-05 15:09
Subject: Re: old syntax? what's going on here Date: mar 05 feb 13 10:54:39 +0900 Quoting tamouse mailing lists (tamouse.lists@gmail.com): > Sure enough, Carlos. Now it syntax checks. But on to other problems, > namely with the Open3.expects and a later Open3.stub. I'm guessing I > need some kind of mocker; the .gemspec refers to mocha, which I'm > trying to look into. (it is Carlo, not Carlos - I am Italian... Nothing against the Spaniards and the Portuguese, of course) I never used Open3 (never needed). But if I type ri expects nothing appears. There must be yet another syntax error, in the sense that you should have expect, not expects. Indeed, if I type ri expect I obtain (among others): --8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<-- === Implementation from Mock ------------------------------------------------------------------------------ expect(name, retval, args=[], &blk) ------------------------------------------------------------------------------ Expect that method name is called, optionally with args or a blk, and returns retval. @mock.expect(:meaning_of_life, 42) @mock.meaning_of_life # => 42 @mock.expect(:do_something_with, true, [some_obj, true]) @mock.do_something_with(some_obj, true) # => true @mock.expect(:do_something_else, true) do |a1, a2| a1 == "buggs" && a2 == :bunny end args is compared to the expected args using case equality (ie, the '===' operator), allowing for less specific expectations. @mock.expect(:uses_any_string, true, [String]) @mock.uses_any_string("foo") # => true @mock.verify # => true @mock.expect(:uses_one_string, true, ["foo"] @mock.uses_one_string("bar") # => true @mock.verify # => raises MockExpectationError --8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<-- Then, if I ask ri for Mock, nothing comes out, I never used Mock myself - I know nothing about that. Hmm... looks like this doc is a leftover from an old installation (mock seems to have been part of Ruby in the past but it is not there anymore). I expect you will find stuff about Mock on the net. Carlo
on 2013-02-05 15:28
2013/2/5 tamouse mailing lists <tamouse.lists@gmail.com> > > spec/ruby_gpg_spec.rb:9: syntax error, unexpected keyword_else, > I'm a bit pressed for time right now, can anyone give me some fast > pointers? Already delving into Open3... > The above case syntax is legitimate in ruby 1.8 but not in 1.9. Refer to http://blog.grayproductions.net/articles/getting_c... Regards, Park Heesob
on 2013-02-05 15:31
Am 05.02.2013 15:08, schrieb Carlo E. Prelz: > (it is Carlo, not Carlos - I am Italian... Nothing against the > Spaniards and the Portuguese, of course) > > I never used Open3 (never needed). But if I type > > ri expects > > nothing appears. There must be yet another syntax error, in the sense > that you should have expect, not expects. Indeed, if I type No! As long as you do not have the same gems on your machine as have been used for tamouse's project, that tells you nothing. The Mocha::Mock class from the mentioned mocha gem class *has* an expects method. > > @mock.expect(:do_something_else, true) do |a1, a2| > > > Carlo No! The Mock class you are talking about is part of MiniTest, and rather new.
on 2013-02-05 18:33
On Tue, Feb 5, 2013 at 8:27 AM, <sto.mar@web.de> wrote: >>> trying to look into. >> that you should have expect, not expects. Indeed, if I type >> >> >> @mock.expect(:do_something_else, true) do |a1, a2| >> >> > <https://github.com/stomar/> > This is the ruby_pgp module, which seems quite old(?) but has been sucked into our code base somehow. I'm at a loss to understand how this could actually be even passing tests, until I realized there are no tests for it either! (The gem has tests, lots of them, but they aren't run in our own spec tests.) It only cropped up now as we're finally using the functionality that it offers at this stage of the game. It's a wrapper for the gpg command. I'm ripping it out of our code base and restoring it to proper Gem status so we can use it better. I've looked at other gpg gems, but they would involve more work to just get the basic thing we need done, which is just encrypt and decrypt a single file in a standalone job that runs once a week. The mocha gem is mentioned in the gemspec (there's no Gemfile) but I can't figure out where it gets included in this (yet!).
on 2013-02-05 18:42
On Tue, Feb 5, 2013 at 8:08 AM, Carlo E. Prelz <fluido@fluido.as> wrote: > (it is Carlo, not Carlos - I am Italian... Nothing against the > Spaniards and the Portuguese, of course) Deepest apologies. I didn't even notice that I added the -s until you pointed it out. So annoying! I have a name (Tamara) which should be easy to spell. But I seem to have some weird kind of accent or something so people always are spelling it wrong: Timera, Camera, TOmara, Tamera, Tamra, ... This only seems to happen with Americans. Others never seem to have a problem hearing it and knowing how it's spelled. What's weird is I'm American, people say I have virtually no accent of any kind (which means, I guess, neutral "newscaster" American accent?) At any rate, I do apologize.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.