Slide 109
Slide 109 text
Define mruby Classes
func NewR2D2(table map[string]*gobotR2D2.Driver, mrb *mruby.Mrb)
*r2d2 {
droids := r2d2{
table: table,
}
class := mrb.DefineClass("R2D2", nil)
_, err := mrb.LoadString(`
class R2D2
attr_accessor :name
end
`)
class.DefineMethod("initialize", droids.Initialize, mruby.ArgsReq(1))
class.DefineMethod("dome", droids.Dome, mruby.ArgsReq(1))
class.DefineMethod("tripod", droids.Tripod, mruby.ArgsReq(0))
class.DefineMethod("bipod", droids.Bipod, mruby.ArgsReq(0))
class.DefineMethod("macro", droids.Macro, mruby.ArgsReq(1))
class.DefineMethod("move", droids.Move, mruby.ArgsReq(2))
return &droids
}