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: 5
Agentic Coding全盛
欲しいなー作りたいなー
↓
作りたいものリストが溜まり続ける
後回しにして手がつかない
↓ Claude Code, Gemini CLI, …で
とりあえず動くものがさくっと作れるようになった
4/35
Page: 17
作ってみて
もいいん
じゃないか
Page: 20
endを書かな
くていい
Ruby
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: 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: 33
#
frozen_literal:
true
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