module XSD::CodeGen::GenSupport
Public Class Methods
capitalize(target)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 157 def capitalize(target) target.sub(/^([a-z])/) { $1.upcase } end
constant?(word)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 222 def constant?(word) CONSTANTS.key?(word) end
keyword?(word)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 217 def keyword?(word) KEYWORDS.key?(word) end
safeconstname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 167 def safeconstname(name) safename = name.scan(/[a-zA-Z0-9_]+/).collect { |ele| GenSupport.capitalize(ele) }.join if /\A[A-Z]/ !~ safename or keyword?(safename) or constant?(safename) "C_#{safename}" else safename end end
safeconstname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 179 def safeconstname?(name) /\A[A-Z][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name) end
safemethodname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 184 def safemethodname(name) postfix = name[/[=?!]$/] safename = name.scan(/[a-zA-Z0-9_]+/).join('_') safename = uncapitalize(safename) safename += postfix if postfix if /\A[a-z]/ !~ safename or keyword?(safename) "m_#{safename}" else safename end end
safemethodname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 197 def safemethodname?(name) /\A[a-zA-Z_][a-zA-Z0-9_]*[=!?]?\z/ =~ name and !keyword?(name) end
safevarname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 202 def safevarname(name) safename = uncapitalize(name.scan(/[a-zA-Z0-9_]+/).join('_')) if /\A[a-z]/ !~ safename or keyword?(safename) "v_#{safename}" else safename end end
safevarname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 212 def safevarname?(name) /\A[a-z_][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name) end
uncapitalize(target)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 162 def uncapitalize(target) target.sub(/^([A-Z])/) { $1.downcase } end
Public Instance Methods
format(str, indent = nil)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 227 def format(str, indent = nil) str = trim_eol(str) str = trim_indent(str) if indent str.to_s.gsub(/^/, " " * indent) else str end end
Private Instance Methods
capitalize(target)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 157 def capitalize(target) target.sub(/^([a-z])/) { $1.upcase } end
constant?(word)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 222 def constant?(word) CONSTANTS.key?(word) end
dump_emptyline()
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 270 def dump_emptyline "\n" end
keyword?(word)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 217 def keyword?(word) KEYWORDS.key?(word) end
safeconstname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 167 def safeconstname(name) safename = name.scan(/[a-zA-Z0-9_]+/).collect { |ele| GenSupport.capitalize(ele) }.join if /\A[A-Z]/ !~ safename or keyword?(safename) or constant?(safename) "C_#{safename}" else safename end end
safeconstname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 179 def safeconstname?(name) /\A[A-Z][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name) end
safemethodname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 184 def safemethodname(name) postfix = name[/[=?!]$/] safename = name.scan(/[a-zA-Z0-9_]+/).join('_') safename = uncapitalize(safename) safename += postfix if postfix if /\A[a-z]/ !~ safename or keyword?(safename) "m_#{safename}" else safename end end
safemethodname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 197 def safemethodname?(name) /\A[a-zA-Z_][a-zA-Z0-9_]*[=!?]?\z/ =~ name and !keyword?(name) end
safevarname(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 202 def safevarname(name) safename = uncapitalize(name.scan(/[a-zA-Z0-9_]+/).join('_')) if /\A[a-z]/ !~ safename or keyword?(safename) "v_#{safename}" else safename end end
safevarname?(name)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 212 def safevarname?(name) /\A[a-z_][a-zA-Z0-9_]*\z/ =~ name and !keyword?(name) end
trim_eol(str)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 239 def trim_eol(str) str = str.lines if str.respond_to?(:lines) # RubyJedi: compatible with Ruby 1.8.6 and above str.collect { |line| line.sub(/\r?\n\z/, "") + "\n" }.join end
trim_indent(str)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 246 def trim_indent(str) indent = nil str = str.lines if str.respond_to?(:lines) # RubyJedi: compatible with Ruby 1.8.6 and above str = str.collect { |line| untab(line) }.join str = str.lines if str.respond_to?(:lines) # RubyJedi: compatible with Ruby 1.8.6 and above str.each do |line| head = line.index(/\S/) if !head.nil? and (indent.nil? or head < indent) indent = head end end return str unless indent str.collect { |line| line.sub(/^ {0,#{indent}}/, "") }.join end
uncapitalize(target)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 162 def uncapitalize(target) target.sub(/^([A-Z])/) { $1.downcase } end
untab(line, ts = 8)
click to toggle source
# File lib/xsd/codegen/gensupport.rb, line 263 def untab(line, ts = 8) while pos = line.index(/\t/) line = line.sub(/\t/, " " * (ts - (pos % ts))) end line end