我有一个带辅助模块的宝石。 例如
宝石模块
module Hotel
module MenuItem
def menu(session)
x = DEFAULT_FOOD_MENU[session]
end
def print_menu(menu)
#printing menu
end
end
自定义类
module SizzSuzzHotel
module MenuItem
include Hotel::MenuItem
def menu(session)
# I want to use the default menu item and also specific menu related to this hotel! .
end
end
module SizzSuzzHotel
class order
include MenuItem
def order(session)
menu_item = menu(session)
print(menu_item)
end
end
end
这里我要覆盖菜单,我想使用现有的print_menu! 我怎样才能做到这一点?使用gem模块方法还可以添加更多东西吗?
答案 0 :(得分:1)
如果您包含MenuItem
模块,则两种方法都可用,因此您可以轻松地重新定义其中一种方法。
include MenuItem
def menu(session)
... here you write you custom menu method behaviour
end
def order(session)
menu_item = menu(session) # => above menu method will be called
print(menu_item) # => print method from MenuItem module will be called
end