def foobar(command,customerrormessage)
if not system(command)
puts customerrormessage
exit
end
end
and then many calls of it like:
foobar('rm something','Error I could'nt remove something')
foobar('apt-get install thishere','Error while installing the packet')
foobar('module-assistant a-i mymodule','Error while installing the module')
[..]
In pascal I would simply create a multi-dimensional array[x,y] and fill it with the commands and the corresponding error-messages but how to do this in ruby? There are no arrays like the mentioned on or? Or do you have a even better solution for this?
def process_commands(command_list)
command_list.each do |command|
if not system(command[:command])
puts command[:error_msg]
end
end
end
Don't know if you want to break the execution of the other commands if
something fails, in which case you can return from the method inside
the if, but this can get you started as an idea.
def foobar(command,customerrormessage)
if not system(command)
puts customerrormessage
exit
end
end
and then many calls of it like:
foobar('rm something','Error I could'nt remove something')
foobar('apt-get install thishere','Error while installing the packet')
foobar('module-assistant a-i mymodule','Error while installing the module')
In pascal I would simply create a multi-dimensional array[x,y] and fill it with the
commands and the corresponding error-messages but how to do this in ruby?
There are no arrays like the mentioned on or? Or do you have a even better
solution for this?
You can create multidimensional array just the same:
[
['rm something','Error I could'nt remove something'],
['apt-get install thishere','Error while installing the packet'],
['module-assistant a-i mymodule','Error while installing the module'],
].each do |cmd, error|
unless system cmd
$stderr.puts error
exit 1
end
end
def foobar(command,customerrormessage)
if not system(command)
puts customerrormessage
exit
end
end
and then many calls of it like:
foobar('rm something','Error I could'nt remove something')
foobar('apt-get install thishere','Error while installing the packet')
foobar('module-assistant a-i mymodule','Error while installing the module')
[..]
In pascal I would simply create a multi-dimensional array[x,y] and fill it with the commands and the corresponding error-messages but how to do this in ruby? There are no arrays like the mentioned on or? Or do you have a even better solution for this?
It's easy to read this from a YAML configuration file or from a DB, so
the actual list of commands is not hardcoded. It all depends on the
complexity of your application. Of course you can also use other
structures like a multidimensional array, or a unidimensional array
with [cmd1, msg1, cmd2, msg2...], but I like the hash cause it makes
clear what each element is. I'd rather not have arrays where you need
to know that the first element is something and the second is
something else, but for simple cases it might be enough. YMMV, though.