久々にrubygemsをリリースしました。

Rack::Requestで検索エンジンのbotからのアクセスかどうか判定します。

   1  request.bot? #=> true or false

これだけ。

githubで検索してみたら、個別に実装している例がたくさん見つかったわりに、単体で切り出されているものがあまりなさそうだったので作ってみました。

posted by Png genki on Sun 25 Dec 2011 at 06:05

kyotocabinet用のRubygemがbuildできない状態になっていたので、 配布元のkyotocabinet-rubyからgemを書き起こしました。

Gemfile

   1  gem 'kyotocabinet-ruby', '~> 1.27',
   2    :require => 'kyotocabinet'

posted by Png genki on Mon 1 Aug 2011 at 04:22

buildが必用なgemをbundlerで管理するときに、 buildオプションを指定したい場合があります。 そのような場合には、

   1  bundle config build.pg --with-pg-dir=/Library/PostgreSQL/9.0

のようにgemごとにbuildオプションを設定することが出来ます。 この設定は ~/.bundle/config に以下のように保存されます。

   1  ---
   2  BUNDLE_BUILD__PG: --with-opt-dir=/Library/PostgreSQL/9.0

posted by Png genki on Mon 13 Jun 2011 at 16:37

rake gems:unpack GEM=foo などでvender/gems 以下にunpackしたgemとbundlerを併用したい場合があります。 最近では、locale_rails-2.0.5にパッチをあてたものを利用したい局面でそうなりました。

こんな場合には、Gemfile にて

   1  gem 'locale_rails', '=2.0.5', :path => 'vendor/gems/locale_rails-2.0.5'

というように記述しておけば、unpack したgemを使ってくれます。 第二引数のversionは必須っぽいのでご注意。

posted by Png genki on Sun 29 May 2011 at 07:28

古いRailsアプリをBundler仕様にする場合、

   1  config.gem "foo",
   2    :version => "0.0.1",
   3    :lib => "bar",
   4    :source => "http://gems.github.com"

と等価なGemfileの記述方法は

   1  source "http://gems.github.com"
   2  gem "foo", "0.0.1", :require => "bar"

で良いようです。バージョン指定をしない場合は第二引数を省略可。

posted by Png genki on Wed 25 May 2011 at 08:10

Rubygemsが新しすぎると、掲題のようなエラーが出る場合があります。 とりあえず回避するには

   1  # gem update --system 1.6.2

までダウングレードすればok

posted by Png genki on Sun 15 May 2011 at 04:19

Rubygems-1.8.2 にアップデートして色々と痛い目にあっています。 ちょっと時期尚早な気がしたので、一旦過去のバージョンに戻すことに。 以下のようにすればokです。

   1  # gem update --system 1.7.1

posted by Png genki on Sun 15 May 2011 at 04:05

Rubyスクリプト中から

   1  require "hoge"

されている hoge のソースを見てみたい時には、

   1  vim `gem which hoge`.rb

すると見つけてきてくれます。

posted by Png genki on Sun 8 May 2011 at 17:22

久々にRails関連の記事です。

vendor/gems 以下に gemをunpackしたときに、以下のような警告が出てくることがあります。

   1  Unpacked gem *** in vendor/gems has no specification file.

*は適当なgemの名前)この場合、

   1  % cd vendor/gems/***
   2  % gem specification *** > .specification

を実行すれば解決します。

posted by Png genki on Sun 7 Nov 2010 at 01:19

しばらくGemをリリースしてなかったですが、gemcutterを使って 以下のようにすれば、rubygems.orgにgemをリリースできるようです。

   1  % gem push pkg/hoge-x.y.z.gem

rubygems.orgにアカウントを作っておき、gemcutterをgem installしておく必用があります。 非常に簡単になりましたね。

posted by Png genki on Wed 6 Oct 2010 at 02:02