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
RDoc meets YARD
Search
Masafumi Okura
August 28, 2025
Programming
310
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RDoc meets YARD
https://rubyassociation.doorkeeper.jp/events/184561
Masafumi Okura
August 28, 2025
Transcript
58 slides
RDoc meets YARD - RDocͷ YARDղੳػೳͷΈࠐΈ Ruby Association Activity Report
OKURA Masafumi, 2025-08-28
pritty_print(self) • ໊લɿେխ࢙ʢ͓͓͘Β·͞;Έʣ • ॴଐɿϑϦʔϥϯε • ׆ಈɿKaigi on RailsʢൃىਓɺνʔϑΦʔΨφΠβʔʣɺOSS׆ಈ ʢAlbaͳͲʣɺొஃʢRubyConfTw
2025, Rails World 2025, Friendly.rbͳͲʣ • ͖ͳϝιουɿ`BasicObject#instance_eval`
RDoc meets YARD
RDoc meets YARD
RDocͱ • Rubyʹඪ४ఴ͞Ε͍ͯΔʢผ్ͷΠϯετʔϧ͕ෆཁͳʣυΩϡϝ ϯςʔγϣϯπʔϧ • HTMLυΩϡϝϯτΛੜ͢Δ`rdoc`ίϚϯυͱίϚϯυϥΠϯ͔Β υΩϡϝϯτΛӾཡ͢Δ`ri`πʔϧΛಉࠝ • Ruby on
RailsͰ࠾༻͞Ε͍ͯΔଞɺRubyຊମͷυΩϡϝϯτRDoc ه๏Ͱॻ͔Ε͍ͯΔ
None
RDoc meets YARD
YARDͱ • gemͷυΩϡϝϯςʔγϣϯͳͲʹ͘ΘΕ͍ͯΔυΩϡϝϯςʔ γϣϯπʔϧ • ඪ४Ͱͳ͍ͷͰผ్Πϯετʔϧ͕ඞཁ • `@param`ͳͲΛͬͨه๏Ͱ͋Γɺಠࣗͷܕهड़Մೳ • RDocύʔε͢Δ͜ͱ͕Ͱ͖Δ
• ݸਓతʹYARDΛ͏͜ͱ͕ଟ͍
None
πʔϧͷஅ
None
2023
ࣗ࡞ υΩϡϝϯςʔ γϣϯπʔϧ
ͦͷ࣌Ͱͷ͓͓͘Βͷߟ͑ • υΩϡϝϯτΛॻ͘ͷָ͘͠ͳ͍ • طଘͷυΩϡϝϯςʔγϣϯπʔϧʹ͕͋Δ • RDocYARDϝϯςφϯεঢ়گ͕ྑ͘ͳ͍ʢ࠷৽ͷRubyͷจ๏ ʹରԠ͠Ε͍ͯͳ͍ͳͲʣ • ৭ʑͱΞΠσΞ͕͋ΔʢRSpec͔ΒυΩϡϝϯτ࡞Εͳ͍ʁͱ͔ʣ
• ৽͍͠υΩϡϝϯςʔγϣϯπʔϧΛ࡞ͬͯશ෦౷߹ͩʂ
Γ͍ͨ͜ͱɿ πʔϧͷ౷߹ͱɺ ػೳͷՃ
2024 RubyKaigi 2024
Stan Lo (st0012) “৽͍͠υΩϡϝϯςʔγϣϯπʔ ϧΛࣗͰ࡞ΔΑΓɺRDocΛϝϯ ςφϯε͢ΕɺͲ͏ͬͯͬͯ Β͏͔Λߟ͑Δඞཁ͕ͳ͘ͳΔ ͠ɺπʔϧ͕৽͘͠૿͑Δ͚ͩʹ ͳΒͳ͍”
https://xkcd.com/927/ CC BY-NC 2.5
…͍
ʮπʔϧͷ౷߹ RDocΛத৺ʹ͠ ͯߦ͓͏ʯ
YARDͱʢ࠶ܝʣ • gemͷυΩϡϝϯςʔγϣϯͳͲʹ͘ΘΕ͍ͯΔυΩϡϝϯςʔ γϣϯπʔϧ • ඪ४Ͱͳ͍ͷͰผ్Πϯετʔϧ͕ඞཁ • `@param`ͳͲΛͬͨه๏Ͱ͋Γɺಠࣗͷܕهड़Մೳ • RDocύʔε͢Δ͜ͱ͕Ͱ͖Δ
• ݸਓతʹYARDΛ͏͜ͱ͕ଟ͍
YARDͰ ͍͍ͷͰʁ
RDoc > YARD
ͳͥRDocͳͷ͔ • ඪ४ఴ͞Ε͍ͯΔͷͰผ్ͷΠϯετʔϧͳͲ͕ෆཁ • RDocͳ͘ͳΔ͜ͱͳ͍ • CRubyͷιʔείʔυͷυΩϡϝϯτΛղऍͰ͖ΔͷRDocͷΈ • YARDͷϝϯςφϯεঢ়گ͕ෆ҆ •
େ͖Ίͷվળ࠷ۙগͳ͍͠ɺϝϯςφϯεجຊݸਓ͕͍ͯ͠ Δ
20249݄ ϓϩδΣΫτ࠾
None
֦ுػೳج൫
ϓϩδΣΫτॳͷߟ͑ • ։ൃऀʹΑͬͯυΩϡϝϯςʔγϣϯπʔϧʹඞཁͱ͢Δػೳҟͳ Δͱ͍͏Ծઆ • ༷ʑͳχʔζʹର֦ͯ͠ுػೳج൫Λ࡞Δ͜ͱͰରԠ • কདྷతʹ༷ʑͳ֦ுػೳΛ࣮͢Δ༧ఆ • YARDܗࣜͷίϝϯτΛυΩϡϝϯτʹม͢Δػೳ֦ுػೳͷ
Ұͭͱ࣮͍ͯͨ͠͠
՝ɿ ֦ுػೳج൫ͷ ΠϯλʔϑΣʔε
https://github.com/ ruby/rdoc/ discussions/1257 Proposal: RDoc extension system ࣌ߟ͍͑ͯͨ͜ͱΛࡶʹॻ͍ͨ σΟεΧογϣϯ
ϝϯλʔͷ ਢ౻͞Μͱ ૬ஊ
֦ுػೳಉ࢜Λ ૄ݁߹ʹ͍ͨ͠
ॳͷΞΠσΞ • RDocຊମ͕֤λΠϛϯάͰΠϕϯτΛൃՐ • ֦ுػೳΠϕϯτΛड͚औΓॲཧΛ͢Δ • PubSubͬΆ͍Έ
https://github.com/ ruby/rdoc/pull/ 1321 Πϕϯτۦಈ֦ுػೳج൫ͷ࣮ɺ ۩ମతͳ֦ுػೳͱͯ͠؆қతͳ YARDύʔαʔ࣮
େࣦഊ
ࢲ͕ͯ͠͠·ࣦͬͨഊ • RDocϝϯςφͷ࣮ࡍͷχʔζݒ೦ʹԠ͍͑ͯͳ͍ • ֦ுػೳج൫ͷίϯηϓτͱ͔͘ɺΠϯλʔϑΣʔεҰܾ ΊΔͱมߋ͕ࠔͳͷͰɺܰʑܾ͘͠ఆͰ͖ͳ͍ • ࣮ࡍͷ֦ுػೳΛઌʹ࡞͔ͬͯͦ͜ΒΠϯλʔϑΣʔεΛܾΊ͍ͨ • ͷલͷΛղܾͰ͖ͳ͍
• ֦ுػೳج൫ԕճΓʹͳΔ
Ͳ͏͢ΕΑ͔͔ͬͨ • ઌʹYARDରԠΛ୯ମͰΔ͖ͩͬͨ • ͔ͦ͜ΒݟΛநग़Ͱ͖Δ • ͬͱૣΊʹಈ͖ͩͬͨ͘ • ؾ͍ͮͨͱ͖ʹ2025ͷ3݄ •
ϓϩδΣΫτ΄΅ऴΘΓͷ࣌ظ
None
20254݄
RDocͷϝϯςφ ͱ૬ஊ͢Δ
RubyKaigi 2025 ίʔυ࠙ձ
@ktou @st0012 @vinistock
͜ͷͱ͖ͨ͜͠ͱ • ֦ுػೳج൫Ͳ͏͢Δʁ • YARDରԠΛͲ͏ਐΊΔʁ
https://github.com/ ruby/rdoc/issues/ 1344 վΊͯRDocͱͯ͠΄͍͠ͷΛ· ͱΊͨ͠issue
͜ͷissueͰܾ·ͬͨํ • ֦ுػೳج൫Ұ୴์غ͢Δ • ·͍͔ͣͭ͘ͷYARDλάΛઌߦ࣮ͯ͢͠Δ • ΓͷλάઌʹRDocଆͷػೳΛՃ͢Δඞཁ͕͋ΔͨΊ • ܕʹؔͯ͠RBSͷαϙʔτΛ༏ઌ͢Δ •
YARDͷಠࣗه๏αϙʔτ͞Εͳ͍Մೳੑ͋Δ
YARD࣮ͷํ • rdoc gemyard gemʹґଘͰ͖ͳ͍ • YARDλάͷύʔεखॻ͖ • RDocʹtomdocͱ͍͏ϑΥʔϚοτΛαϙʔτ͢ΔͨΊͷΈ͕ ͋ΔͷͰɺྲྀ༻Ͱ͖Δ͔
2025-08-26
https://github.com/ ruby/rdoc/pull/ 1416 `@yield`, `@private`, `@api private`Λ ࣮͠ɺRDocͷಉػೳͰ͋Δ͔ ͷΑ͏ʹৼΔ͏Α͏ʹͨ͠ ֦ுੑಛஈߟྀͤͣɺҰ൪͍࣮
Λબ CI͕௨ͬͨʢࠓʣ
ࠓޙͷ՝ͱ Γ͍ͨ͜ͱ
RDocͰΓ͍ͨ͜ͱ • YARDରԠΛͤ͞Δ • yard gemΛΘͳ͍ͰYARDܗࣜͷίϝϯτ͔ΒHTMLυΩϡϝϯ τΛੜͰ͖Δঢ়ଶʹ͢Δ • ଞͷυΩϡϝϯςʔγϣϯπʔϧ͔Βྑ͍ॴΛநग़͢Δ •
Sphinx, TypeDoc, RustDoc, Docusaurus, etc. • ಛʹdoctestRubyίϛϡχςΟʹड͚ೖΕΒΕΔͷ͔ڵຯ͋Γ
None
ಛʹClaude Code ʢ20254݄ʣ
ΕΔ͜ͱ͕ ૿͑ͨ…ʁ
ੜAI͕ॿ͚ʹͳΓͦ͏ͳ͜ͱ • ཏతͳςετεΠʔτͷ࡞ • ෳࡶͳطଘίʔυͷಡղิॿ • ଞͷπʔϧͷௐࠪ
ँࣙ
ϝϯλʔͷਢ౻͞Μ RubyΞιγΤʔγϣϯͷօ༷
͋Γ͕ͱ͏͍͟͝ ·ͨ͠ʂʂʂʂʂ
ࠓޙRDocʹ औΓΜͰ ͍͖·͢
More Decks by Masafumi Okura
See All by Masafumi Okura
Kaigi on Rails past, present and the future
okuramasafumi
0
33
Ruby for complete beginners
okuramasafumi
1
310
Conference as a communication hub for all of us
okuramasafumi
0
210
Metaprogramming isn't real, it can't hurt you
okuramasafumi
0
210
Developing static sites with Ruby
okuramasafumi
1
500
Why doesn't Ruby have Boolean class - final version
okuramasafumi
0
460
Reading Rails 1.0 Source Code
okuramasafumi
0
410
Why doesn't Ruby have Boolean class?
okuramasafumi
0
95
My KaigiEffect at RubyKaigi 2025, part 1
okuramasafumi
1
130
Other Decks in Programming
See All in Programming
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
620
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
560
Growing PicoRuby's Ecosystem on ESP32
yuuu
2
120
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
170
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
Spec-driven Development with AI
simas
PRO
0
2.3k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
270
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
420
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
650
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
4k
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
210
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7.1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
680
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Paper Plane (Part 1)
katiecoart
PRO
3
12k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
560
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
300
Prompt Engineering for Job Search
mfonobong
0
580
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k