首页 > 解决方案 > Ruby 中的 Rake:main:Object 的未定义方法“命名空间”(NoMethodError)

问题描述

我目前正在尝试在 Ruby 项目(无 Rails)中运行 Rake 任务。我想要完成的是从我的 Ruby 项目中的文件运行一个方法。但是我收到以下错误:

undefined method `namespace' for main:Object (NoMethodError)

我创建了一个task包含文件的test.rb文件夹。在我拥有它之前,test.rake但我认为这是不正确的。我还创建了一个Rakefile指向task/test.rb 在此处输入图像描述

对于可重复性,我正在使用,namespace:但老实说我不确定我是否需要它。

#Rakefile
task :default => [:test]

task :test do
  ruby 'task/test.rb'
end

这里是task.test.rb

require './src/lambda_function.rb'

class KMS
    def initialize
    end

    def decrypt(key)
       return "some password"
    end
end

class SNS
    def initialize
    end
end

TEST_FORM_ID=123

namespace :test do
  namespace :lambda do
    desc 'Run the Lambda process function'
    task :process  do
      LambdaFunctions::LambdaHandler.process(box_api: BoxApi.new,
                                             form: TEST_FORM_ID,
                                             sns: SNS.new,
                                             kms: KMS.new)
    end
  end
end

我做错了什么?

标签: rubyrake

解决方案


推荐阅读