SEAN_BLOG

プログラミング etc.

Ruby

平成Ruby会議01 CfP

面白そうな Advent Calendar を発見したので、せっかくなので残しておこうと思います。 adventar.org ありがたいことに、こちらの CfP は採択されました。 厳正なる選考の結果、「Play with Ruby」の内容でSho ITO様にご登壇いただきたいです。 heiseirb.git…

binding.pry がなぜ動くのか?今更ながら調べてみた

TL;DR binding.pry は、Kernel#binding とObject#pry に分けられる。 Kernel#binding はコンテキストの環境情報を束縛したBinding オブジェクトを返す。 Object#pry はREPL プログラム。 TL;DR そもそも、binding.pry とは? Kernel#binding Object#pry read…

Ruby 2.7 の新機能(Pipeline operator |> 編) - チケットとコミットログを読んでみて

さて、今回はRuby 2.7 の新機能、Pipeline operator |> についてのエントリーです。 RubyKaigi 2019 のRuby Committers vs the World で取り上げられていたあれです。 6月13日にtrunk にmerge されたようですが、それ以降Twitter を中心に議論が盛り上が…

Ruby 2.7 の新機能(Method reference operator .: 編) - チケットとコミットログを読んでみて

さて、今回はRuby 2.7 の新機能、Method reference operator .: についてまとめていきます。 Ruby 2.7 の新機能に関しては、前回のNumbered parameters に続き今回で3本目のエントリーです なんだか、連載のような感じになってきてしまいました。 最初は1…

Ruby 2.7 の新機能(Numbered parameters 編) - チケットとコミットログを読んでみて

5月30日(木)、Ruby 2.7.0 preview1 がリリースされましたね。 パチパチパチ さて、前回のパターンマッチング編に引き続きRuby 2.7 の新機能、Numbered parameters についてまとめていきます。 Numbered Parameters TL;DR 使用例 チケット コミットログ …

Ruby 2.7 の新機能(Pattern matching 編) - チケットとコミットログを読んでみて

今回はRubyKaigi 2019 に参加して俄然モチベーションが上がったので、 NEWS for Ruby 2.7.0 の中から気になった点をいくつかピックアップしてまとめていきたいと思います。*1 パターンマッチング 使用例 チケット コミットログ 所感 参考 パターンマッチング…

Note to self: ActiveSupport::TimeZone とString での時間の比較

先日TimeZone 周りでハマったので、備忘用にメモします。 結論 内容 所感 結論 Time.zone.parse('2019-01-01') と2019-01-01 は異なる。*1 ActiveSupport::TimeZone とString での時間の比較は注意が必要。 Time.zone.parse は比較対象もTime.zone.parse に…

Ruby kramdown のソースコードリーディング

今回はRuby library のkramdown のソースコードリーディングを行います。 kramdown はMarkdown をparse し、HTML 等任意の形式に変換する事ができるRuby のlibrary です。 普段からMarkdown を書く機会も多く、どの様に実装されているのか気になっておりまし…

Ruby ActiveHash のソースコードリーディング

ActiveHash は、Ruby のHash をActiveRecord-like のモデルとして使用するためのbase class です。 ./lib 以下のコード量は、800行程度ですので決して多くはないと思います。 コードリーディングをするのは初めてですので、このぐらいの量がちょうど良いかな…