Why does my program exit?!

Hi I was hoping that anyone could help me with this piece of code from
my program?! I have a menu with 2 submenus that you can reach from the
main menu. When I start the program I want the main menu to be presented
with a number of choices. My program is based on user input so naturally
when you enter the program you should be able to do the choices that are
presented in the menus. It worked before but now when I started adding
features for it(its for an assignment for a course) now it just presents
the menu and then exits the program. Can anyone help me with this. I
will post the code below and hopefully someone with more programming
skills than me can see the problem. Thanks!

    module Menus
  def self.getValidNumber
    input = gets.chomp

    while input > @options.size || input < 1 do
      puts "cant do that try again."
      input = gets.chomp
    end

    number = input.to_f
    if (number <= 0)
      puts "cant state a negative value."
      getValidPositiveNumber
    end
    return number
  end

  def self.get_valid_input(options)

    input = gets.chomp

    while (!options.include?(input) && !options.include?(input.to_i))
      puts "No good, you have to choose a value between " +
valid_options.inspect
      input = gets.chomp
    end
    return input

  end

  class Menu

    attr_reader :options

    # Pass in array of options
    def initialize(options)
      @options = options
    end

    def main_menu
      puts "---------------------------"
      puts " Main Menu"
      @options.each_with_index do |item, i|
        puts " #{i+1}. #{item}"
      end
      puts
      puts "What do you want to do?"
    end

    def self.make_choice(choice)
      # chooses something from the menu based on the choice
      case choice
      when 1
        check_in
      when 2
        check_out
      when 3
        puts $in_menu = lists_menu
      when 4
        puts $in_menu = economy_menu
      when 5
        puts "You are now leaving the camping, welcome back!"
        exit
      end
    end

  def lists_menu
    puts "---------------------------"
    puts " List Menu"
    @options.each_with_index do |item, i|
      puts " #{i+1}. #{item}"
    end
    puts
    puts "What do you want to do?"
  end

  def self.make_choice(choice)
    case choice
    when 1
      puts $camping
    when 2
      puts $camping.history.all_guests
    when 0
      $in_menu = main.menu
    end
  end

  def economy_menu
    puts "---------------------------"
    puts " List Menu"
    @options.each_with_index do |item, i|
      puts " #{i+1}. #{item}"
    end
    puts
    puts "What do you want to do?"
  end

  def self.make_choice(choice)
    case choice
    when 1
      $camping.economy.printCosts
    when 2
      $camping.economy.enterNewPrices
    when 3
      puts $camping.history
      puts $camping.economy
    when 0
      $in_menu = MAIN_MENU
    end
end

m = Menus::Menu.new ["Checkin", "Checkout","Lists","Economy","Exit"]
m.main_menu
if Menus == 3 then m = Menus::Menu.new ["List current guests","List all
guests","back to main menu"]
m.lists_menu
elsif Menus == 4 then m = Menus::Menu.new ["Price list","Edit price
list","back to main menu"]
m.economy_menu
end
end
end

···

--
Posted via http://www.ruby-forum.com/.

Hi --

···

On Sun, 12 Sep 2010, Tim Romberg wrote:

Hi I was hoping that anyone could help me with this piece of code from
my program?! I have a menu with 2 submenus that you can reach from the
main menu. When I start the program I want the main menu to be presented
with a number of choices. My program is based on user input so naturally
when you enter the program you should be able to do the choices that are
presented in the menus. It worked before but now when I started adding
features for it(its for an assignment for a course) now it just presents
the menu and then exits the program. Can anyone help me with this. I
will post the code below and hopefully someone with more programming
skills than me can see the problem. Thanks!

Let me turn the question around: why would you expect it not to exit? At
what point are you telling it to wait for user input?

David

--
David A. Black, Senior Developer, Cyrus Innovation Inc.

   The Ruby training with Black/Brown/McAnally
   Compleat Philadelphia, PA, October 1-2, 2010
   Rubyist http://www.compleatrubyist.com

David A. Black wrote:

Hi --

Hi I was hoping that anyone could help me with this piece of code from
my program?! I have a menu with 2 submenus that you can reach from the
main menu. When I start the program I want the main menu to be presented
with a number of choices. My program is based on user input so naturally
when you enter the program you should be able to do the choices that are
presented in the menus. It worked before but now when I started adding
features for it(its for an assignment for a course) now it just presents
the menu and then exits the program. Can anyone help me with this. I
will post the code below and hopefully someone with more programming
skills than me can see the problem. Thanks!

Let me turn the question around: why would you expect it not to exit? At
what point are you telling it to wait for user input?

David

--
David A. Black, Senior Developer, Cyrus Innovation Inc.

   The Ruby training with Black/Brown/McAnally
   Compleat Philadelphia, PA, October 1-2, 2010
   Rubyist http://www.compleatrubyist.com

Yes I know. I just were not sure how to incorporate the user input in a
good way. Do you have any tips?!
Regards.

···

On Sun, 12 Sep 2010, Tim Romberg wrote:

--
Posted via http://www.ruby-forum.com/\.

Hi --

···

On Sun, 12 Sep 2010, Tim Romberg wrote:

David A. Black wrote:

Hi --

On Sun, 12 Sep 2010, Tim Romberg wrote:

Hi I was hoping that anyone could help me with this piece of code from
my program?! I have a menu with 2 submenus that you can reach from the
main menu. When I start the program I want the main menu to be presented
with a number of choices. My program is based on user input so naturally
when you enter the program you should be able to do the choices that are
presented in the menus. It worked before but now when I started adding
features for it(its for an assignment for a course) now it just presents
the menu and then exits the program. Can anyone help me with this. I
will post the code below and hopefully someone with more programming
skills than me can see the problem. Thanks!

Let me turn the question around: why would you expect it not to exit? At
what point are you telling it to wait for user input?

Yes I know. I just were not sure how to incorporate the user input in a
good way. Do you have any tips?!

Several, but I'm a bit skittish about directly answering questions that
are for homework assignments without knowing the details a little more
(whether it's for a grade, etc.). Chalk it up to my many years as a
professor :slight_smile:

David

--
David A. Black, Senior Developer, Cyrus Innovation Inc.

   The Ruby training with Black/Brown/McAnally
   Compleat Philadelphia, PA, October 1-2, 2010
   Rubyist http://www.compleatrubyist.com

David A. Black wrote:

Hi --

presented in the menus. It worked before but now when I started adding
features for it(its for an assignment for a course) now it just presents
the menu and then exits the program. Can anyone help me with this. I
will post the code below and hopefully someone with more programming
skills than me can see the problem. Thanks!

Let me turn the question around: why would you expect it not to exit? At
what point are you telling it to wait for user input?

Yes I know. I just were not sure how to incorporate the user input in a
good way. Do you have any tips?!

Several, but I'm a bit skittish about directly answering questions that
are for homework assignments without knowing the details a little more
(whether it's for a grade, etc.). Chalk it up to my many years as a
professor :slight_smile:

David

--
David A. Black, Senior Developer, Cyrus Innovation Inc.

   The Ruby training with Black/Brown/McAnally
   Compleat Philadelphia, PA, October 1-2, 2010
   Rubyist http://www.compleatrubyist.com

ok, well before I was reading the input like this def self.menu
      puts "---------------------------"
      puts " Menu"
      puts " 1. Checkin"
      puts " 2. Checkout"
      puts " 3. List of current guests"
      puts " 4. List of all guests"
      puts " 5. Exit"
      puts ""
      puts " What do you want to do?"
      puts "---------------------------"
      print ": "
      choice = get_input
      make_choice(choice)
    end
But with the current upgrade Im just receiving an undefined local
variable or method. So I was thinking instead something like this:
@options = gets.chomp. Is that stupid. I am terribly new at Ruby.

···

On Sun, 12 Sep 2010, Tim Romberg wrote:

--
Posted via http://www.ruby-forum.com/\.

On Sun, Sep 12, 2010 at 8:42 AM, Tim Romberg

But with the current upgrade Im just receiving an undefined local

variable or method. So I was thinking instead something like this:

Please send us the _exact_ error message AND the line it is whinging about.
That always helps.

The other major help is ALWAYS ALWAYS run ruby with the -w option and clean
up all the warnings. (Hey, that is true for any language!)

···

--
John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@taitradio.com
New Zealand

=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.