Rabbit Slide Show

Endless Ruby

2026-06-06

Description

2026-06-06に開催された[松江Ruby会議12](https://matsue.rubyist.net/matrk12/#:~:text=Endless%20Ruby%0A%0AAgentic,%E8%A5%BF%E7%94%B0%20%E9%9B%84%E4%B9%9F%20%E6%B0%8F)の発表資料

Text

Page: 1

Endless Ruby
西田雄也
2026-06-06
松江Ruby会議12
Powered by Rabbit 4.0.1

Page: 2

自己紹介 西田雄也
@nishidayuya (GitHub, X)
ネットワーク応用通信研究所所属
RubyKaigiのXポストをまとめたりしてます
今年の→ https://posfie.com/@nishidayuya/p/lbpuDmc
1/35

Page: 3

さて

Page: 4

Agentic
Coding全盛

Page: 5

Agentic Coding全盛
欲しいなー作りたいなー
↓
作りたいものリストが溜まり続ける
後回しにして手がつかない
↓ Claude Code, Gemini CLI, …で
とりあえず動くものがさくっと作れるようになった
4/35

Page: 6

便利な
世の中

Page: 7

です
ね!

Page: 8

よし作ろ
う作ろう

Page: 9

便利な
ものを

Page: 10

役立つ
ものを

Page: 11

楽しい
ものを

Page: 12

と思っ
た矢先

Page: 13

こんだけ気
軽にできる
なら

Page: 14

便利で
なく

Page: 15

役に立
たず

Page: 16

楽しくもな
いものを

Page: 17

作ってみて
もいいん
じゃないか

Page: 18

という
ことで

Page: 19

誰も使わな
いであろう

Page: 20

endを書かな
くていい
Ruby

Page: 21

作ってみ
ました

Page: 22

デモ

Page: 23

デモ内容
module FizzBuzzService
class << self
def call(range)
range.each do |n|
case 0
when n % 15
puts("FizzBuzz")
when n % 3
puts("Fizz")
when n % 5
puts("Buzz")
else
puts(n)
FizzBuzzService.(1 .. 16)
22/35

Page: 24

デモ内容
$ ./miniruby fizz_buzz.rb
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
23/35

Page: 25

デモ内容
module FizzBuzzService
class << self
def call(range)
range.each do |n|
case 0
when n % 15
puts("FizzBuzz")
when n % 3
puts("Fizz")
when n % 5
puts("Buzz")
else
puts(n)
end
end
end
end
end
FizzBuzzService.(1 .. 16)
24/35

Page: 26

デモ内容
$ ./miniruby fizz_buzz_orig.rb
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
25/35

Page: 27

まとめ

Page: 28

まとめ: Endless Ruby
使わないものを作ったっていいじゃない!
楽しくなくてよかったはずが,やってみる過程は楽しかった
https://github.com/nishidayuya/ruby/tree/v4.0.2-
endless_ruby
27/35

Page: 29

まとめ: Endless Ruby
後方互換性は不要だったのに気にして作ってくれた
当初は # endless_ruby: true があるときにendなしと解釈
最終的に行頭にendがあるときにendありとみなす実装にできた
make btestも通る
実用なレベルではありません
確認が遅かったけどrequireやloadされるファイルではSEGVする
28/35

Page: 30

ご静聴あり
がとうござ
いました

Page: 31

時間があ
まったので

Page: 32

第二弾

Page: 33

#
frozen_literal:
true

Page: 34

デモ2

Page: 35

第二弾: # frozen_literal: true
https://github.com/nishidayuya/ruby/tree/v4.0.2-
frozen_literal
# frozen_string_literal: true があったためか,
比較的簡単にできた(ように見える)
34/35

Page: 36

ご静聴ありがとうございました
西田雄也 @nishidayuya (GitHub, X)
ネットワーク応用通信研究所所属
https://github.com/nishidayuya/ruby/tree/v4.0.2-
endless_ruby
https://github.com/nishidayuya/ruby/tree/v4.0.2-
frozen_literal
使わないものを作ったっていいじゃない!
Powered by Rabbit 4.0.1
35/35

Other slides