Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.ruby > #3737 > unrolled thread
| Started by | RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> |
|---|---|
| First post | 2011-04-29 21:24 -0700 |
| Last post | 2011-05-11 10:37 -0700 |
| Articles | 5 — 2 participants |
Back to article view | Back to comp.lang.ruby
Must be my bug, but it looks like Ruby's ... could it be? RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> - 2011-04-29 21:24 -0700
Re: Must be my bug, but it looks like Ruby's could it be? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-30 17:06 -0500
Re: Must be my bug, but it looks like Ruby's could it be? RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> - 2011-05-08 20:33 -0700
Re: Must be my bug, but it looks like Ruby's could it be? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-05-09 14:54 -0500
Re: Must be my bug, but it looks like Ruby's could it be? RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> - 2011-05-11 10:37 -0700
| From | RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> |
|---|---|
| Date | 2011-04-29 21:24 -0700 |
| Subject | Must be my bug, but it looks like Ruby's ... could it be? |
| Message-ID | <35a326a2-4c63-430b-b4b8-8aa7e15873d2@l18g2000yql.googlegroups.com> |
I know my Subject line looks like heresy in this newsgroup, but I
can't figure out how I'm screwing up in this bug.
I posted the program at http://www.pastie.org/1849430
It reads in a little control data, which is displayed at
http://www.pastie.org/1849434
The program reads in the control data and stores it in hash containing
two hashes in this case, which represents the two pseudo-hashes in the
control data.
My problem is conflicting output by the statements numbered 155 & 156:
puts %[%d\t%s => %s] % [num+=1, key, value]
print " key = "; p key
which respectively yield the following as the 4th and 5th output lines
of the program:
1 BackupFile => {:filename => "BackupFile.rb", :path =>
".", :digits => 3}
key = " BackupFile => {:filename => \"BackupFile.rb\", :path => \".
\", :digits"
The first of these output lines indicates to me that key ==
"BackupFile", as I expected.
But the second line seems to indicate that key == " BackupFile =>
{:filename => \"BackupFile.rb\", :path => \".\", :digits"
Can anyone suggest how I can end this inconsistency?
Thanks in Advance,
Richard
[toc] | [next] | [standalone]
| From | 7stud -- <bbxx789_05ss@yahoo.com> |
|---|---|
| Date | 2011-04-30 17:06 -0500 |
| Subject | Re: Must be my bug, but it looks like Ruby's could it be? |
| Message-ID | <43ecaf91e8d0892d69f43684ff203e27@ruby-forum.com> |
| In reply to | #3737 |
RichardOnRails wrote in post #995908: > I know my Subject line looks like heresy in this newsgroup, but I > can't figure out how I'm screwing up in this bug. > > I posted the program at http://www.pastie.org/1849430 > It reads in a little control data, which is displayed at > http://www.pastie.org/1849434 > > The program reads in the control data and stores it in hash containing > two hashes in this case, which represents the two pseudo-hashes in the > control data. > > My problem is conflicting output by the statements numbered 155 & 156: > puts %[%d\t%s => %s] % [num+=1, key, value] I know about ruby's % substitutions, but I can't decipher that line--you have obfuscated the code very well! Not a good thing. I would write that line as: puts "%d\t%s => %s" % [num+=1, key, val] lol. You are using the % shortcut for %Q and you are using [] as the delimiter. I have only one thing to say: horrible code writing. -- Posted via http://www.ruby-forum.com/.
[toc] | [prev] | [next] | [standalone]
| From | RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> |
|---|---|
| Date | 2011-05-08 20:33 -0700 |
| Subject | Re: Must be my bug, but it looks like Ruby's could it be? |
| Message-ID | <74404752-d55c-450e-ba7d-a6c93c8a4159@u26g2000vby.googlegroups.com> |
| In reply to | #3757 |
On Apr 30, 6:06 pm, 7stud -- <bbxx789_0...@yahoo.com> wrote: > RichardOnRails wrote in post #995908: > > > I know my Subject line looks like heresy in this newsgroup, but I > > can't figure out how I'm screwing up in this bug. > > > I posted the program athttp://www.pastie.org/1849430 > > It reads in a little control data, which is displayed at > >http://www.pastie.org/1849434 > > > The program reads in the control data and stores it in hash containing > > two hashes in this case, which represents the two pseudo-hashes in the > > control data. > > > My problem is conflicting output by the statements numbered 155 & 156: > > puts %[%d\t%s => %s] % [num+=1, key, value] > > I know about ruby's % substitutions, but I can't decipher that line--you > have obfuscated the code very well! Not a good thing. I would write > that line as: > > puts "%d\t%s => %s" % [num+=1, key, val] > > lol. You are using the % shortcut for %Q and you are using [] as the > delimiter. I have only one thing to say: horrible code writing. > > -- > Posted viahttp://www.ruby-forum.com/. Hi 7Stud, Thanks for your response. As I mentioned to Mike, I had more serious things to work on last week; hence, my belated response. >> puts %[%d\t%s => %s] % [num+=1, key, value] vs. > puts "%d\t%s => %s" % [num+=1, key, val] I used %[...] instead of "..." because I often want to include embedded double-quotes in my strings and believe my delimiting approach is clearer since I don't have to escape double-quotes. Nevertheless, I'm mindful of the ancient adage, de gustibus non est disputandum. As I also mentioned to Mike, I now realize that my parsing routine produced errors in in my control data. Rather than trying to correct my amateurish code, I'm going to study one of Ruby Design Patterns for application to this problems. Best wishes, Richard
[toc] | [prev] | [next] | [standalone]
| From | 7stud -- <bbxx789_05ss@yahoo.com> |
|---|---|
| Date | 2011-05-09 14:54 -0500 |
| Subject | Re: Must be my bug, but it looks like Ruby's could it be? |
| Message-ID | <ced03eb75b4bd36dbbe1998c3e7e96ed@ruby-forum.com> |
| In reply to | #4148 |
RichardOnRails wrote in post #997471: > On Apr 30, 6:06pm, 7stud -- <bbxx789_0...@yahoo.com> wrote: >> > two hashes in this case, which represents the two pseudo-hashes in the >> >> lol. You are using the % shortcut for %Q and you are using [] as the >> delimiter. I have only one thing to say: horrible code writing. >> >> -- >> Posted viahttp://www.ruby-forum.com/. > > Hi 7Stud, > > Thanks for your response. As I mentioned to Mike, I had more serious > things to work on last > week; hence, my belated response. > >>> puts %[%d\t%s => %s] % [num+=1, key, value] > vs. >> puts "%d\t%s => %s" % [num+=1, key, val] > > I used %[...] instead of "..." because I often want to include > embedded double-quotes in my strings > I'm not sure which 'strings' you are talking about? key? val? In that case, it doesn't matter what is inside key or val: key = 'He said, "Hi".' result = "%s" % key puts result --output:-- He said, "Hi". Note that the substitution is not equivalent to writing: result = "He said, "Hi"." ..which will not parse correctly. If you are talking about the string on the left, then you need to alter your quoting regimen depending on the specific situation--do not use a one size fits all approach. That will just make your code hard to decipher. And after trying to decipher your code, I would suggest that NOBODY ever use the % shortcut--either use %q or %Q. Code clarity is much more important than saving one character while typing. and believe my delimiting > approach is clearer since I don't have to escape double-quotes. > Nevertheless, I'm mindful of the ancient adage, de gustibus non est > disputandum. > > As I also mentioned to Mike, I now realize that my parsing routine > produced errors in in my control data. Rather than trying to correct > my amateurish code, I'm going to study one of Ruby Design Patterns > for application to this problems. > > Best wishes, > Richard -- Posted via http://www.ruby-forum.com/.
[toc] | [prev] | [next] | [standalone]
| From | RichardOnRails <RichardDummyMailbox58407@USComputerGurus.com> |
|---|---|
| Date | 2011-05-11 10:37 -0700 |
| Subject | Re: Must be my bug, but it looks like Ruby's could it be? |
| Message-ID | <c0bc7dd6-4365-4d5c-9eed-af99fe3defc8@35g2000prp.googlegroups.com> |
| In reply to | #4173 |
On May 9, 3:54 pm, 7stud -- <bbxx789_0...@yahoo.com> wrote: > RichardOnRails wrote in post #997471: > > > > > > > > > > > On Apr 30, 6:06pm, 7stud -- <bbxx789_0...@yahoo.com> wrote: > >> > two hashes in this case, which represents the two pseudo-hashes in the > > >> lol. You are using the % shortcut for %Q and you are using [] as the > >> delimiter. I have only one thing to say: horrible code writing. > > >> -- > >> Posted viahttp://www.ruby-forum.com/. > > > Hi 7Stud, > > > Thanks for your response. As I mentioned to Mike, I had more serious > > things to work on last > > week; hence, my belated response. > > >>> puts %[%d\t%s => %s] % [num+=1, key, value] > > vs. > >> puts "%d\t%s => %s" % [num+=1, key, val] > > > I used %[...] instead of "..." because I often want to include > > embedded double-quotes in my strings > > I'm not sure which 'strings' you are talking about? key? val? In that > case, it doesn't matter what is inside key or val: > > key = 'He said, "Hi".' > result = "%s" % key > puts result > > --output:-- > He said, "Hi". > > Note that the substitution is not equivalent to writing: > > result = "He said, "Hi"." > > ..which will not parse correctly. > > If you are talking about the string on the left, then you need to alter > your quoting regimen depending on the specific situation--do not use a > one size fits all approach. That will just make your code hard to > decipher. And after trying to decipher your code, I would suggest that > NOBODY ever use the % shortcut--either use %q or %Q. Code clarity is > much more important than saving one character while typing. > > and believe my delimiting > > > approach is clearer since I don't have to escape double-quotes. > > Nevertheless, I'm mindful of the ancient adage, de gustibus non est > > disputandum. > > > As I also mentioned to Mike, I now realize that my parsing routine > > produced errors in in my control data. Rather than trying to correct > > my amateurish code, I'm going to study one of Ruby Design Patterns > > for application to this problems. > > > Best wishes, > > Richard > > -- > Posted viahttp://www.ruby-forum.com/. Hi 7Stud, Thanks for taking the trouble press the case that %[...] is less clear than including the explicit q/Q > I would suggest that NOBODY ever use the % shortcut--either use %q or %Q. You may be correct that nobody uses this shortcut. However, AFAIK, Matz implemented the shortcut. In my mind, that weighs more heavily than the proportion of people that use it. Further more, it helps avoid having to remember which of q/Q corresponds to which quote mark. Finally, when I post a question here, I presume that the people who'll respond are Ruby experts who won't be troubled by my use of the shortcut. In any case, I've moved on to another idea, namely using "Design Patterns in Ruby" to parse user-input rather than my convoluted code. Of course, I ran into another problem. I hope you'll be interested in looking at my latest puzzle at http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/d1af38232e963ed6# Best wishes, Richard
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.ruby
csiph-web