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
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.1k
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
550
Other Decks in Programming
See All in Programming
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
5.4k
Vibe codingでおすすめの言語と開発手法
uyuki234
0
180
dchart: charts from deck markup
ajstarks
3
960
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
170
Data-Centric Kaggle
isax1015
2
530
Deno Tunnel を使ってみた話
kamekyame
0
320
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
490
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
250
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
160
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
140
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
3
1.6k
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
790
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
150
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
160
For a Future-Friendly Web
brad_frost
180
10k
How to Ace a Technical Interview
jacobian
281
24k
Tell your own story through comics
letsgokoyo
1
780
Practical Orchestrator
shlominoach
190
11k
Claude Code のすすめ
schroneko
67
210k
How to build a perfect <img>
jonoalderson
1
4.8k
Git: the NoSQL Database
bkeepers
PRO
432
66k
What the history of the web can teach us about the future of AI
inesmontani
PRO
0
400
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
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͔ΒΓ͑Λ ݕ౼ग़དྷΔ΄ͲʮίϨ͍͍͍͢͝ʂʯͱ͍͏ ܾఆଧతͳͷͳ͔ͬͨҹ… • ղੳ͕ମײతʹͪΐͬͱ͚͔ͩͬͨͷͰɺ ϧʔϧॾʑ͕ॆ࣮͖ͯͨ͠Β Ұͭͷબࢶͱͯ͠ΞϦ͔ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠