Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RubyでPrettierを使ってみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
fuqda
December 27, 2020
Programming
0
360
RubyでPrettierを使ってみた
Tama.rb #25 年忘れLT会の発表資料です。
fuqda
December 27, 2020
Tweet
Share
More Decks by fuqda
See All by fuqda
Composition API時代の Pub/Subパターンでの状態管理
fuqda
4
3.9k
RSpecによるOpen API自動テスト
fuqda
3
1.2k
OSSへの プルリクエスト作成の手引き
fuqda
1
330
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
210
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
fuqda
1
1.1k
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.3k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
610
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
560
Other Decks in Programming
See All in Programming
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.5k
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
並行開発のためのコードレビュー
miyukiw
0
320
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
Package Management Learnings from Homebrew
mikemcquaid
0
230
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
170
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
140
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
220
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
330
Writing Fast Ruby
sferik
630
62k
Producing Creativity
orderedlist
PRO
348
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
RailsConf 2023
tenderlove
30
1.3k
Abbi's Birthday
coloredviolet
1
4.8k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
56
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Transcript
RubyͰPrettierΛ ͬͯΈͨ Tama.rb #25 ΕLTձ 2020.12.27@fuqda90
About me fuqda (;ͩ͘) • 201711݄ʙݱࡏ ීஈܙൺणपลͰ RubyΛॻ͍ͯΛ৯ͯ·͢ɻ Twitter :
ˏfuqda90
͜͜࠷ۙɺ RubyͰPrettierΛ ͏ͷ͕Ұ෦ͷؒͰ Γ্͕͍ͬͯΔͦ͏
ͱ͍͏Θ͚Ͱʂ ࣮ࡍʹࢼͭͭ͠ɺ ͲΜͳײ͡ͳͷ͔ͷ ڞ༗ΛΏΔ͘͠Α͏͔ ͱࢥ͍·͢
ࠓճ͓͢Δ͜ͱ • Prettierͦͷͷͷ • ओͳઃఆपΓͷ • ܰ͘৮ͬͨॴײతͳ
ࠓճ͓͠ͳ͍͜ͱ • ࣮ӡ༻తͳ (ӡ༻தͷαʔϏεʹద༻ͯ͠ͳ͍ͷͰ) • RubyCopͱͷൺֱతͳಥͬࠐΜͩ
࣍ ɾͦͦPrettierͬͯʁ ɾRubyͰPrettierΛ͏ํ๏ ɾͬͯΈͨॴײ
࣍ ▶︎ ͦͦPrettierͬͯʁ ɾRubyͰPrettierΛ͏ํ๏ ɾͬͯΈͨॴײ
Prettier • Node.jsͰಈ࡞͢ΔίʔυϑΥʔϚολʔ • Rubyք۾ͩͱRuboCopతͳΞϨ • ֤छIDEͰ֦ுػೳ͔Βར༻Մ • 2020/12/11 ʹruby
plugin v1.0͕ϦϦʔε
࣍ ɾͦͦPrettierͬͯʁ ɾRubyͰPrettierΛ͏ํ๏ ɾͬͯΈͨॴײ
࣍ ɾͦͦPrettierͬͯʁ ▶︎ RubyͰPrettierΛ͏ํ๏ ɾͬͯΈͨॴײ
gem ‘prettier’ ΛೖΕΔ Auto correct ίϚϯυɿ bundle exec rbprettier --write
‘**/*.rb’ ઃఆͷมߋํ๏ɿ .prettierrc ʹఆٛΛՃ ※ ͦͷଞ npm / yarnͰ @prettier/plugin-ruby ͷ ϓϥάΠϯͰରԠՄೳ
⚠ҙ Rubyɿ2.5~ Nodeɿ8.3~ ※2020࣌ ϨΨγʔؾຯͳϓϩδΣΫτ ͩͱ͑ͳ͍ͷͰҙ
.prettierrc ͷઃఆ ྫ1) มల։ͷͳ͍߹ͷγϯάϧΫΥʔτ { "rubySingleQuote": true } -str =
"จࣈྻ" +str = 'จࣈྻ'
.prettierrc ͷઃఆ ྫ2) จࣈྻɾγϯϘϧྻϦςϥϧͷਪ { "rubyArrayLiteral": true } -beatles =
["john", "paul", "george", "ringo"] +beatles = %w[john paul george ringo] -nirvana = [:kurt, :kris, :dave] +nirvana = %i[kurt kris dave]
.prettierrc ͷઃఆ ྫ3) ϋογϡϩέοτͷඇਪ { "rubyHashLabel": true } -{ :’radio_name'
=> 'ϋογϡϩέοτେ͖' } +{ ‘radio_name’: 'ϋογϡϩέοτେ͖' }
ͦͷଞͷઃఆެࣜΛࢀর
࣮ԋͯ͠ΈΔ
࣍ ɾͦͦPrettierͬͯʁ ɾRubyͰPrettierΛ͏ํ๏ ɾͬͯΈͨॴײ
࣍ ɾͦͦPrettierͬͯʁ ɾRubyͰPrettierΛ͏ํ๏ ▶︎ ͬͯΈͨॴײ
ྑͦ͞͏ͳͱ͜Ζ • RuboCopΑΓ(ؾ࣋ͪ΄Μͷগ͠)ͦ͏ • Prettier͕ೖ͍ͬͯΕɺ ผ్gemΛೖΕͳͯ͑͘Δͷศར✨
ؾʹͳͬͨͱ͜Ζʙͦͷ1ʙ • ↓Auto correctͨ͠ࡍʹίϯιʔϧʹ ࣮ߦ࣌ؒͷΈग़ͯɺԿͷϧʔϧʹҾֻ͔ͬͬͯमਖ਼͞Εͨ ͷ͔ग़ͯ͜ͳ͍ͪΐͬͱؾʹͳͬͨ… $ bundle exec rbprettier
--write 'prettier.rb' prettier.rb 370ms • JS༻ͷPrettierΛRubyʹస༻ͨ͠ͷͳͷͰ ͨΓલ͚ͩͲRubyʹ͚ͨϧʔϧ͕গͳ͍ʁ (RuboCop΄Ͳϧʔϧ͕ॆ࣮ͯ͠ͳ͍)
ؾʹͳͬͨͱ͜Ζʙͦͷ2ʙ • ઃఆΦϓγϣϯΛௐ͍ͨͱ͖ʹ Prettier for Ruby ͷϖʔδͱ Prettier ࣗମͷϖʔδΛߦͬͨΓདྷͨΓ͢Δ ͷ͕໘
→Prettierࣗମͷ͜ͱެࣜΛݟͯͶʂͬͯ ֎෦ϖʔδΛͨΒ͍ճ͢ͷmʓngʓidײ͋Δ
ॴײ·ͱΊ • ݱ࣌ͩͱRuboCop͔ΒΓ͑Λ ݕ౼ग़དྷΔ΄ͲʮίϨ͍͍͍͢͝ʂʯͱ͍͏ ܾఆଧతͳͷͳ͔ͬͨҹ… • ղੳ͕ମײతʹͪΐͬͱ͚͔ͩͬͨͷͰɺ ϧʔϧॾʑ͕ॆ࣮͖ͯͨ͠Β Ұͭͷબࢶͱͯ͠ΞϦ͔ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠