Sha256: f32e2858817f4474257cea96f90759c975e94d8d3efe578ecfc04bc973e35a1c
Contents?: true
Size: 759 Bytes
Versions: 1
Compression:
Stored size: 759 Bytes
Contents
# encoding: utf-8 require 'active_support/concern' module Ghostable extend ActiveSupport::Concern module ClassMethods def ghost_method(pattern, basename, &ghost_block) define_method basename do |method_name, *args, &block| self.class.class_eval { ghost_block.call(method_name, *args, &block) } end @patterns ||= {} @patterns[basename] = pattern tmp_patterns = @patterns.dup define_method :get_patterns do tmp_patterns end end end def method_missing(method_name, *args, &block) get_patterns.each do |basename, pattern| return method(basename).call(method_name, *args, &block) if method_name.to_s.match(/#{pattern}/) end super end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tbpgr_utils-0.0.151 | lib/ghostable.rb |