Экспорт Proc из одного файла в другой в Ruby - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть процедура, определенная в файле, который отображает массив config: strategy.rb:

Proc.new do |klass|
    [
      {
        klass: ::BlockUtils::RSpec,
        args: [ "model"],
      }
    ]
end

Я хотел бы написать что-то вроде

   strategy = require('strategy.rb').call(Product)

в некоторых другихфайл для помещения в переменную моей стратегии моего массива конфигурации.Но require ('Strategy.rb') отображает логическое значение, а не мой Proc.Есть ли способ экспортировать анонимную функцию в ruby ​​и добиться этого

1 Ответ

0 голосов
/ 16 декабря 2018

Анонимная функция в Ruby - это объект, как и любой другой объект в Ruby.Таким образом, вы делаете его доступным, как и любой другой объект в Ruby:

  • присваивая его переменной, к которой у кода, создающего proc, и кода, который нуждается в proc, есть доступ или
  • имеющий объект, на который может ссылаться как код, так и код, который создает процедуру, и код, который нуждается в процедуре, позаботится о предоставлении доступа к процессу или
  • любая транзитивная комбинация двух.

Как вы делаете это со всеми другими объектами, которые вы создаете в своих файлах?Сделайте то же самое с процедурой!

Например:

$global_variable = ->{}

CONSTANT = ->{}

SomeRepositoryObject.the_proc = ->{}

def method_returning_the_proc
  ->{}
end
# Note: this last one has different semantics, it will return a different one every time
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...