RubyInlineの続き
あぁ、RubyInlineでメソッド定義した後に
module_functionでメソッド指定してあげればモジュールメソッドを定義できました。
require 'inline' module World inline do |builder| builder.c <<-CODE VALUE hello(){ return rb_str_new2("Hello,World!"); } CODE end module_function :hello end puts World.hello # => Hello,World!
えぇと、RubyInlineでメソッドを生やした後に
privateメソッドで"メソッドを指定してやれば"変更できたし。
require 'inline' class World def hello2 hello end inline do |builder| builder.c <<-CODE VALUE hello(){ return rb_str_new2("Hello,World!"); } CODE end private :hello end puts World.new.hello2 # => "Hello,World!" puts World.new.hello # => (NoMethodError)