lib/soybean/generators/service_generator.rb in soybean-2.0.1 vs lib/soybean/generators/service_generator.rb in soybean-2.1.0

- old
+ new

@@ -1,35 +1,40 @@ module Soybean module Generators class ServiceGenerator attr_reader :path, :wsdl_location, :wsdl - def initialize(path, wsdl) - @path, @wsdl_location = Pathname.new(path), wsdl + def initialize(path, wsdl, spec_dir) + @path, @wsdl_location = path, wsdl @wsdl = import_wsdl + @spec_dir = spec_dir @schemes = @wsdl.importedschema.keys end def schemes @schemes.map { |url| TypesGenerator.new(url) } end def generate - (schemes + mappings + interface + model).map do |generator| - yield path.join(generator.dir, generator.filename), generator.generate + (schemes + mappings + interface + model + specs).map do |generator| + yield generator.fullpath(path), generator.generate end end def mappings - schemes.map { |gen| MappingGenerator.new(gen.xsd) } + @mappings ||= schemes.map { |gen| MappingGenerator.new(gen.xsd) } end def interface - [InterfaceGenerator.new(@wsdl)] + @interface ||= [InterfaceGenerator.new(@wsdl)] end def model - [ModelGenerator.new(@wsdl)] + @model ||= [ModelGenerator.new(@wsdl)] + end + + def specs + @specs ||= model.map { |m| ModelSpecGenerator.new(m, @spec_dir) } end protected def dirs