gpt4 book ai didi

ruby-on-rails - 动态命名空间 rake 和带有 rails 的解析器类?

转载 作者:行者123 更新时间:2023-12-04 06:34:15 26 4
gpt4 key购买 nike

我有一组在逻辑上有很大差异的解析器,但具有完全相同的方法和输出。

我设计了一些大师 Rake我很好奇我的想法是否会导致一些意想不到或奇怪的行为。

基本上是我的parse.rake看起来像:

require 'app/models/provider'
require 'config/environment.rb'

Provider.all.each do |provider|

require "lib/tasks/#{provider.name}.rb"
Kernel.const_get(provider.name).provider = provider

namespace provider.name do
task :provider_task do #Parse method
Kernel.const_get(provider.name).provider_task()
end
end

end

由于类是 ruby​​ 中的常量, Kernel.const_get是我用来从 varname 访问类方法的方法。我的类(class)看起来像( ABC.rb):
Class ABC
cattr_accessor :provider

def self.provider_task()
#Parse and add stuff to environment
end
end

通过此设置,我可以轻松调用 rake ABC:provider_task运行特定的解析器。还有 cattr_accessor让我可以轻松引用实际的提供者模型。想法?

最佳答案

我已经使用它几个星期了,没有任何问题。在与一些同事审查后,我发现一些以前使用类似方法的人没有问题。唯一的潜在危险是与您的 ruby​​ 类的命名冲突。

关于ruby-on-rails - 动态命名空间 rake 和带有 rails 的解析器类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6183367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com