Hi, Lately I''ve been working with external API''s and when writing tests I''ve found it extremely useful to have an abstract class (or something like a java interface) so that I can have an actual implementation for production and dev, and a dummy one that does not use the real API for tests. But since ruby does not provide abstract classes, I had to implement it throw some metaprogramming at it and use it as a mixin. I think this is clearly an overkill for something that would probably be useful for many people. Is there any better way to achieve this goal? And do you think this would be a good feature to add to rails or ruby? Regards, Luís Ferreira -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
"Luís Ferreira" <zamith.28-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote in post #1060014:> Lately I''ve been working with external API''s and when writing tests I''ve > found it extremely useful to have an abstract class (or something like a > java interface) so that I can have an actual implementation for > production and dev, and a dummy one that does not use the real API for > tests. But since ruby does not provide abstract classes, I had to > implement it throw some metaprogramming at it and use it as a mixin.You seem to be thinking like a Java programmer (or at least your brain is stuck in the land strict static typing). It''s not that Ruby "doesn''t provide abstract classes," but rather Ruby has no need strict dependence on the concept of abstract classes. Ruby is a dynamically typed language and isn''t bound by the restrictions of statically typed languages. I''m not necessarily saying that static typing is bad, I''m just saying that Ruby plays by a different set of rules. Rules that give developers a lot more freedom IMHO.> I think this is clearly an overkill for something that would probably be > useful for many people. Is there any better way to achieve this goal? > And do you think this would be a good feature to add to rails or ruby?You are solving an already solved problem. There are a number of mocking frameworks to handled exactly what you''re attempting to do on your own. Here''s just one example: http://gofreerange.com/mocha/docs/ -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.