Module#private_constant (Ruby 2.7.0 リファレンスマニュアル)

module Foo
  BAR = 'bar'
  class Baz
  end

  QUX = 'qux'
  class Quux
  end

  private_constant :QUX
  private_constant :Quux
end

Ruby の private constant。もう少しスマートなやり方あると良いなぁ。

別のディレクトリにある Gemfile をsystemメソッドで “bundle check” する

これ昔僕も困ったことあって知らなかったソリューション。

See also. https://bundler.io/man/bundle-exec.1.html#Shelling-out

Bundler.with_clean_env do
  Dir.chdir "/other/bundler/project" do
    `bundle exec ./script`
  end
end

libxml-ruby 3.1.0 install on macOS 10.15 Catalina

$ gem install libxml-ruby -v '3.1.0' -- \
--with-xml2-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr \
--with-xml2-lib=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib \
--with-xml2-include=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/libxml2

An error occurred while installing mysql2 (0.4.10)

下記のエラーの対処としてこれをやれば解決できた。

An error occurred while installing mysql2 (0.4.10), and Bundler cannot continue.
$ gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib

これで mysql2 v0.4.10 がinstallできた。