Class XSD::CodeGen::ModuleDef
In: xsd/codegen/moduledef.rb
Parent: Object

Methods

Included Modules

GenSupport CommentDef

Public Class methods

[Source]

# File xsd/codegen/moduledef.rb, line 22
  def initialize(name)
    @name = name
    @comment = nil
    @const = []
    @code = []
    @requirepath = []
    @methoddef = []
  end

Public Instance methods

[Source]

# File xsd/codegen/moduledef.rb, line 60
  def add_method(m, visibility = :public)
    @methoddef << [visibility, m]
  end

[Source]

# File xsd/codegen/moduledef.rb, line 42
  def def_code(code)
    @code << code
  end

[Source]

# File xsd/codegen/moduledef.rb, line 35
  def def_const(const, value)
    unless safeconstname?(const)
      raise ArgumentError.new("#{const} seems to be unsafe")
    end
    @const << [const, value]
  end

[Source]

# File xsd/codegen/moduledef.rb, line 46
  def def_method(name, *params)
    add_method(MethodDef.new(name, *params) { yield if block_given? }, :public)
  end

[Source]

# File xsd/codegen/moduledef.rb, line 56
  def def_privatemethod(name, *params)
    add_method(MethodDef.new(name, *params) { yield if block_given? }, :private)
  end

[Source]

# File xsd/codegen/moduledef.rb, line 51
  def def_protectedmethod(name, *params)
    add_method(MethodDef.new(name, *params) { yield if block_given? },
      :protected)
  end
def_publicmethod(name, *params)

Alias for def_method

[Source]

# File xsd/codegen/moduledef.rb, line 31
  def def_require(path)
    @requirepath << path
  end

[Source]

# File xsd/codegen/moduledef.rb, line 64
  def dump
    buf = ""
    unless @requirepath.empty?
      buf << dump_requirepath 
    end
    buf << dump_emptyline unless buf.empty?
    package = @name.split(/::/)[0..-2]
    buf << dump_package_def(package) unless package.empty?
    buf << dump_comment if @comment
    buf << dump_module_def
    spacer = false
    unless @const.empty?
      buf << dump_emptyline if spacer
      spacer = true
      buf << dump_const
    end
    unless @code.empty?
      buf << dump_emptyline if spacer
      spacer = true
      buf << dump_code
    end
    unless @methoddef.empty?
      buf << dump_emptyline if spacer
      spacer = true
      buf << dump_methods
    end
    buf << dump_module_def_end
    buf << dump_package_def_end(package) unless package.empty?
    buf.gsub(/^\s+$/, '')
  end

[Validate]