mrbgemsを作ってみる方法
下記が一番分かりやすかった 5分でつくる mrbgems
- 作成するmrbgemsのディレクトリを作る, work/yournamegems とかなんでもよい
- workディレクトリにmruby持ってくる、中身のbuild_config.rbをいじるのでリンクじゃなくてgit cloneしたやつのほうが最初はいいかな
- mrubyもってきたら、mruby/build_config.rb に自分のmrbgemsの名前を記載する、例えば下記な感じ
MRuby::Build.new do |conf| ... conf.gem '../yournamegems' ... end
あとはyournamegems内にRubyスクリプトを設置するなどすればよい
例えば下記
work/yournamegems/yourname.rb
class Yourname def initialize name @name = name end def yourname puts @name end end
ふむ
# Use mrbgems # conf.gem 'examples/mrbgems/ruby_extension_example' # conf.gem 'examples/mrbgems/c_extension_example' do |g| # g.cc.flags << '-g' # append cflags in this gem # end # conf.gem 'examples/mrbgems/c_and_ruby_extension_example' # conf.gem :github => 'masuidrive/mrbgems-example', :checksum_hash => '76518e8aecd131d047378448ac8055fa29d974a9' # conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v'
みたいなのあるからこのディレクトリの中身みてみてためしてみるのがいいのかなぁ
- たとえば
# conf.gem 'examples/mrbgems/ruby_extension_example'
のところ - 中身のrbスクリプトが下記
class RubyExtension def RubyExtension.ruby_method puts "A Ruby Extension" end end
> RubyExtension.ruby_method A Ruby Extension => nil
というわけで下記のようにdefを追加して
class RubyExtension def RubyExtension.ruby_method puts "A Ruby Extension" end def extraYK puts "extra define from yk" end end
下記のようにmirbで実行することもできる(追加したらコンパイルが必要、たぶん)
> y = RubyExtension.new => #<RubyExtension:0x10c4254b0> > y.extraYK extra define from yk => nil >