class XSD::CodeGen::MethodDef

Attributes

definition[RW]

Public Class Methods

new(name, *params) { || ... } click to toggle source
# File lib/xsd/codegen/methoddef.rb, line 24
def initialize(name, *params)
  klass, mname = name.split('.', 2)
  if mname.nil?
    mname, klass = klass, mname
  end
  unless safemethodname?(mname)
    raise ArgumentError.new("name '#{name}' seems to be unsafe")
  end
  if klass and klass != 'self' and !safeconstname(klass)
    raise ArgumentError.new("name '#{name}' seems to be unsafe")
  end
  @name = name
  @params = params
  @comment = nil
  @definition = yield if block_given?
end

Public Instance Methods

dump() click to toggle source
# File lib/xsd/codegen/methoddef.rb, line 41
def dump
  buf = ""
  buf << dump_comment if @comment
  buf << dump_method_def
  buf << dump_definition if @definition and !@definition.empty?
  buf << dump_method_def_end
  buf
end

Private Instance Methods

dump_definition() click to toggle source
# File lib/xsd/codegen/methoddef.rb, line 64
def dump_definition
  format(@definition, 2)
end
dump_method_def() click to toggle source
# File lib/xsd/codegen/methoddef.rb, line 52
def dump_method_def
  if @params.empty?
    format("def #{@name}")
  else
    format("def #{@name}(#{@params.join(", ")})")
  end
end
dump_method_def_end() click to toggle source
# File lib/xsd/codegen/methoddef.rb, line 60
def dump_method_def_end
  format("end")
end