* Added command line tool example similar to 'sopranocmd'
[kdebindings.git] / ruby / krossruby / rubymodule.h
blob0657d93f9bc0e4381dea7a055f2627fa3241e8c0
1 /***************************************************************************
2 * rubyinterpreter.cpp
3 * This file is part of the KDE project
4 * copyright (C)2005 by Cyrille Berger (cberger@cberger.net)
5 * copyright (C)2006 by Sebastian Sauer (mail@dipe.org)
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 * You should have received a copy of the GNU Library General Public License
16 * along with this program; see the file COPYING. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 ***************************************************************************/
21 #ifndef KROSS_RUBYRUBYMODULE_H
22 #define KROSS_RUBYRUBYMODULE_H
24 #include "rubyconfig.h"
25 #include <kross/core/krossconfig.h>
26 //#include "../core/object.h"
27 //#include "../core/module.h"
29 #include <QString>
30 #include <QObject>
32 namespace Kross {
34 class RubyExtension;
35 class RubyModulePrivate;
37 /**
38 * A ruby module.
39 * @author Cyrille Berger
41 class RubyModule : public QObject {
42 public:
44 /**
45 * Constructor.
47 * @param parent The parent QObject. This \a RubyModule instance will
48 * be destroyed if the parent QObject got destroyed.
49 * @param object The QObject instance this extension provides access to.
50 * @param modname The name the module will be published as.
52 RubyModule(QObject* parent, QObject* object, const QString & modname);
54 /**
55 * Destructor.
57 ~RubyModule();
59 /**
60 * \return the \a RubyExtension instance used for this module.
62 RubyExtension* extension() const;
64 private:
66 /**
67 * This function will catch functions that are undefined.
69 static VALUE method_missing(int argc, VALUE *argv, VALUE self);
71 private:
72 /// Private d-pointer.
73 RubyModulePrivate * const d;
74 /// Unwanted copy-ctor.
75 RubyModule(const RubyModule&);
80 #endif