Module: Encapsulate
- Defined in:
- lib/encapsulate.rb,
lib/encapsulate/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
- @@encapsulator_params =
[[:keyreq, :callback], [:key, :params]]
Class Method Summary collapse
Class Method Details
.create(callback:, with:) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/encapsulate.rb', line 11 def self.create(callback:, with:) lambdas = [] lambdas[0] = callback with.each_with_index do |encapsulator, index| ReflectionUtils.assert_parameters(encapsulator, @@encapsulator_params) lambdas[index + 1] = lambda { |params = nil| encapsulator.call(callback: lambdas[index], params: params) } end lambdas.last end |
.run(callback:, with:, params: nil) ⇒ Object
7 8 9 |
# File 'lib/encapsulate.rb', line 7 def self.run(callback:, with:, params:nil) ReflectionUtils.call(create(callback: callback, with: with), params) end |