void Slice::Ruby::CodeVisitor::writeConstructorParams(const MemberInfoList& members) { for(MemberInfoList::const_iterator p = members.begin(); p != members.end(); ++p) { if(p != members.begin()) { _out << ", "; } _out << p->lowerName << "="; const DataMemberPtr member = p->dataMember; if(member->defaultValueType()) { writeConstantValue(member->type(), member->defaultValueType(), member->defaultValue()); } else { _out << getInitializer(member->type()); } } }
string Slice::getDataMemberRef(const DataMemberPtr& p) { string name = fixKwd(p->name()); if(!p->optional()) { return name; } if(BuiltinPtr::dynamicCast(p->type())) { return "*" + name; } else { return "(*" + name + ")"; } }