my rubygems install時に
Homebrewのようなビアアイコンを無性に出したくなりました。
(疲れているのかもしれません)
こんなやつ。
homebrewでinstall後にビールアイコンが表示される件 - rochefort's blog
やってみた
こんな感じ
対応gem
・cocoapods-search
・gem-search
やり方
hook系のものが無いか調べる
ググってもよくわからなかったのでrubygemsのソースを眺めていたら
それらしいものがありました。
# .rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/specification.rb @@default_value = { :authors => [], :autorequire => nil, :bindir => 'bin', :cert_chain => [], :date => TODAY, :dependencies => [], :description => nil, :email => nil, :executables => [], :extensions => [], :extra_rdoc_files => [], :files => [], :homepage => nil, :licenses => [], :metadata => {}, :name => nil, :platform => Gem::Platform::RUBY, :post_install_message => nil, :rdoc_options => [], :require_paths => ['lib'], :required_ruby_version => Gem::Requirement.default, :required_rubygems_version => Gem::Requirement.default, :requirements => [], :rubyforge_project => nil, :rubygems_version => Gem::VERSION, :signing_key => nil, :specification_version => CURRENT_SPECIFICATION_VERSION, :summary => nil, :test_files => [], :version => nil, }
post_install_message
これですな。
Specification Reference - RubyGems Guides
公式ドキュメントにたどり着きました。
実装
MacOS Lion以上かどうかを判定してビアアイコンを出しています。
MacOS及びlionの判定箇所はHomebrewを参考にしました。
def install_message s = '' s << "\xf0\x9f\x8d\xba " if or_over_mac_os_lion? s << "Thanks for installing!" end def or_over_mac_os_lion? return false unless RUBY_PLATFORM =~ /darwin/ macos_full_version = `/usr/bin/sw_vers -productVersion`.chomp macos_version = macos_full_version[/10\.\d+/] return macos_version >= '10.7' # 10.7 is lion end Gem::Specification.new do |gem| gem.post_install_message = install_message
macのバージョン取得
$ /usr/bin/sw_vers ProductName: Mac OS X ProductVersion: 10.9.2 BuildVersion: 13C1021
それぞれの値はオプションで取得可能。
$ /usr/bin/sw_vers -productVersion
10.9.2