diff options
Diffstat (limited to 'cpp/src/Slice/RubyUtil.cpp')
-rw-r--r-- | cpp/src/Slice/RubyUtil.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/cpp/src/Slice/RubyUtil.cpp b/cpp/src/Slice/RubyUtil.cpp index 839c04a370c..3a91b2b9184 100644 --- a/cpp/src/Slice/RubyUtil.cpp +++ b/cpp/src/Slice/RubyUtil.cpp @@ -367,7 +367,18 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p) _out.dec(); _out << nl << "end"; // End of mix-in module for class. - if(!p->isInterface()) + if(p->isInterface()) + { + // + // Class. + // + _out << nl << "class " << name; + _out.inc(); + _out << nl << "include " << name << "_mixin"; + _out.dec(); + _out << nl << "end"; + } + else { // // Class. @@ -535,7 +546,7 @@ Slice::Ruby::CodeVisitor::visitClassDefStart(const ClassDefPtr& p) _out << nl << "end"; _classHistory.insert(scoped); // Avoid redundant declarations. - _out << sp << nl << "T_" << name << ".defineClass(" << (p->isInterface() ? string("nil") : name) << ", " + _out << sp << nl << "T_" << name << ".defineClass(" << name << ", " << (p->isAbstract() ? "true" : "false") << ", "; if(!base) { |