|
From: Greg Willits on 2 Jul 2008 20:54 I'm having a real problem understanding OptionParser -- the docs in pickaxe are rather cryptic, Ruby Way doesn't even talk about it, and all the Q&A I can find on the web doesn't clear it up for me. I've gotten this far: # test.rb --------- require 'optparse' commands = OptionParser.new commands.on("-h", "--help") # more or less, I get the .on stuff commands.on("-e=RUN_ENV") commands.parse(ARGV) puts commands # --------- That will dump a display of the commands, but for the life of me, I can't figure out how to determine which options were actually submitted. And if the -e param was supplied, what's its value is. I have seen: commands.parse(ARGV) commands.parse!(ARGV) options = commands.parse(ARGV) So, confused by that to start with, then really confused by where the parsed commands are, and what format they're in. -- gw -- Posted via http://www.ruby-forum.com/.
From: dusty on 2 Jul 2008 23:00 Here is a quick example program. Hope this gets you started. #!/usr/bin/env ruby require 'optparse' options = {} opts = OptionParser.new opts.on("-W", "--weekday", "Print out the weekday") do |v| options[:weekday] = true end opts.on("-H", "--hour TYPE", "Print out the hour in 24 or 12 hour clock") do |v| options[:hour] = v end opts.parse! unless options[:weekday] || options[:hour] puts opts exit end if options[:weekday] puts Time.now.strftime("%A") exit end case options[:hour] when "12" puts Time.now.strftime("%I") when "24" puts Time.now.strftime("%H") else puts "You must send 12 or 24 as an argument to --hour" end
From: Greg Willits on 2 Jul 2008 23:48 dusty wrote: > Here is a quick example program. Hope this gets you started. Yes! That turned out to be the Rosetta Stone to help me interpret and fill the gaps in the other examples I've found. Many thanks. -- gw -- Posted via http://www.ruby-forum.com/.
From: ara.t.howard on 3 Jul 2008 00:01 On Jul 2, 2008, at 6:54 PM, Greg Willits wrote: > I'm having a real problem understanding OptionParser -- the docs in > pickaxe are rather cryptic, Ruby Way doesn't even talk about it, and > all > the Q&A I can find on the web doesn't clear it up for me. > > I've gotten this far: > > # test.rb --------- > require 'optparse' > > commands = OptionParser.new > commands.on("-h", "--help") # more or less, I get the .on stuff > commands.on("-e=RUN_ENV") > > commands.parse(ARGV) > > puts commands > > # --------- > > That will dump a display of the commands, but for the life of me, I > can't figure out how to determine which options were actually > submitted. > And if the -e param was supplied, what's its value is. > > I have seen: > > commands.parse(ARGV) > commands.parse!(ARGV) > options = commands.parse(ARGV) > > So, confused by that to start with, then really confused by where the > parsed commands are, and what format they're in. > > -- gw > -- > Posted via http://www.ruby-forum.com/. > cfp:~ > cat a.rb require 'yaml' require 'rubygems' ### gem install rubygems require 'main' Main { option('environment', 'e'){ synopsis 'specify run time environment' default 'development' argument :required validate{|arg| %w[ production development test ].include? arg} } def run environment = params['environment'] y :given => environment.given?, :value => environment.value end } cfp:~ > ruby a.rb --- :value: development :given: cfp:~ > ruby a.rb --environment=foobar invalid: option(--environment)="foobar" cfp:~ > ruby a.rb --environment=test --- :value: test :given: true cfp:~ > ruby a.rb --help NAME a.rb SYNOPSIS a.rb [options]+ DESCRIPTION main.rb takes the pain of argument parsing away PARAMETERS specify run time environment --help, -h the packages ships with a tons of examples. a @ http://codeforpeople.com/ -- we can deny everything, except that we have the possibility of being better. simply reflect on that. h.h. the 14th dalai lama
From: Jim Morris on 3 Jul 2008 13:22 I love Main, but it does not seem to work under JRuby, any ideas? This is the error I always get... F, [2008-07-03T10:24:48.827600 #9761] FATAL -- : could not reopen: null (IOError) /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:318:in `setup_io_restoration' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:318:in `call' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:318:in `finalize' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:29:in `run' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:12:in `catch' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/base.rb:12:in `run' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/factories.rb:11:in `run' /opt/jruby-1.1.2/lib/ruby/gems/1.8/gems/main-2.8.0/lib/main/factories.rb:16:in `Main' ara.t.howard wrote: > > cfp:~ > cat a.rb > require 'yaml' > require 'rubygems' ### gem install rubygems > require 'main' > > Main { > option('environment', 'e'){ > synopsis 'specify run time environment' > default 'development' > argument :required > validate{|arg| %w[ production development test ].include? arg} > } > > def run > environment = params['environment'] > > y :given => environment.given?, > :value => environment.value > end > } > > > > cfp:~ > ruby a.rb > --- > :value: development > :given: > > > cfp:~ > ruby a.rb --environment=foobar > invalid: option(--environment)="foobar" > > cfp:~ > ruby a.rb --environment=test > --- > :value: test > :given: true > > > > cfp:~ > ruby a.rb --help > NAME > a.rb > > SYNOPSIS > a.rb [options]+ > > DESCRIPTION > main.rb takes the pain of argument parsing away > > PARAMETERS > specify run time environment > --help, -h > > > > the packages ships with a tons of examples. > > a @ http://codeforpeople.com/ > -- > we can deny everything, except that we have the possibility of being > better. simply reflect on that. > h.h. the 14th dalai lama > > > > > -- Jim Morris, http://blog.wolfman.com
|
Next
|
Last
Pages: 1 2 Prev: need help for regular expression Next: Install/Enable openssl for ruby 1.8.6? |