class Soybean::Generators::ClassGenerator

Public Instance Methods

def_attr(attrname, writable = true, varname = nil) click to toggle source
# File lib/soybean/generators/class_generator.rb, line 5
def def_attr(attrname, writable = true, varname = nil)
  unless safevarname?(varname || attrname)
    raise ArgumentError.new("#{varname || attrname} seems to be unsafe")
  end
  @attrdef << [attrname, writable, varname]
end
def_classvar(var, value) click to toggle source
# File lib/soybean/generators/class_generator.rb, line 12
def def_classvar(var, value)
  var = var.sub(/\A@@/, "")
  unless safevarname?(var)
    raise ArgumentError.new("#{var} seems to be unsafe")
  end
  @classvar << [var.underscore, value]
end
def_method(name, *params) click to toggle source
Calls superclass method
# File lib/soybean/generators/class_generator.rb, line 20
def def_method(name, *params)
  return if name == 'initialize'
  super name, *params
end
dump() click to toggle source
# File lib/soybean/generators/class_generator.rb, line 25
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_class_def
  spacer = false
  unless @classvar.empty?
    spacer = true
    buf << dump_classvar
  end
  unless @const.empty?
    buf << dump_emptyline if spacer
    spacer = true
    buf << dump_const
  end
  unless @innermodule.empty?
    buf << dump_emptyline # always add 1 empty line
    spacer = true
    buf << dump_innermodule
  end
  unless @code.empty?
    buf << dump_emptyline if spacer
    spacer = true
    buf << dump_code
  end
  unless @attrdef.empty?
    buf << dump_emptyline if spacer
    spacer = true
    buf << dump_attributes
  end
  buf << accessors
  unless @methoddef.empty?
    buf << dump_emptyline if spacer
    spacer = true
    buf << dump_methods
  end
  buf << dump_class_def_end
  buf << dump_package_def_end(package) unless package.empty?
  buf.gsub(/^\s+$/, '')
end

Private Instance Methods

accessors() click to toggle source
# File lib/soybean/generators/class_generator.rb, line 83
def accessors
  @attrdef.map do |attrname, writeable, varname|
    format("soap_attribute #{varname.to_sym.inspect}\n", 2)
  end.join
end
dump_attribute(attrname, writable, varname) click to toggle source
# File lib/soybean/generators/class_generator.rb, line 89
def dump_attribute(attrname, writable, varname)
  ""
end
dump_attributes() click to toggle source
# File lib/soybean/generators/class_generator.rb, line 93
def dump_attributes
  ""
end
dump_class_def() click to toggle source
# File lib/soybean/generators/class_generator.rb, line 73
def dump_class_def
  name = @name.to_s.split(/::/)
  if @baseclass
    "class #{name.last} < #{@baseclass}\n"
  else
    "class #{name.last}\n" <<
        "  include Soybean::ComplexType\n\n"
  end
end