Method: Main::Parameter#add_handlers

Defined in:
lib/main/parameter.rb

#add_handlers(e) ⇒ Object



219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/main/parameter.rb', line 219

def add_handlers e
  esc = 
    class << e
      self
    end

  this = self

  %w[ before instead after ].each do |which|
    getter = "error_handler_#{ which }"
    query = "error_handler_#{ which }?"
    if send(query)
      handler = send getter 
      esc.module_eval do
        define_method(getter) do |main|
          main.instance_eval_block self, &handler
        end
      end
    end
  end
end