I am a newbie to Ruby. However I have used python a little bit.
I like to convert my python scripts to ruby. One of them is a command line
script taking input and switches.
Is there something equivalent in ruby?
"""
Generate something
Usage: python xyz.py [options] [source] [destination]
Options:
-h, --help show help
Examples: xyz.py input.csv output.html
"""
def main(argv):
"""Main Entry Point """
try:
opts, args = getopt.getopt(argv, "h", ["help"])
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts: if opt in ("-h", "--help"):
usage() sys.exit()
try:
source = sys.argv[1]
global destination
destination = sys.argv[2]
except:
usage()
sys.exit(2)
seleniumHtmlGenerator(source)
if __name__ == "__main__":
main(sys.argv[1:])
> """
> Generate something
> Usage: python xyz.py [options] [source] [destination]
> Options:
> -h, --help show help
> Examples: xyz.py input.csv output.html
> """
>
> def main(argv):
> """Main Entry Point """
> try:
> opts, args = getopt.getopt(argv, "h", ["help"])
> except getopt.GetoptError:
> usage()
> sys.exit(2)
>
> for opt, arg in opts: if opt in ("-h", "--help"):
> usage() sys.exit()
>
> try:
> source = sys.argv[1]
> global destination
you script is incomplete, there is no "destination"
at module namespace
> destination = sys.argv[2]
> except:
> usage()
> sys.exit(2)
>
> seleniumHtmlGenerator(source)
and no "seleniumHtmlGenerator" function
"usage" Function is missed to
on closer look "import getopt,sys" are missed too
>
>
> if __name__ == "__main__":
> main(sys.argv[1:])
well, ARGV (alias to $*) are you sys.argv[1:]
sys.argv[0] is in $0
I don't know whether Ruby has getopt class or file
(what is it called properly?) which you can "require"
clearly seleniumHtmlGenerator does the main Job
nobody can know its internals and other things can be
translated straight forward
try:
except:
begin
rescue
end
hth, Daniel
http://www.linuxdevcenter.com/pub/a/linux/2003/09/18/ruby_csv.html?page=1
The "getoptlong" library has apparently been superceded by "optparse",
so Google that too.
> Hello,
>
> I am a newbie to Ruby. However I have used python a little bit.
> I like to convert my python scripts to ruby. One of them is a
> command line
> script taking input and switches.
> Is there something equivalent in ruby?
Yes, but Ruby also has something much better - CommandLine -
it's the rails equivalent for commandline apps. :)
> Generate something
> Usage: python xyz.py [options] [source] [destination]
> Options:
> -h, --help show help
> Examples: xyz.py input.csv output.html
#!/usr/bin/env ruby
require 'rubygems'
require 'commandline'
class App < CommandLine::Application
def initialize
synopsis "[options] [source] [destination]"
option :help
expected_args :source :destination
end
def main
# your code here
end
end
> """
>
> def main(argv):
> """Main Entry Point """
> try:
> opts, args = getopt.getopt(argv, "h", ["help"])
> except getopt.GetoptError:
> usage()
> sys.exit(2)
>
> for opt, arg in opts: if opt in ("-h", "--help"):
> usage() sys.exit()
>
> try:
> source = sys.argv[1]
> global destination
> destination = sys.argv[2]
> except:
> usage()
> sys.exit(2)
>
> seleniumHtmlGenerator(source)
>
>
> if __name__ == "__main__":
> main(sys.argv[1:])
Jim Freeze