Hi All, I am a Java developer of many years & just starting to get into Ruby (& really enjoying it!). However I am used to 'coding by contract' using interfaces. This is especially great when using dependency injection (usually via Spring). It makes testing very easy, as 'mocks' can be written simply & then plugged in. I know that there isn't an equvalent for an interface in Ruby, but is there a pattern which would typically be used? I was wondering whether to create Modules in place of my interfaces & provide them with methods which throw Exceptions, thus forcing them to be overrriden in the classes that include them? Also how does one manage dependency injection in Ruby? Is there a good framework/library/pattern typically used for this, or are there good 'Ruby reasons' not to use DI? Many thanks
on 2007-01-29 19:46
on 2007-01-29 20:10
Thee third google result for "dependency injection" is ruby-specific.
on 2007-01-29 21:28
SonOfLilit wrote: > Thee third google result for "dependency injection" is ruby-specific. For me, it's a German Wikipedia article on DI. http://de.wikipedia.org/wiki/Dependency_Injection - Phill
on 2007-01-29 23:13
Did you mean http://onestepback.org/index.cgi/Tech/Ruby/ DependencyInjectionInRuby.rdoc ? Paulo Jorge Duarte Köchpaulo.email@example.com
on 2007-01-30 00:24
Hi, I'm really new to dependency injection in general, but I hope I can help, though. I am aware of two libraries for what you want to do. Copland, first, is an Inversion of Control (IoC) container, based on the Hivemind IoC container for java. As you said, there is no interface in Ruby, so Interface based injection is not supported. However, Type 2 IoC (Setter Injection) and type 3 IoC (Constructor Injection) are supported. The second is Needle, which is a Dependency Injection container. I don't know much about it, except it supports a Service Locator mechanism. By the way, the documentations are great for both ! Read them both and make your choice ! http://needle.rubyforge.org/ http://copland.rubyforge.org/ -- Olivier Renaud Le lundi 29 janvier 2007 19:45, PerfectDayToChaseTornados a écrit :
on 2007-01-30 20:55
Thanks Guys, I'll check out Copland & Needle, anyone have any experience with either of these with Rails?
on 2007-01-30 21:38
Paulo Köch wrote: > Did you mean > http://onestepback.org/index.cgi/Tech/Ruby/Depende... ? > > Paulo Jorge Duarte Köch > firstname.lastname@example.org That didn't show up for me. Google results are depending on which data center you catch, so just saying "google, and result #X will be relevant" is a questionable technique to answer a question. -- Over by the window lie the raiment and the weapons That we need to take into this world today Armoured by opinion, with statistic and schoolboy's charm We take our place amongst the rank and file Skyclad - A Survival Campaign