嘿傢伙我想擴大在西納特拉String類的方法,在再培訓局的文件,這樣做如果我想在Sinatra的String類中添加一個方法,我應該在哪裏放置它?
<%= 'some string'.my_method %>
,但我不知道如何把定義代碼:
String.class_eval do
def my_mythod
some_code
end
end
通過我使用的是西納特拉模塊化編程風格
嘿傢伙我想擴大在西納特拉String類的方法,在再培訓局的文件,這樣做如果我想在Sinatra的String類中添加一個方法,我應該在哪裏放置它?
<%= 'some string'.my_method %>
,但我不知道如何把定義代碼:
String.class_eval do
def my_mythod
some_code
end
end
通過我使用的是西納特拉模塊化編程風格
我一直堅持這樣的代碼在自己的文件工作,lib/ext目錄下夾。然後,你可以從你的Sinatra應用程序需要這個文件。
下的lib/ext /中string.rb:
class String
my_mythod
some_code
end
end
然後添加以下到您的西納特拉的應用程序,假設你的基礎類文件是lib文件夾內:
require File.dirname(__FILE__) + '/ext/string'
我會有興趣瞭解一下人們對此的看法。
的方式似乎是工作的地方,我把它(這是一個很好的觀察?) 是對腳本進行評估的任何地方開始
砸在應用類本身與所有其他字段和方法
沿應在輔助類太
在Ruby中,您可以重新打開類;它更簡單:'class String; def my_method; ...;結束; end' – Phrogz