Ruby
ESM Advent Calendar 2024の4日目の記事です。 こんにちは、構文解析器研究部員のS.H.です。 皆さんご存じかもしれませんが、最近RubyのデフォルトのパーサーとしてPrismが導入されましたね。 bugs.ruby-lang.org デフォルトのパーサーが変更されたことによ…
この記事は、永和システムマネジメントのアドベントカレンダー ESM Advent Calendar 2024 の 3 日目の記事です。 はじめに @wai-doi です。自分が以前アサインされていた Rails アプリケーションは、古い JRuby と Rails に SQL Server を組み合わせた構成の…
@junk0612 です。これからの社会を担う世代を対象にした Ruby のプログラミングコンテスト、『中高生国際Rubyプログラミングコンテスト2024 in Mitaka』に、今年も Gold PARTNER として協賛します。 www.ruby-procon.net 毎年さまざまなアイディア・工夫を凝…
こんにちは。構文解析器研究部員のS.H.です。 アジャイル事業部内ではじめたRuby Hack Challengeについて紹介します。 Ruby Hack Challengeとはなにか? 元々はRubyコミッターのko1さんがCookpadで開催されていたRubyの内部をハックするイベントです。 Ruby…
はじめに こんにちは、@wai-doi です。 本記事では RuboCop の設定ファイルの .rubocop.ymlで、特定の cop の無効化を明示している書き方から、逆に、有効になっている cop の有効化を明示する書き方に直す方法を考えました。 やりたかったこと まず以下のよ…
こんにちは、構文解析研究部員の S.H. です。 社内でやっているエンジニアお茶会で (@koic) さんから以下のIssueの件で「Rubyのパーサー周りの問題ではないか」と相談を受けました。 github.com そこで調査したところ比較的簡単に修正できそうなことが分かり…
こんにちは。@junk0612です。 この記事は ESM アドベントカレンダーとは特に関係のないカンファレンス参加記事ですが、せっかくここを見に来たのならぜひついでに覗いていってください。アジャイル事業部メンバーに限らず、面白い記事がたくさん書かれていま…
イントロダクション 世はまさに大パーサー時代。人々はパーサーの海へと繰り出す。 ――― kaneko.y RubyKaigi 2023 における "the bison killer" による大パーサー時代の幕開け宣言からはや4ヶ月が経ちました。みなさまいかがお過ごしでしょうか。@junk0612 で…
これからの社会を担っていくことになる世代に向けての Ruby プログラミングコンテストである『中高生国際Rubyプログラミングコンテスト2023 in Mitaka』に、今年もゴールドパートナーとして協賛します。 www.ruby-procon.net 昨年もゴールドパートナーとして…
仕事の Ruby と趣味の Elixir を反復横跳びしている e.mattsan です。 近ごろ仕事では Ruby 以外ばかり書いている気もしなくもないですが、それはそれとして。 Elixir は関数型言語に分類されるプログラミング言語なわけですが。 関数型言語は変数が不変であ…
こんにちは、構文解析器研究部員の S.H. です。 最近Rubyに導入された parse.yのUniversal Parser 周りに興味がありパッチを投げています。 github.com github.com そういった背景からRubyの parse.yのUniversal Parser を頻繫にビルドする機会があり、せっ…
はじめに こんにちは、@wai-doi です。RubyKaigi 2023 が楽しみですね。 最近お仕事で、Ruby の Tempfile.open でテンポラリファイルを作成しているコードを読んで、理解する機会がありました。 Tempfile.open のリファレンスマニュアルを調べてみると、他に…
この記事は、ESM アドベントカレンダー2022 の 2 日目の記事です。 adventar.org はじめに こんにちは、wai-doiです。 日頃 Rails の開発をしていて、メソッドを調べたりするときなどで API ドキュメントを参照することがよくあると思います。 ご存じの方も…
ソフトウェアエンジニアの 9sako6 です。 Ruby でソフトウェアを開発する際、パフォーマンス低下を引き起こすような良くない Redis のクエリが入り込まないよう RuboCop に見張ってもらうようにした話をします。 パフォーマンス低下の実例 私が開発に参加し…
はじめに こんにちは。入社して4年目になりました、wai-doi です。 お仕事でRSpecでテストを書いていて、 「引数に特定の値が渡された時だけスタブしたい」 ということがありました。そのときどのように書けばよいか分からなかったので、今回は調べたことと…
こんにちは。ima1zumi です。 私の開発している Rails アプリでは、Excel で読み込めるように 文字コードを Windows-31J に変換して CSV を出力する機能があります。 先日、CSV 出力にて Unicode の波ダッシュ 〜 を Windows-31J に変換しようとして Encodin…
メリークリスマス! yucao24hours です。 こちらがおそらく 2021 年最後のアジャイル開発ブログとなります(予定)。今年も一年、私たちのブログに目を通していただきありがとうございました。 さて、今回は自分が関わっている数プロジェクトで発生した、突…
この記事は、ESM Advent Calendar 2021 10日目の記事です。 adventar.org はじめに red-datasets の使い方 ダウンロード先について データセットの種類 機械学習で用いるデータセット それ以外のデータセット Datasets::CLDRPlurals Datasets::EStatJapan::S…
こんにちは、アジャイル事業部 9sako6 です。 私のいるプロジェクトで大きなエンハンスが行われ、その中で Polymorphic Association(ポリモーフィック関連) を使う場面がありました。 ポリモーフィック関連を選択した理由や行った作業、注意点について話し…
こんにちは。最近筋トレにはまっている wat-aro です。 blog.agile.esm.co.jp で Input object が紹介されていますが、実際に使っていくとネストしたパラメータの扱いに困ったためその解決方法を紹介します。 この記事のコードはすべて https://github.com/w…
はじめに こんにちは、wai-doiです。 Railsアプリケーションを開発していて、文字列の削除をするコードを書くことがあると思います。 例えば以下のようなコードです。 zip_code = '123-4567' zip_code.gsub(/-/, '') #=> 1234567 この例では String#gsub を…
こんにちは、夜な夜なフォーチュンタワーに登っている nsgc です。 複数人でプロダクトやサービスを作る際に可読性や保守性を向上させるため、 コーディング規約を用意してフォーマットを統一したり、あきらかに不要な記述を静的解析ツールでチェックするこ…
aikyoです。 はじめに Ruby3.0で、型定義を書けるRBSが導入されました。 私は以前にRubyのFileクラスの型定義を書いたので、Cで書かれたRubyの組み込みライブラリの型定義を書くのもそこまで大変ではないよということについて書いていきます。 現在のRBSの状…
本記事の環境 Rails 6.1.1 結論 9sako6 です。突然ですが、 AS 句で作ったカラムに DB の型情報はありません。 次の例をご覧ください。スキーマに日時型で定義されている created_at カラムは TimeWithZone オブジェクトが返るのに対し、AS 句で作った lates…
たくさんのファイルを同時に扱う際には、その処理が使うリソースに注意したいものです。さいきん私が直面した課題は、AWS S3 のあるバケットに保存されている大量のファイルをひとつのアーカイブファイルにして別のバケットに配置するというものでした。ひと…
2020年度新卒、くさころ (9sako6)です。Rails アプリケーションのプロジェクトにアサインされてもうじき2ヶ月になり、その間に15くらいの Pull Request (以降、PR)を出しました。PR についたコメントは合計400弱、そのうちのある大きめの PR の Conversation…
こんにちは、hibariya です。最近 ミートアップ が開催されるなど、GraphQL が静かに注目を集めていますね。GraphQL は Web API で使えるクエリ言語です。GraphQL 自体は特定のデータベースに依存しないため、RDBMS を使ったアプリケーションで採用すること…
こんにちは。takkanm です。 本日 2017/05/17 は、弊社メンバーが関わっている書籍パーフェクト Ruby の改訂2版の発売日です。 パーフェクト Ruby は、Ruby に関する内容を言語仕様から、メジャーなライブラリまでを網羅することを目的とされた書籍です。 弊…
先日、privateなクラスメソッドを定義しようとして、つまづきました。 なので、僕が実装に失敗したパターンと正しい実装方法を記載したいと思います。 失敗パターン まず、僕が実装に失敗したパターンです。何事もなく呼び出せてしまっています。 class C pr…
こんにちは、hibariya です。先日から、自分のかかわっている Rails アプリを 5.0.0 にアップグレードしています。そのときに意外な箇所でつまずいたことを書きたいと思います。なお、全体的なアップグレードについては公式の A Guide for Upgrading Ruby on…