Class: XSD::CodeGen::ModuleDef
Instance Attribute Summary
Attributes included from CommentDef
#comment
Instance Method Summary
collapse
Methods included from GenSupport
#capitalize, #format, #keyword?, #safeconstname, #safeconstname?, #safemethodname, #safemethodname?, #safevarname, #safevarname?, #uncapitalize
Constructor Details
#initialize(name) ⇒ ModuleDef
Returns a new instance of ModuleDef.
22
23
24
25
26
27
28
29
|
# File 'lib/xsd/codegen/moduledef.rb', line 22
def initialize(name)
@name = name
@comment = nil
@const = []
@code = []
@requirepath = []
@methoddef = []
end
|
Instance Method Details
#add_method(m, visibility = :public) ⇒ Object
60
61
62
|
# File 'lib/xsd/codegen/moduledef.rb', line 60
def add_method(m, visibility = :public)
@methoddef << [visibility, m]
end
|
#def_code(code) ⇒ Object
42
43
44
|
# File 'lib/xsd/codegen/moduledef.rb', line 42
def def_code(code)
@code << code
end
|
#def_const(const, value) ⇒ Object
35
36
37
38
39
40
|
# File 'lib/xsd/codegen/moduledef.rb', line 35
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
46
47
48
|
# File 'lib/xsd/codegen/moduledef.rb', line 46
def def_method(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? }, :public)
end
|
#def_privatemethod(name, *params) ⇒ Object
56
57
58
|
# File 'lib/xsd/codegen/moduledef.rb', line 56
def def_privatemethod(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? }, :private)
end
|
#def_protectedmethod(name, *params) ⇒ Object
51
52
53
54
|
# File 'lib/xsd/codegen/moduledef.rb', line 51
def def_protectedmethod(name, *params)
add_method(MethodDef.new(name, *params) { yield if block_given? },
:protected)
end
|
#def_require(path) ⇒ Object
31
32
33
|
# File 'lib/xsd/codegen/moduledef.rb', line 31
def def_require(path)
@requirepath << path
end
|
#dump ⇒ Object
64
65
66
67
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
|
# File 'lib/xsd/codegen/moduledef.rb', line 64
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 @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
|