On Wed, May 20, 2009 at 19:30, Michael Schuerig <[email protected]> wrote:
> Hold your horses. Rails having no public API is a mis-statement of a > very real shortcoming. As you point out, a public Application PI is > there indeed. What's missing is a defined interface for people extending > or otherwise hacking Rails. There are two ways of thinking about what's an API: 1. bunch of methods declared `public` which have some RDoc documentation so they appear on api.rubyonrails.org; 2. an interface with strong conventions and multiple layers where each layer corresponds to one field of usage (Rails users, framework plugins/extensions, and component internals) and where there's some guarantee that some API will exist at least until version X.Y. The problem with Rails versions up to now is there was no guarantee. Versions 2.0 -> 2.1 -> 2.2 -> 2.3 have given and taken methods away mercilessly, and people who wrote ActionPack hacks or ActiveRecord associations plugins felt that hard. Yehuda Katz once said that Rails thought in the old days that they don't need no extensions API, everyone can monkeypatch everything. Time has shown that this is not true; you cannot inject a feature with a monkeypatch if a target method is gone/renamed/moved in the next release. So this is what I think activists are talking about when they say "public API": guarantee. Some level of security. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
