Class | WSDL::XMLSchema::XSD2Ruby |
In: |
lib/wsdl/xmlSchema/xsd2ruby.rb
|
Parent: | Object |
basedir | [RW] | |
location | [RW] | |
logger | [RW] | |
opt | [R] |
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 35 35: def initialize 36: @location = nil 37: @opt = {} 38: @logger = Logger.new(STDERR) 39: @basedir = nil 40: @xsd = nil 41: @name = nil 42: end
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 24 24: def run 25: unless @location 26: raise RuntimeError, "XML Schema location not given" 27: end 28: @xsd = import(@location) 29: @name = create_classname(@xsd) 30: create_file 31: end
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 66 66: def check_file(filename) 67: if @basedir 68: filename = File.join(basedir, filename) 69: end 70: if FileTest.exist?(filename) 71: if @opt.key?('force') 72: @logger.warn { 73: "File '#{filename}' exists but overrides it." 74: } 75: true 76: else 77: @logger.warn { 78: "File '#{filename}' exists. #{$0} did not override it." 79: } 80: false 81: end 82: else 83: @logger.info { "Creates file '#{filename}'." } 84: true 85: end 86: end
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 48 48: def create_classdef 49: @logger.info { "Creating class definition." } 50: @classdef_filename = @name + '.rb' 51: check_file(@classdef_filename) or return 52: write_file(@classdef_filename) do |f| 53: f << WSDL::SOAP::ClassDefCreator.new(@xsd).dump 54: end 55: end
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 88 88: def create_classname(xsd) 89: name = nil 90: if xsd.targetnamespace 91: name = xsd.targetnamespace.scan(/[a-zA-Z0-9]+$/)[0] 92: end 93: if name.nil? 94: 'default' 95: else 96: XSD::CodeGen::GenSupport.safevarname(name) 97: end 98: end
# File lib/wsdl/xmlSchema/xsd2ruby.rb, line 100 100: def import(location) 101: WSDL::XMLSchema::Importer.import(location) 102: end