Ruby の完全なクラス名(FQCN)を一発で取得する方法 ~ ruby-fqcn.nvim ~
Ruby のコードを書いていると、あるクラスの完全な名前がほしくなるときがよくあります。 例えば以下のクラスであれば :: で区切られた Foo::Bar::Baz という文字列が欲しいです。rubymodule F...
Ruby のコードを書いていると、あるクラスの完全な名前がほしくなるときがよくあります。 例えば以下のクラスであれば :: で区切られた Foo::Bar::Baz という文字列が欲しいです。rubymodule F...
ruby-block-toggle.nvim という Neovim プラグインを作りました。https://github.com/h3pei/ruby-block-toggle.nvimできることはただ1つ... R...
Ruby、特に Rails アプリケーションのテストを書くときに、factory_bot(https://github.com/thoughtbot/factory_bot) をよく使います。https://github.com/t...
Gemfile にて gem のバージョン指定に使われる ~ という記号が示すバージョンの範囲が覚えられないので整理した。 最初に結論- メジャーバージョンのみ指定した場合、指定したメジャーバージョンの最新版が入る...
はじめに本記事は、「ちゃんと理解する rbenv」の第4回です。 ※ 前回の記事(/articles/2021-07-10-understanding-rbenv-3/)今回は、rbenv における重要な概念である...
はじめに本記事は、「ちゃんと理解する rbenv」の第3回です。 ※ 前回の記事(/articles/2021-07-10-understanding-rbenv-2/)今回は、rbenv の機能の真髄であるバージョン...
はじめに本記事は、「ちゃんと理解する rbenv」の第2回です。 ※ 前回の記事(/articles/2021-07-10-understanding-rbenv-1/)今回は rbenv の基本的な使い方について整理...
はじめに本記事は、Ruby で開発している人にとってほぼ必須ツールと言ってよいであろう rbenv(https://github.com/rbenv/rbenv) について、ちゃんと理解して使えるようになることを目指して解説・...
ActiveRecord が提供する has_many 、has_one 、belongs_to といったアソシエーションの設定を行うメソッドには autosave というオプションがある。API ドキュメント(ht...
timecop(https://github.com/travisjeffery/timecop) という gem がどうやって時間を止めているかについて調べた。※ timecop のバージョンは、v0.9.2 最初に結...
前回の記事(/articles/2020-12-29-01/) に続いて rbenv ネタ。今回は、ruby-build と rbenv の関係について。 ruby-build とは何かruby-build とは、あらゆる...
rbenv(https://github.com/rbenv/rbenv) の rehash というコマンドについてちゃんと理解するべく調べたのでまとめる。なお調べたのはバージョン1.1.2の rbenv。$ rbenv -...
Draper(https://github.com/drapergem/draper) が、具体的にどういったロジックで Decorator クラスを探索するかを調べた。 バージョンは v4.0.1 。 想定する状況...
RSpec の instance_double(https://rspec.info/documentation/3.9/rspec-mocks/RSpec/Mocks/ExampleMethods.htmlinstance_d...
今更感があるが、Ruby の aws-sdk-s3 gem を使って S3と戯れた記録を残す。 事前準備Gem としては aws-sdk-s3(https://rubygems.org/gems/aws-sdk-s3/ver...
rescue した例外の message を上書きして re-raise したい場合、Exceptionexception を使うとスッキリ書ける。https://docs.ruby-lang.org/ja/latest/meth...
最初に結論から- 一方が正常な振る舞い、もう一方は特殊な振る舞いと考えられる場合はガード節を使う- 双方とも同等に正常な振る舞いと考えられる場合は、if-then-else 構文を使う 詳細 ガード節...
Proc オブジェクトは call を使って実行することが多いと思う。rubyfn = Proc.new { |v| puts v }fn.call("Hello, world!") = "Hello, world...
gRPC 公式の Ruby 版チュートリアルを参考に、手元で試してみた記録。 gRPC で開発をするときの全体感みたいなものをつかめたらいいなぁくらいのところからスタート。https://grpc.io/docs/tutorials...
Ruby のライブラリで設定を管理するときに、次のようなパターンのコードをよく見ると思う。rubyXyz.configure do |config| config.xxx = 'xxx' config.yyy = 'yy...
&&&& をよく使うのは、if 式などでの条件を書くときだろう。つまるところ真か偽の結果を得ることを期待していると思う。rubycond1 = truecond2 = falsecond3 = true...
タイトル通り。 TDD のお試し環境として自動でテストが実行される環境を作りたかったので、構築した。1.作業ディレクトリを作るbashmkdir fizzbuzzcd fizzbuzz2.Gem...
sinatra とか nokogiri のような外部ライブラリを読み込みたい時と、同じプロジェクト内にある自身が作ったファイル等を読み込みたい時の2パターンがあって、その時に require をどう使い分ければいいか調べたのでメモ。環境...
書籍には Java で書かれていたので ruby でバイナリサーチを実装しなおしてみた。ruby -- coding: utf-8 -- numbersは昇順にソート済みであることを前提とするdef binary_...
書籍には Java で書かれていたので ruby でリニアサーチを実装しなおしてみた。ruby -- coding: utf-8 --def linear_search(numbers, target) i = 1...
Rails で「mysql2」を利用する際、bundle install をするとタイトルのようなエラーが出力された。かなりの時間これに悩まされた。具体的には以下のようなエラー。Gem::Installer::Extensio...
バブルソート隣り合う2つのデータを比較して、前の要素の方が大きかった場合、後ろの要素と交換する。このアクションを先頭から順に繰り返すことで、要素を整列させるソート方法。小さい要素が泡のように上がってくることから、こう名付けられ...
以下のサイトに載っていた通りの対処法で解決した(※ 現在はリンク切れ)。 http://mukaer.com/archives/2012/04/17/rubynokogirihtm/bashyum -y install...