Sha256: bc453d6b2dd4d03877e03b25fad3b6586ba9f5a7c7d221a1383e7063c6f4d992
Contents?: true
Size: 946 Bytes
Versions: 55
Compression:
Stored size: 946 Bytes
Contents
module Agilibox::Monkey extend ActiveSupport::Concern class_methods do def prepend_instances(&block) m = Module.new(&block) send(:prepend, m) end def prepend_class(&block) m = Module.new(&block) singleton_class.send(:prepend, m) end def prepend_instance_method(name, &block) check_instance_method_exist!(name) m = Module.new m.send(:define_method, name, &block) send(:prepend, m) end def prepend_class_method(name, &block) check_class_method_exist!(name) m = Module.new m.send(:define_method, name, &block) singleton_class.send(:prepend, m) end def check_instance_method_exist!(name) raise "instance method `#{name}` does not exist" unless instance_methods.include?(name) end def check_class_method_exist!(name) raise "class method `#{name}` does not exist" unless methods.include?(name) end end end
Version data entries
55 entries across 55 versions & 1 rubygems