Class: Orcid::NamedCallbacks

Inherits:
Object
  • Object
show all
Defined in:
lib/orcid/named_callbacks.rb

Overview

Instance Method Summary collapse

Constructor Details

#initializeNamedCallbacks

Returns a new instance of NamedCallbacks.



5
6
7
# File 'lib/orcid/named_callbacks.rb', line 5

def initialize
  @callbacks = {}
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(callback_name, &block) ⇒ Object

Note this very specific implementation of #method_missing will raise errors on non-zero method arity.



11
12
13
# File 'lib/orcid/named_callbacks.rb', line 11

def method_missing(callback_name, &block)
  @callbacks[callback_name] = block
end

Instance Method Details

#call(callback_name, *args) ⇒ Object



15
16
17
18
19
# File 'lib/orcid/named_callbacks.rb', line 15

def call(callback_name, *args)
  name = callback_name.to_sym
  cb = @callbacks[name]
  cb ? cb.call(*args) : true
end