流是未定义的 - 类继承问题? (红宝石鞋)

时间:2015-07-22 14:05:08

标签: ruby shoes-4

我正在关注位于官方Shoes github repo上的samples文件夹中的here示例。我看到程序员定义了一个继承自Book的类Shoes。我有一个相对较大的程序与我移植3.x的鞋子,我想把我的所有不同的类分成更小的文件,以使我更容易。我有一个像这样的文件

#this class essentially sets up user interface
class Interface < Shoes
  def initialize
    flow do
      @shed = button "New"
      @editbutton = button "Edit"
      @employees = button "Employees"
      @sdays = button "Special Days"
      @makenote = button "Make Note"
      @backbutton = button "Go Back"
    end
  end
end

我的主文件看起来像是

$LOAD_PATH << "."
require 'loader' #all of these are other classes i have defined
require 'interface' #contains the interface class
require 'schutil'
Shoes.app title: "Baesler's Scheduling Application", width: 1024, height: 768, resizable: true do
  Interface.new
end

首先,在我提供的示例中,程序员从不必使用带有Shoes.app的块。我不知道怎么回事,但他的班级在跑步时已经用鞋子初始化了。这是我的初衷,但是当我尝试(上面的代码而没有调用Interface.init)时,没有任何东西显示在Shoes中,但它确实加载了。但是,按原样使用上面的代码,我收到以下错误: NoMethodError: undefined method 'flow' for nil:NilClass

如果它有帮助,我正在使用Shoes 4 preview 3 gem并运行Windows 8.1 64位。我究竟做错了什么?这是鞋代码库中的错误,还是我做错了?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在覆盖初始化方法,该方法会破坏鞋子的整个设置(例如,它需要获取一个应用程序实例来调用flow方法)。

您还在关注url示例,而不使用任何实际的url来电。

widget可能更适合您的使用案例。

就个人而言,我宁愿在应用程序中定义方法,然后调用它们:)