Sha256: bd01a075dd36b0fdd32dbbfbe9cf6cd0d9bde5f320d0fc9daf00ced6662775ab

Contents?: true

Size: 732 Bytes

Versions: 10

Compression:

Stored size: 732 Bytes

Contents

module Soybean
  module Generators
    class ModelGenerator
      include BaseGenerator

      attr_reader :name, :wsdl

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

      def dir
        ''
      end

      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}\nend"
      end

      def class_name
        @name.camelize
      end

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

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
soybean-2.5.3 lib/soybean/generators/model_generator.rb
soybean-2.5.2 lib/soybean/generators/model_generator.rb
soybean-2.5.1 lib/soybean/generators/model_generator.rb
soybean-2.5.0 lib/soybean/generators/model_generator.rb
soybean-2.4.3 lib/soybean/generators/model_generator.rb
soybean-2.4.2 lib/soybean/generators/model_generator.rb
soybean-2.4.1 lib/soybean/generators/model_generator.rb
soybean-2.4.0 lib/soybean/generators/model_generator.rb
soybean-2.3.0 lib/soybean/generators/model_generator.rb
soybean-2.2.2 lib/soybean/generators/model_generator.rb