0. 公式チュートリアルの雛形を使ってみる
Plugin Tutorialを参考に
railsスクリプトでプラグインのジェネレータが使えます。
こちらを使って雛形を作ります。
IDは "redmine_issue_stamps" で
かならずしも "redmine_xxxx_xxxx" のIDにする必要は無いです
GitHubに公開した時に、redmine_xxxx という名前のほうが Redmine関連のソースコードだ と理解してもらいやすいので、そのようにしています
code:bash
redmine-3.4.4 $ bundle exec ruby bin/rails generate redmine_plugin redmine_issue_stamps
create plugins/redmine_issue_stamps/app
create plugins/redmine_issue_stamps/app/controllers
create plugins/redmine_issue_stamps/init.rb
create plugins/redmine_issue_stamps/config/routes.rb
create plugins/redmine_issue_stamps/config/locales/en.yml
create plugins/redmine_issue_stamps/test/test_helper.rb
# 出来上がったディレクトリを確認
redmine-3.4.4 $ tree plugins/redmine_issue_stamps/
plugins/redmine_issue_stamps/
├── README.rdoc
├── app
│ ├── controllers
│ ├── helpers
│ ├── models
│ └── views
├── assets
│ ├── images
│ ├── javascripts
│ └── stylesheets
├── config
│ ├── locales
│ │ └── en.yml
│ └── routes.rb
├── db
│ └── migrate
├── init.rb
├── lib
│ └── tasks
└── test
├── fixtures
├── functional
├── integration
├── test_helper.rb
└── unit
20 directories, 5 files
モデルやコントローラーは無くても出来上がります
plugin generatorを使って作成してみました。
この状態でRedmineを(再)起動させてみます。
code:bash
redmine-3.4.4 $ bundle exec rails s
=> Booting WEBrick
=> Run rails server -h for more startup options
=> Ctrl-C to shutdown server
起動後、localhost:3000 にアクセスします。
https://gyazo.com/9508ca5f46d9ad1ecc8a6aa90ec6ff42
code:ruby
Started GET "/admin/plugins" for ::1 at 2018-06-05 06:05:18 +0900
Processing by AdminController#plugins as HTML
Rendered admin/plugins.html.erb within layouts/admin (4.1ms)
Rendered admin/_menu.html.erb (3.9ms)
データが登録されたか確認してみます
登録されているようです
code:ruby
redmine-3.4.4 $ bin/rails console
Loading development environment (Rails 4.2.8)
irb(main):001:0> plugin = Redmine::Plugin.all.first
irb(main):004:0> plugins = Redmine::Plugin.all
irb(main):005:0> plugins.each do |plugin|
irb(main):006:1* puts plugin.id
irb(main):007:1> end
redmine_issue_stamps # 登録されてます!
redmine_issue_templates
irb(main):008:0>
最初のコミット&登録
簡単に init.rb を修正して、GitHubに登録してみました!
ソースの作り込みはこれから!
https://gyazo.com/106542f67cfebdbc08f286d56c7c960d
generate redmine_plugin はどこで定義されてるの?
bin/rails には、これくらいしか書かれていません。
code:ruby
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require 'rails/commands'
実際にはこちらで定義。
code:bash
redmine-3.4.4 $ tree lib/generators/redmine_plugin
tree lib/generators/redmine_plugin
lib/generators/redmine_plugin
├── USAGE
├── redmine_plugin_generator.rb
└── templates
├── README.rdoc
├── en_rails_i18n.yml
├── init.rb.erb
├── routes.rb
└── test_helper.rb.erb
1 directory, 7 files