2011-07-18 26 views
4

嘿傢伙我想擴大在西納特拉String類的方法,在再培訓局的文件,這樣做如果我想在Sinatra的String類中添加一個方法,我應該在哪裏放置它?

<%= 'some string'.my_method %> 

,但我不知道如何把定義代碼:

String.class_eval do 
    def my_mythod 
    some_code 
    end 
end 

通過我使用的是西納特拉模塊化編程風格

+1

在Ruby中,您可以重新打開類;它更簡單:'class String; def my_method; ...;結束; end' – Phrogz

回答

0

我一直堅持這樣的代碼在自己的文件工作,lib/ext目錄下夾。然後,你可以從你的Sinatra應用程序需要這個文件。

下的lib/ext /中string.rb:

class String 
    my_mythod 
    some_code 
    end 
end 

然後添加以下到您的西納特拉的應用程序,假設你的基礎類文件是lib文件夾內:

require File.dirname(__FILE__) + '/ext/string' 

我會有興趣瞭解一下人們對此的看法。

0

的方式似乎是工作的地方,我把它(這是一個很好的觀察?) 是對腳本進行評估的任何地方開始

砸在應用類本身與所有其他字段和方法

沿應在輔助類太

相關問題