Included Modules

Files

Class Index [+]

Quicksearch

XSD::CodeGen::ClassDef

Public Class Methods

new(name, baseclass = nil) click to toggle source
    # File lib/xsd/codegen/classdef.rb, line 21
21:   def initialize(name, baseclass = nil)
22:     super(name)
23:     @baseclass = baseclass
24:     @classvar = []
25:     @attrdef = []
26:   end

Public Instance Methods

def_attr(attrname, writable = true, varname = nil) click to toggle source
    # File lib/xsd/codegen/classdef.rb, line 36
36:   def def_attr(attrname, writable = true, varname = nil)
37:     unless safevarname?(varname || attrname)
38:       raise ArgumentError.new("#{varname || attrname} seems to be unsafe")
39:     end
40:     @attrdef << [attrname, writable, varname]
41:   end
def_classvar(var, value) click to toggle source
    # File lib/xsd/codegen/classdef.rb, line 28
28:   def def_classvar(var, value)
29:     var = var.sub(/\A@@/, "")
30:     unless safevarname?(var)
31:       raise ArgumentError.new("#{var} seems to be unsafe")
32:     end
33:     @classvar << [var, value]
34:   end
dump() click to toggle source
    # File lib/xsd/codegen/classdef.rb, line 43
43:   def dump
44:     buf = ""
45:     unless @requirepath.empty?
46:       buf << dump_requirepath 
47:     end
48:     buf << dump_emptyline unless buf.empty?
49:     package = @name.split(/::/)[0..2]
50:     buf << dump_package_def(package) unless package.empty?
51:     buf << dump_comment if @comment
52:     buf << dump_class_def
53:     spacer = false
54:     unless @classvar.empty?
55:       spacer = true
56:       buf << dump_classvar
57:     end
58:     unless @const.empty?
59:       buf << dump_emptyline if spacer
60:       spacer = true
61:       buf << dump_const
62:     end
63:     unless @innermodule.empty?
64:       buf << dump_emptyline # always add 1 empty line
65:       spacer = true
66:       buf << dump_innermodule
67:     end
68:     unless @code.empty?
69:       buf << dump_emptyline if spacer
70:       spacer = true
71:       buf << dump_code
72:     end
73:     unless @attrdef.empty?
74:       buf << dump_emptyline if spacer
75:       spacer = true
76:       buf << dump_attributes
77:     end
78:     unless @methoddef.empty?
79:       buf << dump_emptyline if spacer
80:       spacer = true
81:       buf << dump_methods
82:     end
83:     buf << dump_class_def_end
84:     buf << dump_package_def_end(package) unless package.empty?
85:     buf.gsub(/^\s+$/, '')
86:   end

Private Instance Methods

dump_accessor(attrname, writable) click to toggle source
     # File lib/xsd/codegen/classdef.rb, line 129
129:   def dump_accessor(attrname, writable)
130:     if writable
131:       "attr_accessor :#{attrname}"
132:     else
133:       "attr_reader :#{attrname}"
134:     end
135:   end
dump_attribute(attrname, writable, varname) click to toggle source
     # File lib/xsd/codegen/classdef.rb, line 137
137:   def dump_attribute(attrname, writable, varname)
138:     str = nil
139:     mr = MethodDef.new(attrname)
140:     mr.definition = "@#{varname}"
141:     str = mr.dump
142:     if writable
143:       mw = MethodDef.new(attrname + "=", 'value')
144:       mw.definition = "@#{varname} = value"
145:       str << "\n" + mw.dump
146:     end
147:     str
148:   end
dump_attributes() click to toggle source
     # File lib/xsd/codegen/classdef.rb, line 111
111:   def dump_attributes
112:     str = ""
113:     @attrdef.each do |attrname, writable, varname|
114:       varname ||= attrname
115:       if attrname == varname
116:         str << format(dump_accessor(attrname, writable), 2)
117:       end
118:     end
119:     @attrdef.each do |attrname, writable, varname|
120:       varname ||= attrname
121:       if attrname != varname
122:         str << "\n" unless str.empty?
123:         str << format(dump_attribute(attrname, writable, varname), 2)
124:       end
125:     end
126:     str
127:   end
dump_class_def() click to toggle source
    # File lib/xsd/codegen/classdef.rb, line 90
90:   def dump_class_def
91:     name = @name.to_s.split(/::/)
92:     if @baseclass
93:       format("class #{name.last} < #{@baseclass}")
94:     else
95:       format("class #{name.last}")
96:     end
97:   end
dump_class_def_end() click to toggle source
     # File lib/xsd/codegen/classdef.rb, line 99
 99:   def dump_class_def_end
100:     str = format("end")
101:   end
dump_classvar() click to toggle source
     # File lib/xsd/codegen/classdef.rb, line 103
103:   def dump_classvar
104:     dump_static(
105:       @classvar.collect { |var, value|
106:         %(@@#{var.sub(/^@@/, "")} = #{dump_value(value)})
107:       }.join("\n")
108:     )
109:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.