DRY descriptorファイルの情報量削減。

Widgetの情報やらページの情報をdescriptorファイルやmigrationファイルに書くのはDRYに反する(ActionControllerの定義とdescriptor定義で重複する部分がある、ということで

class HogeWidgetController < ActionController::Base
   is_widget {:display_name => ..., :permissions => ...}
end

や、

class HogePageController < ActionController::Base
   is_page {:display_name => ..., :permissions => ...}
end

でかけるようにする。descriptorファイルから widgets や pages メソッドの定義を除く。
ただし、リクエストごとにファイルを検査していては性能上問題があるので、コンポーネントインストール時に *_controller.rbを検出して、is_widget/is_pageの部分をDBにinsert/update書けるようにしないとだめ。