Ruby

Ruby: SSL_CTX_load_verify_file: system lib (OpenSSL::SSL::SSLError)

OpenSSL まわりでちょっとハマったのでメモ。 こんな Ruby のコードを動かすと環境によって warning になったりエラーになったりする。 require 'faraday' ssl_opts = {ca_file: OpenSSL::X509::DEFAULT_CERT_FILE} Faraday::Connection.new('https://tmtms.…

3.2 rc1 以降の変更

Ruby 3.2 アドベントカレンダーの最終日記事です。 qiita.com 3.2 rc1 以降の変更 今年も 12/25 に無事 Ruby 3.2.0 がリリースされた ということで、3.2 rc1 以降の変更を、3.2.0-rc1 の NEWS.md と 3.2.0 リリースの NEWS.md の差分からピックアップ。 3.2…

Ruby 3.2 - Fiber

Ruby 3.2 アドベントカレンダーの24日目の記事です。 qiita.com Fiber Fiber[], Fiber[]=, Fiber#storage 追加 Feature #19078: Introduce Fiber#storage for inheritable fiber-scoped variables. - Ruby master - Ruby Issue Tracking System Fiber ストレ…

Ruby 3.2 - OptionParser / Timeout

Ruby 3.2 アドベントカレンダーの23日目の記事です。 qiita.com default gem のバージョンアップで面白いのがあるかなーと眺めてみた。 OptionParser OptionParser#raise_unknown Mode for accepting all unknown options · Issue #38 · ruby/optparse raise…

Ruby 3.2 - default gem の差分 / bundled gem の差分

Ruby 3.2 アドベントカレンダーの22日目の記事です。 qiita.com default gem の差分 default gem は Ruby に同梱されていて削除できない gem。新しいバージョンの gem のインストールは可能。 default gem のバージョンの Ruby 3.1 との差分を調べてみた。 G…

Ruby 3.2 - RubyVM::AbstractSyntaxTree

Ruby 3.2 アドベントカレンダーの21日目の記事です。 qiita.com RubyVM::AbstractSyntaxTree RubyVM::AbstractSyntaxTree.parse に error_tolerant オプション追加 Feature #19013: Error Tolerant Parser - Ruby master - Ruby Issue Tracking System RubyV…

Ruby 3.2 - Proc

Ruby 3.2 アドベントカレンダーの20日目の記事です。 qiita.com Proc Proc#dup が元のオブジェクトと同じクラスのオブジェクトを返す Bug #17545: Calling dup on a subclass of Proc returns a Proc and not the subclass - Ruby master - Ruby Issue Track…

Ruby 3.2 - Process / Socket / UNIXSocket

Ruby 3.2 アドベントカレンダーの19日目の記事です。 qiita.com Process Process に定数追加 FreeBSD で Process::RLIMIT_NPTS が追加された。FreeBSD 使ってないからよくわからん。 Socket Socket に定数追加 Socket に定数が追加された。 Socket::SO_INCOM…

Ruby 3.2 - Integer / Set

Ruby 3.2 アドベントカレンダーの18日目の記事です。 qiita.com Integer Integer#ceildiv 追加 Feature #18809: Add Numeric#ceildiv - Ruby master - Ruby Issue Tracking System 商を切り上げる割り算の Integer#ceildiv が追加された。 123.ceildiv(10) #…

Ruby 3.2 - Module

Ruby 3.2 アドベントカレンダーの17日目の記事です。 qiita.com Module Module#const_added Feature #17881: Add a Module#const_added callback - Ruby master - Ruby Issue Tracking System Module#const_added が追加された。定数が追加されたときに実行…

Ruby 3.2 - リファインメント

Ruby 3.2 アドベントカレンダーの16日目の記事です。 qiita.com リファインメント Module#used_refinements Feature #14332: Module.used_refinements to list refinement modules - Ruby master - Ruby Issue Tracking System Module.used_refinements が追…

Ruby 3.2 - Hash

Ruby 3.2 アドベントカレンダーの15日目の記事です。 qiita.com Hash デフォルト値を持つ Hash オブジェクトが空の場合に Hash#shift が返す値が変わった Bug #16908: Strange behaviour of Hash#shift when used with default_proc. - Ruby master - Ruby I…

Ruby 3.2 - Enumerator

Ruby 3.2 アドベントカレンダーの14日目の記事です。 qiita.com Enumerator Enumerator::Product クラスと Enumerator.product メソッド追加 Feature #18685: Enumerator.product: Cartesian product of enumerables - Ruby master - Ruby Issue Tracking Sy…

Ruby 3.2 - MatchData

Ruby 3.2 アドベントカレンダーの13日目の記事です。 qiita.com MatchData MatchData#byteoffset Feature #13110: Byte-based operations for String - Ruby master - Ruby Issue Tracking System MatchData は正規表現に適合した文字列を表すクラス。 Match…

Ruby 3.2 - Regexp

Ruby 3.2 アドベントカレンダーの12日目の記事です。 qiita.com Regexp Regexp.new に文字列でオプション指定可能 Feature #18788: Support passing Regexp options as String to Regexp.new - Ruby master - Ruby Issue Tracking System Ruby の正規表現リ…

Ruby 3.2 - String / Encoding / ユニコード

Ruby 3.2 アドベントカレンダーの11日目の記事です。 qiita.com String String#byteindex / String#byterindex Feature #13110: Byte-based operations for String - Ruby master - Ruby Issue Tracking System String#byteindex, String#byterindex が追加…

Ruby 3.2 - Data / Struct

Ruby 3.2 アドベントカレンダーの10日目の記事です。 qiita.com Data Feature #16122: Data: simple immutable value object - Ruby master - Ruby Issue Tracking System Ruby 3.2 で Data クラスが新設された。Struct とほぼ同じなんだけどオブジェクト作…

Ruby 3.2 - Class

Ruby 3.2 アドベントカレンダーの9日目の記事です。 qiita.com Class Class#attached_object 追加 Feature #12084: Class#instance - Ruby master - Ruby Issue Tracking System Ruby では、オブジェクトのクラスには存在しないメソッドをオブジェクト専用に…

Ruby 3.2 - IO / FileUtils

Ruby 3.2 アドベントカレンダーの8日目の記事です。 qiita.com IO IO#timeout 追加 Feature #18630: Introduce general IO#timeout and IO#timeout= for blocking operations. - Ruby master - Ruby Issue Tracking System IO#timeout でタイムアウトを設定…

Ruby 3.2 - Coverage

Ruby 3.2 アドベントカレンダーの7日目の記事です。 qiita.com Ruby 3.2.0 RC1 がリリースされたので、ネタ元を Ruby 3.2 RC1 の NEWS.md に変更。 6日目までに書いた内容は特に変更なさそう。 Coverage eval でもカバレッジデータを取得可能 Feature #19008…

Ruby 3.2 - インストール

Ruby 3.2 アドベントカレンダーの6日目の記事です。 qiita.com インストール libyaml と libffi が同梱されない Feature #18571: Removed the bundled sources from release package after Ruby 3.2 - Ruby master - Ruby Issue Tracking System libyaml と …

Ruby 3.2 - 無くなったメソッド

Ruby 3.2 アドベントカレンダーの5日目の記事です。 qiita.com 無くなったメソッド Dir.exists? / File.exists? Ruby 2.1 で Dir.exists? と File.exists? は deprecated になった。 Dir.exist? と File.exist? を使えと。 Warning[:deprecated] = true Dir.…

Ruby 3.2 - 無くなったクラス/定数

Ruby 3.2 アドベントカレンダーの4日目の記事です。 qiita.com 無くなったクラスや定数 Fixnum / Bignum Ruby 2.4 から Fixnum と Bignum は deprecated になって Integer の別名になった。 Warning[:deprecated] = true Fixnum #=> Integer #=> warning: co…

文字化け復元ページを作ったよ

これは SmartHR アドベントカレンダーの4日目の記事です。 qiita.com といっても内容は会社とは関係ありません。 文字化け復元ページを作った。 tmtms.net 使い方 最初に「繧ゅ§縺ー縺代r縺オ縺上£繧薙☆繧九h」という文字化けした文字列が入力されてる。 「…

Ruby 3.2 - 代入式の評価順 / パターンマッチ

Ruby 3.2 アドベントカレンダーの3日目の記事です。 qiita.com 代入式の評価順 Bug #15928: Constant declaration does not conform to JIS 3017:2013 - Ruby master - Ruby Issue Tracking System 定数設定時、定数の定義元オブジェクトと代入する式の評価…

ruby-mysql と ruby-mysql2

これはMySQLアドベントカレンダーとRubyアドベントカレンダーの3日目の記事です。 qiita.com qiita.com ruby-mysql 誰も使わないだろうけど、ruby-mysql 4.0 をリリースした。 ruby-mysql | RubyGems.org | コミュニティのGemホスティングサービス ruby-mysq…

Ruby 3.2 - キーワードパラメータその3

Ruby 3.2 アドベントカレンダーの2日目の記事です。 qiita.com キーワードパラメータその3 Bug #18625: ruby2_keywords does not unmark the hash if the receiving method has a *rest parameter - Ruby master - Ruby Issue Tracking System Ruby 2.7 で…

Ruby 3.2 - キーワードパラメータその1、その2

Ruby 3.2 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 3.2 がリリースされるはずです。 3.2 がリリースされるまで毎日少しずつ変更点を見ていきながらリリースを…

Ubuntu 22.10 に rbenv を使わずに Ruby をインストールする

Ruby 3.1.3 / 3.0.5 / 2.7.7 が出たので普段使いの Ubuntu 22.10 にインストールした。 rbenv とかを使えばいいんだけど、自分は普段から rbenv は使ってないので。 Ruby 3.1.3 特別なことは何もしていない。 % tar xf ruby-3.1.3.tar.xz % cd ruby-3.1.3 % …

RubyKaigi 2022 に行ってきた

RubyKaigi が3年ぶりにオフラインで開催されたので行ってきた。 希望者は出張扱いで行けるので前泊後泊で4泊5日の出張だった。 勤務先がスポンサーになってる RubyKaigi は初。ブースも出してたんでときどきブース番もした。 フルリモートで家に閉じこも…