2. Who am I?
• id:karupanerura (twitter/github/hatena/etc..)
• Perl/Swift/C/Java/JavaScript/etc…
• Web/iOS/Android Engineer
• Mobile Factory, Inc.
• Lead Engineer
4. What is mruby?
• Lightweight implementation of the Ruby
language.
• mRuby has a high compatibility with Ruby.
• Used for embedded.
• Binary size: 766.6[kb] (mruby-1.1.0)
8. Example: low-level API
use mRuby;
my $mrb = mRuby::State->new();
my $st = $mrb->parse_string('1 + 2 + 3 + 4 + 5');
my $proc = $mrb->generate_code($st);
my $ret = $mrb->run($proc);
say $ret; # => 15
9. Example: high-level API
use mRuby;
my $mruby = mRuby->new(src => '1 + 2 + 3 + 4 + 5');
my $ret = $mruby->run();
say $ret; # => 15
10. Example: funcall API
use mRuby;
my $mruby = mRuby->new(src => q{
def add(l, r)
l + r
end
});
my $ret = $mruby->funcall(add => 1, 2);
say $ret; # => 3
my $ret2 = $mruby->funcall(add => 3, 4);
say $ret2; # => 7