Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Railtieでpluginを作ろう!
Search
onunu
August 24, 2017
Technology
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Railtieでpluginを作ろう!
Meguro.rb #6の発表資料です
onunu
August 24, 2017
More Decks by onunu
See All by onunu
othlotech
onunu
1
3.3k
ビッグデータと機械学習の狭間で -データエンジニアに求められる役割-
onunu
5
1.4k
Railsと考えるデータベースのインデックス戦略
onunu
4
1.8k
地球とSQL
onunu
2
640
Other Decks in Technology
See All in Technology
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
410
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
140
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
110
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
1.2k
enechainの内製セルフサービスプラットフォーム
hiyosi
0
150
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
250
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
210
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
890
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
140
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
310
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.5k
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Scaling GitHub
holman
464
140k
Google's AI Overviews - The New Search
badams
0
1.6k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Deep Space Network (abreviated)
tonyrice
0
300
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Transcript
Railtieで Rails pluginを 作ろう! In Meguro.rb #6 @onunu
Hello! おぬま りく@onunu SQLを書く仕事を してます:) Twitter: @onunu_ Github: onunu
1. Railtieってなに? (読み方がよくわかってない )
Railtieってなに? ◎ Rails公式のプラグイン機構 ◎ Railtieに基づいてコンポーネントを作ることで ◎ Railsの様々な処理を ◦ 変更したり ◦
拡張することができる Railties – Gluing the Engine to the Rails Railties is responsible for gluing all frameworks together. https://github.com/rails/rails/tree/master/railties
Railtieってなに? -Railtieでできること- ◎ 初期化処理(initializer) ◎ ジェネレータ(rails generate **) ◎ Rakeタスク
◎ 各種設定(config)
2. (よくわかってないけど) Railtieすごい
RailsはRailtieによって管理されている! よくある config/application.rb さまざまなgemのRailtie を requireしている
RailsはRailtieによって管理されている! Applicationクラスは Railtieクラスをもとに 作られている Rails::Application はRailtieのサブクラスだっ たんだなぁ Perfect Ruby on
Railsでの解説
3. Rails pluginを作ってみる
Rails pluginを作ってみる Railsのpluginとしてgemを作る時, 以下のいずれかになる ◎ Railtie <- 今回説明するやつ ◎ Engine
◎ MountableEngine 上から順にRails本体の処理に近い(雑)
Rails pluginを作ってみる -Railtieでinitializerを拡張する- 作成したpluginでRails::Railtieのサブクラスを作り ます。 サンプルでぼく謹製のgemを見てみます。 Rails::Railtieを継承したクラスで, Initializerメソッドに ブロックでコードを渡す
Rails pluginを作ってみる -Railtieでrakeも拡張する- RailtieでRakeタスクも定義できる rake_tasksメソッド内のブロックで Rakefileをloadすればよい
Rails pluginを作ってみる -Railtieでrakeも拡張する- Rails標準のタスクたちと 一緒に表示される
Rails pluginを作ってみる -Railtieでgeneratorも拡張する- generatorブロックで実行するコードを requireする
Rails pluginを作ってみる -Railtieでgeneratorも拡張する- generatorは rails generate generatorで生成される ものと同じものを作ればよい Generatorクラスに実装した メソッドが上から順に実行される
Rails pluginを作ってみる -Railtieでgeneratorも拡張する- generatorといいつつ、何をしてもよい ※ 何らかの引数を与える必要がある
4. まとめ
まとめ Rails pluginを作るにはRailtieを使いたい ◎ Railtieを使うと、 ◦ Railsの機能を活かしつつ ◦ Railsを拡張/変更できる
まとめ Engine/MountableEngineはなんだったの? ◎ よりアプリケーションに近い拡張ができる ◦ gemでありながらルーティングを追加したり ◦ Controller/Model/Viewなどを独自に追加できる ◎ このへんの話はまた今度:)
まとめ Railsで「うーん:(」ということがあったら Railtieを使えば 簡単に改善できるかも!
まとめ 宣伝 EncryptedSecretsを いい感じに扱うgemを作ったよ:) Leml - Merge your yaml to
rails secrets, and it encrypted only leaf - https://github.com/onunu/leml
Rails pluginを作れば Railsの理解が深まる
ご静聴ありがとうございました!