Time to Read

1分

Padrino Frameworkで、カスタムクラスなどを規約と外れた場所に置きたい場合。

以下のファイルパスは「Padrino.root」からの相対パスと考えてほしい。基本的に、 config/boot.rb に起動前/起動直後フックを書くことができる。

lib 以下に置きたい

実は最近のPadrinoは、 lib/**/*.rb を自動的にロードしてくれる。なので何も考えずに置いとけば良い。

app/hoge 以下に置きたい

config/boot.rb の中の Padrino.before_load で設定。Padrino.require_dependencies を宣言するだけ。

おまじない的に Padrino.set_load_paths もしとくといいんじゃないかな。

1
2
3
4
5
6
7
##
# Add here your before load hooks
#
Padrino.before_load do
  Padrino.require_dependencies(Padrino.root + "/app/hoge/**/*.rb")
  Padrino.set_load_paths(Padrino.root + "/app/hoge")
end

config/initializers/*.rb を最後にロードしたい

Padrino.after_load に書けば確実に最後に読み込んでくれる。

1
2
3
4
5
6
##
# Add here your after load hooks
#
Padrino.after_load do
  Padrino.require_dependencies(Padrino.root + "/config/initializers/**/*.rb")
end

この場合、 $LOAD_PATH はいじられない。