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
Google Apps Script で Ruby を動かす
Search
Shogo Kawahara
July 18, 2026
Programming
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google Apps Script で Ruby を動かす
Shogo Kawahara
July 18, 2026
More Decks by Shogo Kawahara
See All by Shogo Kawahara
strudel-rb について
kawahara
0
19
rspec の --tag オプションがこんなに便利だったなんて...
kawahara
0
24
Rubyで音声「データ」を作る
kawahara
0
92
データベースだけじゃないN+1とその対策
kawahara
0
1.4k
CoderDojo 千葉県総武線沿線の取り組み
kawahara
1
440
SendGrid Template Engine 奮闘記
kawahara
0
390
Other Decks in Programming
See All in Programming
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
230
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
170
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
150
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
110
Intent as Code
shoppingjaws
6
980
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
450
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
190
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
380
Family mrubyの進捗
kishima
1
110
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
Deep Space Network (abreviated)
tonyrice
0
300
Scaling GitHub
holman
464
140k
Technical Leadership for Architectural Decision Making
baasie
3
560
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Claude Code のすすめ
schroneko
67
230k
Transcript
ݪ ᠳޗ (ooharabucyou) Google Apps Script Ͱ Ruby Λಈ͔͢ ←
ຊͷεϥΠυ
ॳख!! ͍͖ͳΓσϞ!!! ← ຊͷεϥΠυ
None
bucyou (Ϳͪΐʔ) ͳͲͱݺΕ ΔͷͩΑɻ kyobashi.rb ʹΑ͘إΛग़͢Αɻ freee ͱ͍͏ձࣾͰ Ruby ʹͯൢ
ചཧγεςϜతͳͷΛͭͬ͘ ͍ͯͨΓ͢ΔΑɻ About me https://github.com/kawahara
Google Apps Script (ҎԼGAS)
ੜ׆GASͰಈ͍͍ͯΔ
Ͳ͜ʹͰ͋Δ ͝ՈఉͷGAS ΞʔΩςΫνϟ 2013͘Β͍͔Β͜ͷελΠ ϧͰɺ్த݁ࠗͨ͠ΓͳͲͰ ૿վங͕܁Γฦ͞Εͳ͕Β ݱঢ়ͷܗʹམͪண͍͍ͯΔ
͝ՈఉͰಈ͘GASͨͪ ආ༻ཧாͷߪೖϦϚΠϯμ ՈిཧாͷނোՄೳੑΞϥʔϜ Enju Leaf (ਤॻཧ) पΓͷใ࿈ܞ …
;ͱࢥͬͨ
GAS Ͱ Ruby ಈ͘ͷ͔?
࣮༻ྫ? Ruby Ͱॻ͔ΕͨϥΠϒϥϦΛͲ͏ͯ͠ಈ͔͍ͨ͠ Ruby Λॻ͖͍ͨ Apps Script (JavaScript) ͳίʔυΛॻ͖ͨ͘ͳ͍
GAS Ͱ Ruby ಈ͘ͷ͔ ͺͬͱࢥ͍ͭ͘ͷ Opal Λ͏ख๏ γϯϓϧʹ Ruby Λ
JavaScript ʹมͯ͠ɺGAS ʹ͍ͯ͘͠ ͦΕ Ruby ͕ಈ͍͍ͯΔͱݴ͑Δͷ͔..?
Ͱ͖ΕɺRuby Λಈ͔͍ͨ͠
💡 Web Assembly ͔ͭ͑Δ͔ͳ?
“ Apps Script Chrome ͱ Node.js Λࡌ͢Δ V8 ϥϯλΠϜͰαϙʔ
τ͞ΕΔΑ͏ʹͳΓ·ͨ͠ɻ ” V8ϥϯλΠϜͷ֓ཁ | Apps Script | Google for Developers
V8ϥϯλΠϜͷ֓ཁ V8ϥϯϥΠϜɺWebAssembly ͷػೳΛα ϙʔτ͍ͯ͠Δ ͑ͳ͍APIʹࢦఆ͞Ε͍ͯͳ͍ ͭ·ΓɺGAS Ͱ WebAssembly ͕ಈ͘
ௐΔͱࣄྫ͋Δ GASͰ࢝ΊΔWebAssembly - @tan9i - Qiita https://qiita.com/tan9i/items/433072aaa44805c3bae9 Go Λ Wasm
ʹϏϧυͯ͠ Google Apps Script Ͱಈ͔͢ - @mascii - Zen https://zenn.dev/mascii/articles/go-wasm-on-google-apps-script
ͰɺRuby Λಈ͔͢ਓ ݟͨΒͳ͔ͬͨ …
ͬͯΈΑ͏
ϓϩδΣΫτߏ Clasp ʹΑΔཧ Rollup ʹΑΓɺgs ϑΝΠϧʹม @bjorn3/browser_wasi_shim ΛͬͯɺWASI Λ༻ҙ ࣗલͰϏϧυͨ͠
wasm ࣗͷαʔόʹஔ͍͓͖ͯɺHTTPS Ͱऔಘ Ͱ͖ΔΑ͏ʹ͢Δ ͱΓ͋͑ͣඪ४ग़ྗΛड͚औΔ
͏͍ͨ͝ ͏͍ͨͧ͝ʔʔʔʔ
͓͍ͦ!!!!!!!
UrlFetchApp ՝ wasm ͕Ͱ͔͍!! ࣗͷαʔόͳΓɺCDNͳΓʹஔ͢ΔͷͰɺ࣮ߦ͝ͱʹ30MBҎ্ͷసૹ͕ ൃੜ͢Δɻ💰 μϯϩʔυʹ͔͔Δ࣌ؒɺ࣮ߦ͕ΕΔ Fetch ͷ 1
20,000ճ੍ݶ (ݸਓΞΧϯτͷ߹) wasm Λ base64encode ͯ͠εΫϦϓτʹຒΊࠐΊΔͱ࠷ߴ͕ͩɺ(͓ͦΒ͘ 10MBఔͩΖ͏ͱ͍ΘΕ͍ͯΔ) GAS ͷϓϩδΣΫτ੍Λ͑ͯ͠·͏ɻ
ͬͯɺΛͨ·ͨ·ΦϑΟε ʹ͍ͨ @hachi ͞Μ (ಉΦϑ Οεۈ, Kyobashi.rb ΦʔΨ φΠβʔ) ʹͯ͠Έͨ
ͦΜͳ͜ͱ͕͋ͬ ͨΜͰ͢ΑʔʔɻͰ ҰԠ͏͍͚ͨ͝ ͲɺϏϛϣͬ͢Ͷɻ
͑ɺͦΜͳΜ͋ΔΜ͔͢? picoruby.wasm ͔͍͍ͭ͑ ͡Όͳ͍ ͋ΔΑ ·͔͢͡????!!!
Ϗϧυͨ͠Β1.3MB͘Β͍
ߦ͚ͦ͏ͬͯ͜ͱͰಈ͔ͯ͠ΈΔ
ϓϩδΣΫτߏ+ Ϗϧυ࣌ʹ picoruby.wasm ͷόΠφϦɺbase64encode ͯ͠ gs ʹຒ ΊࠐΈ ͍ͭͰʹ࣮ߦ͍ͨ͠ Ruby
εΫϦϓτಉࠝ͢Δ
͏͍ͨ͝ ͏͍ͨͧ͝ʔʔʔʔʔ
͔ͦͦ͜͜͠ૣ͍
݁: GASͰRubyಈ͘
Appendix ࠓճͷൃදͰͬͨσϞϓϩδΣΫτ https://github.com/kawahara/ruby-wasm-on-gas ← ຊͷεϥΠυ