Class: Functo
- Inherits:
-
Module
- Object
- Module
- Functo
- Defined in:
- lib/functo.rb,
lib/functo/version.rb
Constant Summary collapse
- MAX_ARGUMENTS =
3- PASS =
'__FUNCTO_PASS__'.freeze
- VERSION =
"0.1.3"
Class Method Summary collapse
Class Method Details
.call(*names) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/functo.rb', line 24 def self.call(*names) output = names.shift if names.first.is_a?(Hash) inputs = names.first filters = inputs.values names = inputs.keys else filters = [pass] * names.length end if names.length > MAX_ARGUMENTS raise ArgumentError.new("given #{names.length} arguments when only #{MAX_ARGUMENTS} are allowed") end new(names, filters, output) end |
.pass ⇒ Object
20 21 22 |
# File 'lib/functo.rb', line 20 def self.pass PASS end |
.wrap(obj) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/functo.rb', line 9 def self.wrap(obj) klass = Class.new klass.define_singleton_method :call do |*args| obj.call(*args) end klass.extend(ClassMethods) klass end |