Tk Ruby

require 'tk'
top=TkRoot.new{title "Shopping Details"}
fname_label=TkLabel.new(top){
    text "First Name"
    place('relx'=>0.0,'rely'=>0.1)
}
fname_entry=TkEntry.new(top){
    place('relx'=>0.1,'rely'=>0.1)
}
lname_label=TkLabel.new(top){
    text "Last Name"
    place('relx'=>0.0,'rely'=>0.2)
}
lname_entry=TkEntry.new(top){
    place('relx'=>0.1,'rely'=>0.2)
}
age_label=TkLabel.new(top){
    text "Age"
    place('relx'=>0.0,'rely'=>0.3)
}
age_entry=TkEntry.new(top){
    place('relx'=>0.1,'rely'=>0.3)
}
gender_label=TkLabel.new(top){
    text "Gender : "
    place('relx'=>0.0,'rely'=>0.4)
}
radioVar=TkVariable.new
    r1 = TkRadioButton.new(top){
    text "Male"
    variable radioVar
    
    value 1
    place('relx'=>0.1,'rely'=>0.4)
}
r2 = TkRadioButton.new(top){
    text "Female"
    variable radioVar
    value 2
    place('relx'=>0.2,'rely'=>0.4)
}
list = TkListbox.new(top){
place('relx'=>0.8,'rely'=>0.1)
}
list.insert(1," Python")
list.insert(2," Perl")
list.insert(3," C")
list.insert(4," PHP")
list.insert(5," JSP")
list.insert(6," Ruby")
submit=TkButton.new(top){
text "SUBMIT"
command proc {
val=list.curselection()
sel = list.get(val)
Tk.messageBox('message'=>" The book name chosen is #{sel} ")
}
place('relx'=>0.3,'rely'=>0.8)
}
Tk.mainloop