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/action_web_service/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/action_web_service/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/action_web_service/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/action_web_service/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/action_web_service/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/action_web_service/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/action_web_service/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/action_web_service/xsd/codegen/moduledef.rb', line 31
def def_require(path)
@requirepath << path
end
|
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/action_web_service/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
|