Method: M4DBI::Model#method_missing

Defined in:
lib/m4dbi/model.rb

#method_missing(method, *args) ⇒ Object



369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
# File 'lib/m4dbi/model.rb', line 369

def method_missing( method, *args )
  begin
    @row.send( method, *args )
  rescue NoMethodError => e
    if e.backtrace.grep /method_missing/
      # Prevent infinite recursion
      self_str = 'model object'
    elsif self.respond_to? :to_s
      self_str = self.to_s
    elsif self.respond_to? :inspect
      self_str = self.inspect
    elsif self.respond_to? :class
      self_str = "#{self.class} object"
    else
      self_str = "instance of unknown model"
    end

    raise NoMethodError.new(
      "undefined method '#{method}' for #{self_str}",
      method,
      args
    )
  end
end