dishmael
3/24/2006 5:32:00 PM
Not to shanghai this convo (but its sort of on the same subject), is there a
way to prompt for a response in-line with your question rather than printing
the question and then having it go to the next line?
-Dave
-----Original Message-----
From: James Edward Gray II [mailto:james@grayproductions.net]
Sent: Friday, March 24, 2006 12:13 PM
To: ruby-talk ML
Subject: Re: Console IO
On Mar 24, 2006, at 10:43 AM, semmons99@gmail.com wrote:
> Is there a simpler way to do the following?
HighLine makes this kind of thing pretty simple:
Neo:~/Desktop$ ls
person.rb
Neo:~/Desktop$ ruby -rubygems person.rb
Name? (last, first) Gray, James
--- !ruby/struct:Person
first_name: James
last_name: Gray
Neo:~/Desktop$ cat person.rb
#!/usr/local/bin/ruby -w
require "highline/import"
require "yaml"
class Person < Struct.new(:first_name, :last_name)
def self.parse( input )
if input =~ /^\s*(\w+),\s*(\w+)\s*$/
self.new($2, $1)
else
raise ArgumentError, "Invalid name format."
end
end
end
who = ask("Name? (last, first) ", Person)
y who
__END__
Hope that helps.
James Edward Gray II