Current Path : /usr/local/lib/ruby/1.8/xsd/codegen/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/lib/ruby/1.8/xsd/codegen/methoddef.rb |
# XSD4R - Generating method definition code # Copyright (C) 2004 NAKAMURA, Hiroshi <nahi@ruby-lang.org>. # This program is copyrighted free software by NAKAMURA, Hiroshi. You can # redistribute it and/or modify it under the same terms of Ruby's license; # either the dual license version in 2003, or any later version. require 'xsd/codegen/gensupport' require 'xsd/codegen/commentdef' module XSD module CodeGen class MethodDef include GenSupport include CommentDef attr_accessor :definition def initialize(name, *params) unless safemethodname?(name) raise ArgumentError.new("name '#{name}' seems to be unsafe") end @name = name @params = params @comment = nil @definition = yield if block_given? end 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 def dump_method_def if @params.empty? format("def #{@name}") else format("def #{@name}(#{@params.join(", ")})") end end def dump_method_def_end format("end") end def dump_definition format(@definition, 2) end end end end