Class: Soybean::Generators::ModelGenerator

Inherits:
Object
  • Object
show all
Includes:
BaseGenerator
Defined in:
lib/soybean/generators/model_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from BaseGenerator

#filename, #fullpath

Constructor Details

#initialize(wsdl) ⇒ ModelGenerator

Returns a new instance of ModelGenerator.



8
9
10
11
# File 'lib/soybean/generators/model_generator.rb', line 8

def initialize(wsdl)
  @wsdl = wsdl
  @name = (wsdl.name.name.underscore.gsub(/service$/, '') rescue 'base') + 'service'
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/soybean/generators/model_generator.rb', line 6

def name
  @name
end

#wsdlObject (readonly)

Returns the value of attribute wsdl.



6
7
8
# File 'lib/soybean/generators/model_generator.rb', line 6

def wsdl
  @wsdl
end

Instance Method Details

#class_nameObject



26
27
28
# File 'lib/soybean/generators/model_generator.rb', line 26

def class_name
  @name.camelize
end

#dirObject



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

def dir
  ''
end

#generateObject



17
18
19
20
21
22
23
24
# File 'lib/soybean/generators/model_generator.rb', line 17

def generate
  @wsdl.importedschema.map do |uri, schema|
    "require 'mappings/#{URI.parse(schema.targetnamespace).path[1..-2].underscore}'\n"
  end.join +
  "class #{class_name} < #{interface_name}" +
      "include #{URI.parse(@wsdl.importedschema.values.last.targetnamespace).path[1..-2].camelize}"
  "end"
end

#interface_nameObject



30
31
32
# File 'lib/soybean/generators/model_generator.rb', line 30

def interface_name
  "Interfaces::" + @name.camelize.gsub(/Service$/, 'Interface')
end