【发布时间】:2013-07-27 23:48:42
【问题描述】:
我想向 ActiveMerchant gem 添加一些功能以测试 PayPal Express 网关,已为此尝试了拉取请求,但在 Github 上被拒绝了。
我想向 ActiveMerchant Billing 模块添加一个类:
module ActiveMerchant #:nodoc:
module Billing #:nodoc:
class PaypalBogusGateway < BogusGateway
# some codes here
end
end
end
我通过下载 gem 并将其拉入本地项目并将我的新文件放入其中成功地完成了此操作:
#Gemfile
gem 'activemerchant', '1.34.1', path: "vendor/gems/activemerchant-1.34.1", require: 'active_merchant'
当然,这不是最好的主意,因为如果需要,我必须手动提取任何更新。
有什么方法可以使用从 RubyGems 源中提取的 gem 将类添加到他们的模块中?
谢谢
编辑
将它放在 lib 文件夹中应该可以,但我的代码需要从 gem 中继承一些类,例如:
require File.dirname(__FILE__) + '/paypal/paypal_common_api'
require File.dirname(__FILE__) + '/paypal/paypal_express_response'
require File.dirname(__FILE__) + '/paypal_express_common'
将 File.dirname(FILE) 替换为 gem 的安装位置...这在服务器环境中会有所不同,对吧?
【问题讨论】:
-
您应该能够将新类添加到 rails 应用程序的 lib 目录(或其他位置,如果不是 rails),它应该“正常工作”
-
查看编辑,您有什么想法吗?我想我需要知道在 bundle 命令之后 gems 是如何在不同系统上定位的。
-
是的,这是最后的 Rails 3
标签: ruby-on-rails ruby rubygems activemerchant