Я работаю над чистым Ruby-приложением, в котором я пытаюсь создать задачу Rake. У меня есть метод в файле src/lambda_function.rb
, который выглядит следующим образом:
def self.process(event:, context: nil, box_api: BoxApi.new, form: nil, sns: SNS.new, kms: KMS.new)
begin
# verify request came from fromstack from headers
verify_webhook_req(event)
# parse data
submission = JSON.parse(event["body"])
form_id = submission.fetch("FormID").strip()
submission_id = submission.fetch("UniqueID").strip()
Как видно из приведенного фрагмента, функция принимает следующие параметры:
event:, context:, box_api:, form:, sns:, kms:
Итак, в задании на грабли я передаю следующее:
require './src/lambda_function.rb'
require 'rake'
require 'pry'
include Rake::DSL
class KMS
def initialize
end
def decrypt(key)
return 'some password'
end
end
class SNS
def initialize
end
end
namespace :test do
namespace :lambda do
desc 'Run the Lambda process function'
task :process do
TEST_FORM_ID=3353951
LambdaFunctions::LambdaHandler.process(box_api: BoxApi.new,
form: TEST_FORM_ID,
sns: SNS.new,
kms: KMS.new)
end
end
end
Но вызов этой грабли выдает ошибку:
rake aborted!
ArgumentError: unknown keywords: box_api, form
Почему он не распознает form
и box_api
. Сначала я подумал, что, возможно, мне не хватает хеша для передачи аргументов. {box_api: BoxApi.new, form: ....} `это тоже не сработало.
Почему выдает ошибку?