From: Nathan Powell Date: 2008-08-28T21:28:55+09:00 Subject: Re: How would this Perl script look in Ruby? Why don't you show us what you have, and where you are stuck, rather than us translating it for you in it's entirety. On Thu, Aug 28, 2008 at 09:23:30PM +0900, Avinash Magar wrote: > Can somebody please me tell the way to write this script in Ruby? > > ;--------------------------------------- > #!/bin/env perl > > use strict; > use Data::Dumper; > > #; define some message templates here > my $message_templates = [ > 'adm has _QTY_ _CAR_ cars', > 'ssn had _QTY_ _CAR_ cars', > ]; > > #; value map > my %value_map = ( > '_CAR_' => { > 'order' => 'rand', > 'vals' => [qw(bentley merc bmw audi porsche ford honda lexus)] > }, > '_QTY_' => { > 'order' => 'rand', > 'vals' => [1..10] > } > ); > > # using 'random_msg_stub and val generators from %value_map > sub get_next_random_msg { > my ($next_msg, $val_map) = @_; > > my $m = &$next_msg(); > while (my($vk, $v) = each (%value_map)) { > my ($nval) = $v->{gen}->(); > $m =~ s/$vk/$nval/g; > } > $m; > } > > # return $arrya[$last + 1] elem of array; $last is remembered across > invocations > sub get_seq_val_generator { > my $a = $_[0]; > my $last = 0; > return sub { > $last = 0 if ($last == scalar @$a); > $$a[$last++]; > }; > } > > # return random elem of array > sub get_random_val_generator { > my $arr = shift; > return sub { return $arr->[ rand @$arr] }; > } > > #; let's generate value generator foreach value in 'value_map > while (my($vk, $v) = each (%value_map)) { > if ($v->{order} eq 'seq') { > $v->{gen} = get_seq_val_generator($v->{vals}); > } elsif ($v->{order} eq 'rand') { > $v->{gen} = get_random_val_generator($v->{vals}); > } else { > die "Invalid value order in value_map\n"; > } > } > > my ($get_next_random_msg_stub) = > get_random_val_generator($message_templates); > > while (1) { > print get_next_random_msg($get_next_random_msg_stub, \%value_map), > "\n\n"; > } > > 1; > > ;-------------------------------------------------- > > > thanks in advance. > -- > Posted via http://www.ruby-forum.com/. > -- nathan nathan_at_nathanpowell_dot_org At this point, anyone proposing to run Windows on servers should be prepared to explain what they know about servers that Google, Yahoo, and Amazon don't. ~ Paul Graham ------------------------------------