Seongsiks

Being A DevOpser. Powered by
Obtvse, highlight.js, theme toc Creative Commons License
Seongsiks Twitter Github Email
DevOps Ruby On Rails Chef Projects Misc Movies & Drama ME

Ruby Advanced 2 (method_missing)

Overview

ruby의 다른 고급 부분인 missing method 정복하기.

method missing + dynamic method declaration

class Myruby
# 호출한 메소드가 없을때 실행된다.
  def method_missing(method_name, *args)
    # class eval로 새로운 method를 override한다.
    self.class.class_eval do
      define_method method_name do |*args|
        puts "#{method_name}: #{args.class.to_s}"
      end
    end
   # 방금 만든 메소드를 호출!!
    send(method_name, *args)
  end

  #해당 클래스 밖에서 메소드가 있는지 확인해서 참이 나오게 하려면. 
  def respond_to_missing?(method_name)
    # 새로 만든 메소드가 있다면 메소드명 리턴 
  end
end
comments powered by Disqus
Back to Ruby On Rails