创建一个简单的RubyGem,允许用户调用定义的方法?

创建一个简单的RubyGem,允许用户调用定义的方法?,ruby,rubygems,Ruby,Rubygems,我一直在寻找一些关于创建ruby gems的教程,但似乎都太复杂了。基本上,我只想制作一个gem(普通示例警报),允许用户在安装gem后在其代码中放置一个方法add_one(x) 很多教程解释了如何使用Classname.method()调用gem的方法,但这并不是我想要的。RyanB有一个很好的例子,但我还是不能让它工作——主要是因为uniquify.rb底部的3行代码读取 class ActiveRecord::Base include Uniquify end 在我的例子中,我的主要

我一直在寻找一些关于创建ruby gems的教程,但似乎都太复杂了。基本上,我只想制作一个gem(普通示例警报),允许用户在安装gem后在其代码中放置一个方法
add_one(x)

很多教程解释了如何使用
Classname.method()
调用gem的方法,但这并不是我想要的。RyanB有一个很好的例子,但我还是不能让它工作——主要是因为uniquify.rb底部的3行代码读取

class ActiveRecord::Base
  include Uniquify
end

在我的例子中,我的主要模块叫做AddOne,那么我该如何做呢?再一次,为这个微不足道的例子感到抱歉,我只是想开始,这样我的gems将允许用户调用普通的ol'方法,而无需指定模块或类。在Ryan的示例中,他能够在代码中简单调用
uniquify()

在给出的示例中,他可以调用
uniquify
作为方法,因为他在包含
ActiveRecord::Base
的类中调用它。(他在
类产品
..
end
块中调用
uniquify

据我所知,你想要的东西很容易实现,但考虑到“最佳实践”并不是一个好主意。你可以在你的宝石中定义你想要的任何东西。例如,我可以将名为
say_hello.rb
的文件打包到名为
saltations
的gem中

打招呼。rb

def say_hello
  puts "Hello everybody"
end
通过要求打包的gem
saltations
我可以访问其中定义的任何内容。然而,这可能会导致意想不到的后果。做你需要做的,但要明白这可能不是最好的主意。因此,您将东西构建到类或模块中以包含它们,并防止与其他代码冲突。祝你好运