Slide 1

Slide 1 text

WA RB Ruby in the browser 観察日記 2024/08/31 ledsun (中島滋:株式会社ラグザイア) 於 RubyKaigi 2024 follow up

Slide 2

Slide 2 text

Self-introduction •ledsun@ github or X •Based in Tokyo •I am programing web applications by Ruby on Rails and JavaScript WA RB

Slide 3

Slide 3 text

WA RB

Slide 4

Slide 4 text

WA RB

Slide 5

Slide 5 text

WA RB

Slide 6

Slide 6 text

RubyKaigi 2024で話したこと 1. ruby.wasm に追加した ruby in the browser 向け便利機能を紹介 (特に require_relative ) 2. 便利機能を使ったフレームワークを紹介 WA RB

Slide 7

Slide 7 text

Kaigi Effect WA RB

Slide 8

Slide 8 text

https://blog.tmtms.net/entry/202405-mysql-params WA RB さっそく使ってもらえた

Slide 9

Slide 9 text

ソースコードをみる と気になる点が WA RB

Slide 10

Slide 10 text

WA RB /lib/init.rb 内の記述

Slide 11

Slide 11 text

scriptタグで読みこんだ Rubyスクリプト中の require_relativeの起点は rubyVMを起動したHTML ファイル WA RB

Slide 12

Slide 12 text

WA RB 起点を指定出来る

Slide 13

Slide 13 text

WA RB

Slide 14

Slide 14 text

次の目標 WA RB

Slide 15

Slide 15 text

ruby.wasm + WebSocketで dRuby in the browser WA RB youchanさんがopal-drbやってた

Slide 16

Slide 16 text

WA RB

Slide 17

Slide 17 text

sendメソッドで エラーが起きる WA RB `method_missing': undefined method `Hello, world! from Ruby' for an instance of JS::Object (NoMethodError)

Slide 18

Slide 18 text

JavaScriptオブジェクトのメソッド 呼び出しをmehtod_missingで 実装している WA RB

Slide 19

Slide 19 text

RubyにはObject#sendメソッドが あるので、method_missingは呼 ばれない WA RB

Slide 20

Slide 20 text

WA RB callメソッドを使えば 動かせる

Slide 21

Slide 21 text

WebSocket#send をそのまま呼びたい WA RB

Slide 22

Slide 22 text

WA RB 解決案の種類

Slide 23

Slide 23 text

バイパス WA RB

Slide 24

Slide 24 text

JavaScriptオブジェクトに Object#sendしたいん だっけ? WA RB

Slide 25

Slide 25 text

JavaScriptオブジェクト にconventional methods要る? WA RB

Slide 26

Slide 26 text

ためしにBasicObejectを 継承したら予想外の動き をした WA RB

Slide 27

Slide 27 text

WA RB 'Hoge::Fuga#bar': uninitialized constant Hoge::Fuga::Hoge (NameError)

Slide 28

Slide 28 text

あとでRubyistたちと相談 したいです。 WA RB

Slide 29

Slide 29 text

dRuby in the browser に期待していること WA RB

Slide 30

Slide 30 text

アプリケーションのプロトコル を作るための基盤がほしい WA RB HTTP RESTful アプリケーションのプロトコル WebSocket dRuby アプリケーションのプロトコル

Slide 31

Slide 31 text

Ruby in the browser でmiroみたいな共同 編集アプリケーションが つくれる、かも? WA RB

Slide 32

Slide 32 text

WA RB Presented by 終