Module: JInterface
- Defined in:
- lib/jinterface.rb,
lib/jinterface/arg_range.rb,
lib/jinterface/interface_class_methods.rb
Defined Under Namespace
Modules: InterfaceClassMethods
Classes: ArgRange
Class Method Summary
collapse
Class Method Details
.extended(obj) ⇒ Object
54
55
56
57
58
59
|
# File 'lib/jinterface.rb', line 54
def extended(obj)
raise SyntaxError.new(
"Interface '#{self.name}' cannot be "\
" extended, only included, in '#{obj.name}'."
)
end
|
.included(mod) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/jinterface.rb', line 4
def included(mod)
return if production?
raise TypeError.new(
"JInterface cannot be used with class"\
" '#{mod.name}', only with modules."
) if mod.instance_of? Class
mod.class_eval do
extend JInterface::InterfaceClassMethods
@arg_ranges = {
}
private_instance_methods.each do |method_name|
private method_name
end
protected_instance_methods.each do |method_name|
protected method_name
end
methods(false).each do |method_name|
singleton_method_added method_name
end
included_modules.each do |mod|
include mod unless JInterface.interface? mod
end
prepended_modules.each do |mod|
prepend mod
end if defined? prepended_modules
(
(class << mod; self; end).included_modules -
Module.included_modules -
[JInterface::InterfaceClassMethods]
).each do |mod|
extend mod
end
public_instance_methods(false).each do |method_name|
method_added(method_name)
end
end
end
|
.interface?(obj) ⇒ Boolean
66
67
68
69
70
71
72
|
# File 'lib/jinterface.rb', line 66
def interface?(obj)
( obj == JInterface or
( obj.instance_of?(Module) and
(class << obj; self end) < JInterface::InterfaceClassMethods
)
) ? true : false
end
|
.prepended(obj) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/jinterface.rb', line 60
def prepended(obj)
raise SyntaxError.new(
"Interface '#{self.name}' cannot be "\
" prepended, only included, in '#{obj.name}'."
)
end
|
.production=(flag) ⇒ Object
73
74
75
|
# File 'lib/jinterface.rb', line 73
def production=(flag)
@enabled = flag == true
end
|
.production? ⇒ Boolean
76
77
78
|
# File 'lib/jinterface.rb', line 76
def production?()
return @enabled ||= false
end
|