You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
EngineeringUpgrading GitHub to Ruby 2.7GitHub recently upgraded to Ruby 2.7. Learn how the team approached the deprecation warnings, why upgrading is important, and the notable performance improvements. After many months of work, we deployed GitHub to production using Ruby 2.7 in July. For those who aren’t familiar with GitHub’s stack, we’ve been running on Ruby since the beginning. Many years ago
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A pitfall of the &. operator in Ruby 原文公開日: 2017/11/04 著者: Anton Katunin Ruby: ぼっち演算子&.の落とし穴(翻訳) Ruby 2.3で追加された便利な&.演算子(ぼっち演算子)のおかげで、コードをずいぶんきれいにできました。これはRubyの新しい&.!=演算子に記載されているデフォルト演算子と連結して使えます。 ところで、最近&.を使ったためにバグが起きてしまいました。元々のコードは次のとおりです。 if start_date && start_date < start_of_month && end_date.nil? # ... end リファクタリングして&.を使ったのが次のコードです。 if start_date &.< start_of_mon
やりたいこと メソッドのコメントにannotationを書いておき、そのannotationが付いたのはどのクラスのどのメソッドなのか、を知りたい。 そしてその結果をOkuribitoに渡して使われていないメソッドを監視したい。 Ripperを試してみる Rubyに付属するRubyパーサ Rubyのコードを読ませると、on_xxxのイベントを受けられる。 上から読んでいってイベントが上がってくる Scanner 解析して結果を教えてくれる Parser イベントの種別 irb(main):002:0> require 'ripper' => true irb(main):003:0> irb(main):004:0> Ripper::SCANNER_EVENTS => [:CHAR, :__end__, :backref, :backtick, :comma, :comment, :con
昼休みに先輩と雑談で話していた内容を自分の勉強がてらメモ 雑多なメモですが、参考になれば幸いです。 追記:scivolaさんのご指摘を受けて、一部変更しました。 環境 Ruby 2.5.0
Hacker. Emacs fanatic. Lover of parentheses. Firebrand. Just another programmer with too many opinions. I’m not the best, but I’m pretty good. Today we’ll discuss the following section from the Ruby Style Guide: Avoid explicit use of the case equality operator ===. As it name implies it’s meant to be used implicitly by case expressions and outside of them it yields some pretty confusing code. For
こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底を食らったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し
Rubyの正式なコーディング規約はありません。しかし、複数人のプロジェクトやチームで同時にコーディングする場合や、継続的なメンテナンスが必要とされるシステム開発においては、コーディングスタイルを統一しておくことで可読性を高め保守性を向上することができます。参考となるコーディング規約を紹介します。 Rubyコーディング規約(日本語) Ruby のコーディングスタイル(日本語) The Unofficial Ruby Usage Guide (Ruby Style Guidelineのところ)(英語) Christian Neukirchen's Ruby Style Guide(英語) Elements of Ruby Style(英語)
Ruby Core Development 2019というタイトルでRubyKaigiのCFPにプロポーザルを書いたのだが、 もう一つ書いた方の話が採択されたのでその話はしなかった。 さて、今日はRubyコア*1の開発がSubversionからGitに移った節目でもあったので、そっちのトークで言いたかったことの一部を記事にしておこうと思う。 Subversion → Git 移行 [Misc #14632] 去年くらいから @hsbt さんが cgit というGitフロントエンドを使ってGitリポジトリの準備を始め Misc #14632、ついに今日正式にcgitの方がupstreamになった。平成の時代でSubversionでのtrunkのRubyコア開発は幕を閉じた。 この辺を進めているのは主に @hsbt さんな中、僕がこれを偉そうに書いたり今回のRubyKaigiで壇上でアナウンス
今日は再帰したネスト構造のオブジェクトの hash 値の計算の修正や psych の 2.0.2 への更新、内部で利用する文字列オブジェクトの fstring 化など最適化や不具合修正が多くありました。 2.1 リリースに向けてかなり加速してきたような感じがありますね。 nobu:r43860 2013-11-27 02:20:16 +0900 Array, Hash, Range, Struct などのネストした構造を持てるクラスの hash メソッドの再帰チェックに rb_exec_recursive_outer() のかわりに rb_exec_recursive_paired() を利用するようにしています。再帰チェックにひっかかった時にネストした構造の最も外側のメソッド呼び出しに戻すのではなく、できるだけ内側までで留めて残りの処理を続行するようにしているのだと思います。 また a
Rubyの標準添付ライブラリーのcsvをメンテナンスしている須藤です。 歴史 csvは名前の通りCSVを読み書きするための便利ライブラリーです。 もともとRuby本体とは別に開発されていたのですが、Ruby 1.8.0のときにRuby本体にバンドルするようになりました。dRubyやREXMLがRuby本体にバンドルされたのも同じタイミングです。Ruby 1.8.0のときにバンドルするライブラリーをすごく増やしたのです。(その頃の様子がわかるURLをここに置いておきたかったけど見つけられなかった。。。) Rubyではcsvのようにrequireするだけで使えるライブラリーを「標準添付ライブラリー」と呼んでいます。Stringのようにrequireしなくても使えるライブラリーは。。。なんだろう。組み込みクラスかしら。 その後、Ruby 1.9.0のタイミングで実装をFasterCSVに置き換え
技術部の遠藤(mame)です。1 ヶ月くらい風邪が直らず、苦しみながらこれを書いています。 昨日は Ruby 2.6 の NEWS を裏話付きで解説する記事を書きました(プロと読み解く Ruby 2.6 NEWS ファイル)。今日と明日は、その中でクックパッドのフルタイムRubyコミッタが主に担当したところを少し詳しく紹介します。 今日は、遠藤が作った "oneshot coverage" と言う 2.6 の新機能を紹介します。 背景:Ruby では不要コードの発見・削除が難しい クックパッドのサービスの多くは、cookpad_all という 1 リポジトリからなる、巨大な Rails アプリケーションとして実現されていました。しかし、このやり方ではメンテナンスが限界になってきたので、「お台場プロジェクト」という大整理プロジェクトが行われてきました。この辺の詳細は次の 2 つの記事が詳しい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く