| Module | XSD::CodeGen::GenSupport |
| In: |
lib/xsd/codegen/gensupport.rb
|
# File lib/xsd/codegen/gensupport.rb, line 58
58: def capitalize(target)
59: target.sub(/^([a-z])/) { $1.tr!('[a-z]', '[A-Z]') }
60: end
# File lib/xsd/codegen/gensupport.rb, line 119
119: def format(str, indent = nil)
120: str = trim_eol(str)
121: str = trim_indent(str)
122: if indent
123: str.gsub(/^/, " " * indent)
124: else
125: str
126: end
127: end
# File lib/xsd/codegen/gensupport.rb, line 114
114: def keyword?(word)
115: KEYWORD.key?(word)
116: end
# File lib/xsd/codegen/gensupport.rb, line 68
68: def safeconstname(name)
69: safename = name.scan(/[a-zA-Z0-9_]+/).collect { |ele|
70: GenSupport.capitalize(ele)
71: }.join
72: if /^[A-Z]/ !~ safename or keyword?(safename)
73: safename = "C_#{safename}"
74: end
75: safename
76: end
# File lib/xsd/codegen/gensupport.rb, line 79
79: def safeconstname?(name)
80: /\A[A-Z][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name)
81: end
# File lib/xsd/codegen/gensupport.rb, line 84
84: def safemethodname(name)
85: safename = name.scan(/[a-zA-Z0-9_]+/).join('_')
86: safename = uncapitalize(safename)
87: if /^[a-z]/ !~ safename
88: safename = "m_#{safename}"
89: end
90: safename
91: end
# File lib/xsd/codegen/gensupport.rb, line 94
94: def safemethodname?(name)
95: /\A[a-zA-Z_][a-zA-Z0-9_]*[=!?]?\z/ =~ name
96: end
# File lib/xsd/codegen/gensupport.rb, line 99
99: def safevarname(name)
100: safename = uncapitalize(name.scan(/[a-zA-Z0-9_]+/).join('_'))
101: if /^[a-z]/ !~ safename or keyword?(safename)
102: "v_#{safename}"
103: else
104: safename
105: end
106: end
# File lib/xsd/codegen/gensupport.rb, line 109
109: def safevarname?(name)
110: /\A[a-z_][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name)
111: end
# File lib/xsd/codegen/gensupport.rb, line 63
63: def uncapitalize(target)
64: target.sub(/^([A-Z])/) { $1.tr!('[A-Z]', '[a-z]') }
65: end
# File lib/xsd/codegen/gensupport.rb, line 131
131: def trim_eol(str)
132: str.collect { |line|
133: line.sub(/\r?\n\z/, "") + "\n"
134: }.join
135: end
# File lib/xsd/codegen/gensupport.rb, line 137
137: def trim_indent(str)
138: indent = nil
139: str = str.collect { |line| untab(line) }.join
140: str.each do |line|
141: head = line.index(/\S/)
142: if !head.nil? and (indent.nil? or head < indent)
143: indent = head
144: end
145: end
146: return str unless indent
147: str.collect { |line|
148: line.sub(/^ {0,#{indent}}/, "")
149: }.join
150: end