Prev: file copy
Next: If call method HTML file not create
From: Robert Klemme on 27 May 2010 09:09 2010/5/27 Martin Hansen <mail(a)maasha.dk>: > It is quite important to me that other people can put together a > "Biopiece" as easily as possible i.e. expand the minimal example. > Therefore I have moved code which under normal circumstances would be > placed in the 'Biopieces' script to the Biopieces class - and I quite > possibly violate a number of conventions that way. > >> I would extract the opion parsing from that class and either use a >> Hash, OpenStruct or custom class for transportation of your options. >> That way you make your bio pieces processing independent from the >> interface (command line, graphical application etc.). > > I really don't want upcoming 'Biopiece writers' to fiddle around with > other classes than the Biopieces class for the sake of simplicity - and > I am willing to have option parsing and record parsing mixed even though > it is ugly. Well, then I don't know what you're after. You say you suspect it's badly structured, someone points out something that indicates bad structure and you say you want to keep it that way. What is your goal and what do you expect from us? Cheers robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/
From: Martin Hansen on 27 May 2010 10:20 The goal is to create a bunch of scripts that can be piped together easily on the command line in a UNIX environment to manipulate text based records. They scripts are supposed to be easy to use, but also easy to write - in whatever programming language. Have a look here: www.biopieces.org. I expect/hope to learn Ruby with your fine assistance, and I want to keep in mind good practices etc. However, for this particular project it is difficult. Cheers, Martin Robert Klemme wrote: > 2010/5/27 Martin Hansen <mail(a)maasha.dk>: > >> >> I really don't want upcoming 'Biopiece writers' to fiddle around with >> other classes than the Biopieces class for the sake of simplicity - and >> I am willing to have option parsing and record parsing mixed even though >> it is ugly. > > Well, then I don't know what you're after. You say you suspect it's > badly structured, someone points out something that indicates bad > structure and you say you want to keep it that way. What is your goal > and what do you expect from us? > > Cheers > > robert -- Posted via http://www.ruby-forum.com/.
From: Josh Cheek on 27 May 2010 10:37
[Note: parts of this message were removed to make it a legal post.] On Thu, May 27, 2010 at 8:05 AM, Martin Hansen <mail(a)maasha.dk> wrote: > Josh Cheek wrote: > > On Thu, May 27, 2010 at 7:26 AM, Martin Hansen <mail(a)maasha.dk> wrote: > > > >> > Hash, OpenStruct or custom class for transportation of your options. > >> Thanks, I am working hard on it! > >> Posted via http://www.ruby-forum.com/. > >> > >> > > If you have a comprehensive set of tests, then people can refactor > > without > > fear of breaking. > > I am working on comprehensive unit testing of class biopieces, but > "Biopiece writers" should not change anything in that class. They should > only concentrate on what is in the script they are writing and whatever > classes they write to expand that. > > > Martin > -- > Posted via http://www.ruby-forum.com/. > > I meant rubyists. For example, the time_diff method at the very end can probably be rewritten def time_diff(t0, t1) day0 , hour0 , min0 , sec0 = t0.split(/\D+/)[2..-1].map { |n| n.to_i } day1 , hour1 , min1 , sec1 = t1.split(/\D+/)[2..-1].map { |n| n.to_i } sec0 += ( ( day0 * 24 + hour0 ) * 60 + min0 ) * 60 sec1 += ( ( day1 * 24 + hour1 ) * 60 + min1 ) * 60 sec = sec1-sec0 sprintf '%02d:%02d:%02d' , sec/60/60 , sec/60%60 , sec%60 end But I don't know for sure, without a bunch of tests to show it behaves the same way. I think the math at the end is probably right, but haven't had a math course in 2 years, would you rather trust correctness to my "probably right" or to your ironclad test suite? And when looking at it, I see we don't use year or month, so I wonder if it has bugs, and I'm just refactoring bugs, which makes it very difficult to get motivated. I might also be inclined to play with DateTime to see if it has this functionality within it, in which case the whole method could probably be replaced with 1 line, but its not immediately obvious to me if it does, so it would be nice to have some tests that I can know how close I am getting. |