Lokkaプラグインのgemとi18nを本体から分離してみた

プラグインで使用するgemとi18nについて、本体から分離するコードを追加してみました。この修正によりAPP_ROOT/public/plugin/lokka-*/GemfileおよびAPP_ROOT/public/plugin/lokka-*/i18nプラグイン固有の設定を追加することができます。

プラグインで使用するgem

プラグインにGemfileがある場合、それらを読み込むようAPP_ROOT/Gemfileを修正しました。

Dir["public/plugin/lokka-*/Gemfile"].each do |path|
  File.open(path) do |f|
    f.lines.each do |line|
      eval(line)
    end
  end
end

プラグインi18n

プラグインi18nディレクトリがある場合、それを追加するようAPP_ROOT/lib/lokka/app.rbを修正しました。

if File.exist? plugin_i18n = File.join(paths[0], paths[1], paths[2], 'i18n')
  if (s = File.stat plugin_i18n) && s.directory?
    R18n.extension_places << R18n::Loader::YAML.new(plugin_i18n)
  end
end

余談

GitHubにおいて、ファイル単位でfork元にpull requestを送れないのだろうか...コミット単位なのかな。