Skip to content

Instantly share code, notes, and snippets.

Method クラスとは

メソッドとレシーバの組み合わせのオブジェクト。Method.new ではなく Object#method で作成する。 Methd#call メソッドで呼び出しできる。ruby-1.1b9_01 と初期からある。

$ docker run -it --rm rubylang/all-ruby ./all-ruby -e 'p Method'

...
ruby-1.1b9 -e:1: Uninitialized constant Method (NameError)
@wanabe
wanabe / gist:97ff3399e386b2dbf7b4bcadc579f673
Last active December 2, 2024 15:51
ちょい足し AltRb のススメ、あるいは Prism とエラートレラントの悪用

はじめに

これは Ruby Advent Calendar 2024 の記事です。

日々 Ruby を使う中で、ちょっとだけ新しい文法が欲しくなったり、逆に今の文法に気に入らないところがあったりといった経験はないでしょうか。 気に入らない文法は使わなければいいだけですし、複数人でそれを統一したいなら Rubocop があります。ですが、存在しない文法を使うことはできません。 そんなとき AltRb という選択肢はどうでしょうか、という提案をこの文ではお届けします。

AltRb とは

なつやすみのにっき 2024/08/12

きょうはなんにもないすばらしい一日だった

そんな日もあるよね

なつやすみのにっき 2024/08/11

せっかく RISC-V 環境を手に入れたので ruby を動かしたい

ので、やってみます。

(WSL で)
$ git clone --depth 1 --branch v3_4_0_preview1 https://github.com/ruby/ruby.git

なつやすみのにっき 2024/08/10

ふと RISC-V を試したくなりました

ので docker + qemu で試してみます。

ファイルを作った後 WSL で以下のようにして環境を作りました。

@wanabe
wanabe / how-falcon-work.md
Last active April 28, 2024 08:24
Falcon ってどういう仕組みなのか読んでみたけれどよくわからない(未完)

免責

てきとうに読み始めててきとうに書き始めていてまだ終わっていません。 何か変なことを書いていたらすみません。

序文

https://github.com/socketry/falcon がどう動いているのか気になったので見てみます。

初手

@wanabe
wanabe / parser.peg
Last active February 12, 2023 22:12
# original file: https://git.ruby-lang.org/ruby.git/tree/parse.y
%prefix "tiny_ruby_parser"
%capture on
%value c -> "tiny_ruby_value" rb -> "TinyRubyValue"
%auxil c -> "tiny_ruby_context_ext *"
dump <- program:program
c -> {
# This code is hereby placed in the public domain.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
@wanabe
wanabe / class.md
Last active January 30, 2023 10:12
classDiagram

Parser --> LrMemoTable: memos
Parser --> Thunk: thunks[]
LrMemoTable --> LrMemo: memos[pos][rule_name]
LrMemo --> ThunkChunk: answer

Thunk <|-- ThunkNode
Thunk &lt;|-- ThunkLeaf