Class: XSD::CodeGen::ModuleDef
Instance Attribute Summary collapse
Attributes included from CommentDef
#comment
Instance Method Summary
collapse
Methods included from GenSupport
capitalize, constant?, #format, keyword?, safeconstname, safeconstname?, safemethodname, safemethodname?, safevarname, safevarname?, uncapitalize
Constructor Details
#initialize(name) ⇒ ModuleDef
Returns a new instance of ModuleDef.
25
26
27
28
29
30
31
32
33
|
# File 'lib/xsd/codegen/moduledef.rb', line 25
def initialize(name)
@name = name
@comment = nil
@const = []
@code = []
@requirepath = []
@methoddef = []
@innermodule = []
end
|
Instance Attribute Details
#innermodule ⇒ Object
Returns the value of attribute innermodule.
23
24
25
|
# File 'lib/xsd/codegen/moduledef.rb', line 23
def innermodule
@innermodule
end
|
Returns the value of attribute name.
22
23
24
|
# File 'lib/xsd/codegen/moduledef.rb', line 22
def name
@name
end
|
Instance Method Details
#add_method(m, visibility = :public) ⇒ Object
64
65
66
|
# File 'lib/xsd/codegen/moduledef.rb', line 64
def add_method(m, visibility = :public)
@methoddef << [visibility, m]
end
|
#def_code(code) ⇒ Object
46
47
48
|
# File 'lib/xsd/codegen/moduledef.rb', line 46
def def_code(code)
@code << code
end
|
#def_const(const, value) ⇒ Object
39
40
41
42
43
44
|
# File 'lib/xsd/codegen/moduledef.rb', line 39
def def_const(const, value)
unless safeconstname?(const)
raise ArgumentError.new("#{const} seems to be unsafe")
end
@const << [const, value]
end
|
#def_method(name, *params) ⇒ Object
Also known as:
def_publicmethod
50
51
52
|
# File 'lib/xsd/codegen/moduledef.rb', line 50
def def_method(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? }, :public)
end
|
#def_privatemethod(name, *params) ⇒ Object
60
61
62
|
# File 'lib/xsd/codegen/moduledef.rb', line 60
def def_privatemethod(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? }, :private)
end
|
#def_protectedmethod(name, *params) ⇒ Object
55
56
57
58
|
# File 'lib/xsd/codegen/moduledef.rb', line 55
def def_protectedmethod(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? },
:protected)
end
|
#def_require(path) ⇒ Object
35
36
37
|
# File 'lib/xsd/codegen/moduledef.rb', line 35
def def_require(path)
@requirepath << path
end
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# File 'lib/xsd/codegen/moduledef.rb', line 68
def dump
buf = ""
unless @requirepath.empty?
buf << dump_requirepath
end
buf << dump_emptyline unless buf.empty?
package = @name.split(/::/)[0..-2]
buf << dump_package_def(package) unless package.empty?
buf << if @comment
buf << dump_module_def
spacer = false
unless @const.empty?
buf << dump_emptyline if spacer
spacer = true
buf << dump_const
end
unless @innermodule.empty?
buf << dump_emptyline spacer = true
buf << dump_innermodule
end
unless @code.empty?
buf << dump_emptyline if spacer
spacer = true
buf << dump_code
end
unless @methoddef.empty?
buf << dump_emptyline if spacer
spacer = true
buf << dump_methods
end
buf << dump_module_def_end
buf << dump_package_def_end(package) unless package.empty?
buf.gsub(/^\s+$/, '')
end
|