ruby简单的命令行脚本(餐厅发现者)

时间:2012-07-27 07:24:49

标签: ruby

我刚刚完成了Ruby必备培训课程 我想知道如何为Restaurant Finder编写一个非常简单的脚本 仅在可能的情况下使用命令行?

所需功能: 用户要求输入1-餐厅名称2-餐厅类型3-餐厅 平均价格

用户获取餐馆的回复列表(不会保存任何内容 文件)仅在会话期间在内存中。

我怎样才能让用户显示添加的餐馆列表?

我想让它变得尽可能简单,这样我才能理解语言 我以Lynda.com教练的方式错过了它。 一旦这位导师到达了实际的脚本建筑,他就开始了 修改它并编写许多让我困惑的快速代码 几乎所有的东西都是PHP而不是我正在观看的Ruby Video培训。

我知道如何创建类和方法以及使用数组哈希等... 想要基本的简单开始尝试自己如何编写简单的程序 不使用文件存储任何东西

之后我将进入下一个级别。

感谢。

1 个答案:

答案 0 :(得分:2)

我也是Ruby的新手,但这是我的简单实现:

 class Restaurant
  attr_accessor :name, :type, :avg_price
   def initialize(name, type, avg_price)
     @name = name
     @type = type
     @avg_price = Float(avg_price)
   end   
 end

 class RestaurantsList < Array
  def read_from_keyboard
    print "Restaurant name: "
    name = gets.chomp
    print "Restaurant type: "
    type = gets.chomp
    print "Restaurant average price: "
    avg_price = gets.chomp
    self << Restaurant.new( name, type, avg_price )
  end
  def print_list
    puts sprintf("%17s %15s %s", "Name |", "Type |", "Avg price |")
    self.each { |e|  puts sprintf("%15s |%14s |%10d |", e.name, e.type, e.avg_price)}    
  end
 end

restaurants_list = RestaurantsList.new
loop do
  print "1 - add restaurant, 2 - print list, 3 - exit : "
  answer = Integer(gets.chomp)
  case answer
  when 1
    restaurants_list.read_from_keyboard
  when 2
    restaurants_list.print_list
  when 3
    break    
  end    
end