Victor, Those are both great ideas. I'd love to incorporate both of them in the gem; feel free to send me any patches at mike...at...subelsky.com. The SVN repository is here: svn checkout http://random-data.rubyforge.org/svn/trunk/ -Mike Victor "Zverok" Shepelev wrote: > From: list-bounce / example.com [mailto:list-bounce / example.com] On Behalf > Of > Mike Subelsky > Sent: Friday, September 21, 2007 1:52 AM >> >>http://random-data.rubyforge.org/ >> > > Wow! Really, really cool. > > Two suggestions. > > 1. I'd like to have it localized (to generate random Russian/Ukrainian > names > and realistic-looking addresses). I can do it myself, but it'll require > you > to change internals to allow localizations? > > 2. Literally yesterday I've also done something for "realistic looking" > data, but in numbers and probabilities area (example with students): > > if probable(0.7) # with 70% probability > # student have done nearly 20 right answers > student.answer_count = (~20.0).to_i > else # with 30% probability > # he have done nearly 10 right answers > student.answer_count = (~10.0).to_i > end > > Here are two "tricky functions": > > # probable(pct) returns true with pct probability (or calls block > provided) > > def probable(pct) > happened = rand < pct > yield if happened && block_given? > return happened > end > > # Number#~ read is "nearly" and returns something like number +- 15%: > > class Numeric > LEVEL = 0.3 > def ~ > self + self * rand(LEVEL) * LEVEL - self* LEVEL/2.0 > end > end > > I think, as my "magic" tend to be used in same circumstances as yours, > it > can be joined into the same gem. > > V. -- Posted via http://www.ruby-forum.com/.