Class: Soybean::Generators::ServiceGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/soybean/generators/service_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path, wsdl, spec_dir) ⇒ ServiceGenerator

Returns a new instance of ServiceGenerator.



6
7
8
9
10
11
# File 'lib/soybean/generators/service_generator.rb', line 6

def initialize(path, wsdl, spec_dir)
  @path, @wsdl_location = path, wsdl
  @wsdl = import_wsdl
  @spec_dir = spec_dir
  @schemes = @wsdl.importedschema.keys
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



4
5
6
# File 'lib/soybean/generators/service_generator.rb', line 4

def path
  @path
end

#wsdlObject (readonly)

Returns the value of attribute wsdl.



4
5
6
# File 'lib/soybean/generators/service_generator.rb', line 4

def wsdl
  @wsdl
end

#wsdl_locationObject (readonly)

Returns the value of attribute wsdl_location.



4
5
6
# File 'lib/soybean/generators/service_generator.rb', line 4

def wsdl_location
  @wsdl_location
end

Instance Method Details

#enginesObject



39
40
41
# File 'lib/soybean/generators/service_generator.rb', line 39

def engines
  @engines ||= model.map { |m| EngineGenerator.new(m) }
end

#generateObject



17
18
19
20
21
# File 'lib/soybean/generators/service_generator.rb', line 17

def generate
  (schemes + mappings + interface + model + specs + engines).map do |generator|
    yield generator.fullpath(path), generator.generate, generator
  end
end

#interfaceObject



27
28
29
# File 'lib/soybean/generators/service_generator.rb', line 27

def interface
  @interface ||= [InterfaceGenerator.new(@wsdl)]
end

#mappingsObject



23
24
25
# File 'lib/soybean/generators/service_generator.rb', line 23

def mappings
  @mappings ||= schemes.map { |gen| MappingGenerator.new(gen.xsd, @wsdl) }
end

#modelObject



31
32
33
# File 'lib/soybean/generators/service_generator.rb', line 31

def model
  @model ||= [ModelGenerator.new(@wsdl)]
end

#schemesObject



13
14
15
# File 'lib/soybean/generators/service_generator.rb', line 13

def schemes
  @schemes.map { |url| TypesGenerator.new(url) }
end

#specsObject



43
44
45
# File 'lib/soybean/generators/service_generator.rb', line 43

def specs
  @specs ||= model.map { |m| ModelSpecGenerator.new(m, @spec_dir) }
end

#staticObject



35
36
37
# File 'lib/soybean/generators/service_generator.rb', line 35

def static
  @static ||= [StaticGenerator.new(@wsdl)]
end