我正在关注位于官方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位。我究竟做错了什么?这是鞋代码库中的错误,还是我做错了?任何帮助将不胜感激。
答案 0 :(得分:0)
您正在覆盖初始化方法,该方法会破坏鞋子的整个设置(例如,它需要获取一个应用程序实例来调用flow方法)。
您还在关注url
示例,而不使用任何实际的url
来电。
widget可能更适合您的使用案例。
就个人而言,我宁愿在应用程序中定义方法,然后调用它们:)