Ruby mixin
September 3, 2008 Leave a comment
Like many other programmers I wish I had started learning Ruby when it was created, all the more so for the demand for broad programming skills now. I started using NetBeans 6.1 which made JRuby programming easier. I started to look at some example code written in other languages and write equivalent Ruby code. If you have good programming experience ( Updated : Hope it is not the Kruger-Dunning effect :-)then you can start with fairly complex code when learning a new language.
The example is JavaScript event code that can be mixed-in with other code. Actually I came across many powerful features of JavaScript when I programmed using RhinoScript recently.
I hope to update the code but as of now I have the skeleton below. I wouldn’t be able to explain everything because this is my first serious piece of Ruby code. I will try to use this “mixin” code along with other code.
-
Updated : Used a module. Exploring how to write proper test code.
event_mixin_module.rb
module EventMixinModule
$listeners
EventManager = { "notify" => proc {
puts "notify"
if ( nil == defined?($listeners) )
puts "No listeners registered"
end
puts $listeners
},
"listen" => proc {
|listen|
puts "listen"
$listeners = listen || [];
}
}
puts EventManager["listen"].call( "listener" )
#puts EventManager["notify"].call
end
domain_object.rb
require "event_mixin_module"
class DomainObject
include EventMixinModule
def initialize
puts "DomainObject"
end
def setvalue
puts "setvalue"
EventManager["notify"].call
end
end
domain_object_test.rb
require "domain_object"
class DomainObjectTest
def initialize
end
domainobject = DomainObject.new
domainobject.setvalue
end