Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Rails8 scripts generatorͷհ ͱͦΕʹ·ͭΘΔGemΛ࡞ͬͨ Omotesando.rb #104 @hatsu_38 2025/01/09
Slide 2
Slide 2 text
ࣗݾհ • Twitter: @hatsu_38 • GitHub: @hatsu38 • SHE Inc. • Rubyྺ 5 = ΤϯδχΞྺ • React.js / TypeScript / GitHub Actions • Ruby͕Ұ൪͖
Slide 3
Slide 3 text
Rails8͔ΒՃ͞Εͨ scriptϑΥϧμ͍ͬͯ·͢ʁ
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
https://discuss.rubyonrails.org/t/is-there-any-of fi cial-way-to-organize-one-off-scripts/74186
Slide 6
Slide 6 text
OneTime(Ұ͖Γ)ͷscriptͷஔ͖ͷ՝ • ࠓ·ͰRailsެࣜͰఏڙ͍ͯ͠ΔOneTimeઐ༻ͷscriptͷஔ͖ͳ͔ͬͨ • OneTimeͷεΫϦϓτlib/tasks/* ʹஔ͍ͯӡ༻͞Ε͍ͯΔέʔεଟ͍ • migrateͷͨΊͳΒdata_migrate gemmaintenance_tasks gemͷखஈ͋Δ • ͨͩlib/tasks/*ʹԿ࣮ߦ͞ΕΔScriptͳͲઃஔ͞Ε͍ͯΔ
Slide 7
Slide 7 text
OneTime(Ұ͖Γ)ͷscriptͷஔ͖Ͳ͕͍͍͜ʁ • Ұ͔͠Θͳ͍scriptɺෳճ࣮ߦ͠ͳ͍͜ͱΛ໌ࣔ͢ΔͨΊʹผϑΥϧμʹ͓͍ ͓͖͍ͯͨ • DHHͷBasecampͰɺscript/migrate/* ͷΑ͏ͳϑΥϧμʹཧ͍ͯ͠Δ • ଞʹscript/benchmarks/* script/ops/* ͷΑ͏ͳͷΛ࡞ͬͯͨΓ͢Δ
Slide 8
Slide 8 text
https://github.com/rails/rails/pull/52335
Slide 9
Slide 9 text
bin/rails generate script my_script • script/my_script.rb ͕ੜ͞ΕΔ • cat script/my_script.rb • த͍͢͝γϯϓϧ
Slide 10
Slide 10 text
scriptϑΥϧμͷ͍ํͷྫ • ruby script/my_script.rb "1" "
[email protected]
"
Slide 11
Slide 11 text
script folderͷഎܠ͍ํҎ্
Slide 12
Slide 12 text
αʔόʔʹೖ࣮ͬͯߦͱ͔ݏͩͳ͊💭
Slide 13
Slide 13 text
࣮ߦ݁ՌཤྺͰͱ͓͖͍ͬͯͨͳ💭
Slide 14
Slide 14 text
GemΛ࡞ͬͯΈͨ💡 https://github.com/hatsu38/scriptor
Slide 15
Slide 15 text
scriptϑΥϧμʹ͋ΔϑΝΠϧҰཡΛϒϥβͰӾཡͰ͖Δ
Slide 16
Slide 16 text
scriptϑΥϧμʹ͋ΔϑΝΠϧΛϒϥβͰӾཡͰ͖Δ
Slide 17
Slide 17 text
ϒϥβ͔Βscriptͷίʔυͷ࣮ߦ͕Ͱ͖Δ/࣮ߦཤྺ͕Δ
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
scriptorͷಋೖ • bundle add scriptor • bin/rails generate scriptor:install • con fi g/routes.rbʹ `mount Scriptor::Engine => “/scriptor"` ͕Ճ͞ΕΔ • db/migrations/****_create_scriptor_executions.scriptor.rb ͕ੜ͞ΕΔ
Slide 20
Slide 20 text
Rails8 scriptϑΥϧμͷհͱ Scriptor gemͷհͰͨ͠💡