Hi, Yehuda, thank you for your efforts in taking this deep research.
I'm all for it to reduce dependencies among packages. I'm currently
(started some months ago, but I read some bits once and then) reading
"Clean Code" from Robert C. Martin and there are great advices there,
although it is very Java centric and there are better patterns for doing
some of the examples in Ruby...
One of its advices, as well as of many other authors on the same
subject, is to reduce coupling between classes, which also extends for
packages. The more we isolate them, more we promote software reuse.
If my opinion matters at all, I would say to go with it.
I remember sometime ago I would like to have a framework for non-web
applications that were Rails-like. I wanted ActiveRecord, the generators
and file tree structure, as well as tests and ActiveSupport. But I
didn't want anything related to the web, like Rack, ActionPack, etc.
Maybe Rails could move into this direction some day... At that time I
was planning to start a traffic simulation system...
Cheers!
Rodrigo.
Em 17-07-2011 02:53, Yehuda Katz escreveu:
A few days ago, I tried to use ActionView as a standalone dependency
of something I was writing. I ended up abandoning that attempt due to
the number of unrelated dependencies of the actionpack gem, which
ActionView is a part of:
$ gem dependency actionpack
Gem actionpack-3.1.0.rc1
activemodel (= 3.1.0.rc1)
activesupport (= 3.1.0.rc1)
builder (~> 3.0.0)
erubis (~> 2.7.0)
i18n (~> 0.6.0beta1)
rack (~> 1.3.0.beta2)
rack-cache (~> 1.0.1)
rack-mount (~> 0.8.1)
rack-test (~> 0.6.0)
sprockets (~> 2.0.0.beta.5)
tzinfo (~> 0.3.27)
* /activemodel/ is used for ActiveModel::Naming for a few, mostly
optional aspects of ActionPack related to automatically
converting an ActiveModel compliant object into a key for params
and routing. It uses only two methods of ActiveModel
(ActiveModel::Naming.route_key and
ActiveModel::Naming.param_key). *I think we should remove this
dependency*, as the point of the ActiveModel API refactor in
Rails 3 was to allow *any* object to work in AP. Additionally,
only a few areas of the code use even the ActiveModel API.
* /rack /is not used in ActionView *at all*.
* /rack-cache /is not used in ActionView *at all*.
* /rack-mount /is not used in ActionView *at all*.
* /rack-test /is not used in ActionView *at all*. It is used only
in ActionDispatch, and only in test helpers.
* /sprockets/ is used in ActionView, but only optionally, if asset
compilation is desired.
* /tzinfo /does not seem to be used at all except in a test
The short version is that ActionDispatch and ActionController use a
lot of the dependencies, but ActionView does not.
I would like to propose that we break out ActionView into its own gem
with only a few dependencies, and make ActionPack depend on it.
Yehuda Katz
Chief Technologist | Strobe
(ph) 718.877.1325 <tel:718.877.1325>
--
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.