Module: Stitcher::Register

Included in:
Accessor, DefineMethod, Require, Stitch
Defined in:
lib/stitcher/register.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.define_call_method(self_, name) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/stitcher/register.rb', line 13

def self.define_call_method self_, name
	self_.__send__ :define_method, name do |*args, &block|
		method = self_.stitcher_method_detecting name, *args, &block

		return super(*args, &block) unless method
		method = method.stitcher_bind(self) if method.respond_to? :stitcher_bind
		method.call *args, &block
	end
end

.register(self_, name, sig = nil, method = self_.instance_method(name)) ⇒ Object



23
24
25
26
# File 'lib/stitcher/register.rb', line 23

def self.register self_, name, sig = nil, method = self_.instance_method(name)
	self_.stitcher_add name, sig, method
	Register.define_call_method self_, name
end

Instance Method Details

#stitcher_register(name, sig, &block) ⇒ Object



28
29
30
# File 'lib/stitcher/register.rb', line 28

def stitcher_register name, sig, &block
	Register.register(self, name, sig, block_given? ? block : instance_method(name))
end