如果我想在Sinatra中为String类添加一个方法,我应该把它放在哪里?

时间:2011-07-18 14:33:10

标签: ruby sinatra

嘿伙计我想将一个方法扩展到Sinatra中的String类,在erb文件中,做类似的事情

<%= 'some string'.my_method %> 

但我不知道如何输入定义代码:

String.class_eval do
  def my_mythod
    some_code
  end
end

顺便说一句,我正在使用sinatra模块化编码风格

2 个答案:

答案 0 :(得分:0)

似乎无论我把它放在哪里都能工作(这是一个很好的观察吗?) 在脚本开始时评估的任何地方

将其与所有其他字段和方法一起放在app类中

也应该在助手类中工作

答案 1 :(得分:0)

我倾向于在lib / ext文件夹下的自己的文件中粘贴这样的代码。然后,您可以从Sinatra应用程序中获取此文件。

在lib / ext / string.rb下:

class String
  my_mythod
    some_code
  end
end

然后将以下内容添加到Sinatra应用程序中,假设您的基类文件位于lib文件夹中:

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

我有兴趣看看人们对此的看法。