-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbinding.cpp
More file actions
33 lines (27 loc) · 739 Bytes
/
binding.cpp
File metadata and controls
33 lines (27 loc) · 739 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <ctime>
#include <iostream>
#include <sstream>
#include <vector>
#include <chrono>
#include <mruby.h>
#include <mruby/compile.h>
#include <mruby/string.h>
#include <mruby/class.h>
#include "binding.h"
class ACppClass
{
public:
ACppClass() = default;
void setNumber(int n) { aNumber = n; }
int getNumber() const { return aNumber; }
private:
int aNumber = 1234;
};
mrb_value testBinding(mrb_state * mrb)
{
// Export a C++ class
auto rubyclass = mruby::bindclass<ACppClass>::it(mrb, "ACppClass");
mruby::bind<ACppClass, decltype(&ACppClass::getNumber), int>::method(mrb, rubyclass, "get", &ACppClass::getNumber);
auto ret1 = mrb_load_string(mrb, "app = ACppClass.new\n p app.get()");
return ret1;
}