最小限度の Ruby Gem 作成と公開

必要最小のgemの作り方とインストール - ザリガニが見ていた...。
RubyGems.orgで公開する手順 - ザリガニが見ていた...。
このブログ記事に尽きている(感謝!)。あとは RubyGems.org の記述を参考に。


mygtk.rb を oekaki.rb として Gem 'oekaki' を作成した。

  1. oekakiフォルダを作成、その中にさらに lib フォルダを作って、oekaki.rb を入れる。
  2. oekakiフォルダの中に oekaki.gemspec を作成(書き方は上記事を参考に)。
  3. oekakiフォルダの中に移動して $ rbenv exec gem build oekaki.gemspec で Gem 作成。
  4. 同じ階層で $ rbenv exec gem install oekaki でインストール完了。


RubyGems.org への公開。

  1. まず、APIキーの作成と登録。RubyGems.org の [Edit profile] のところに「$ curl -u obelisk68 https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials」とか出ているので、それをコピペして実行するのが早い。これは次回からは不要。
  2. oekakiフォルダから $ rbenv exec gem push oekaki-0.0.1.gem を実行。これでアップロードされる。簡単!
  3. RubyGems.org で「oekaki」で検索してみると見事にヒット。やったね!
    oekaki | RubyGems.org | your community gem host

何という簡単…。

よろしかったら使ってみて下さい。使い方は以下。
GTK+でお絵かきしてみた(Ruby) - Camera Obscura


サンプルコード。

require 'oekaki'
include Math

L = 400
R1 = 150; R2 = (L - R1 * 2) / 2 - 5
STP1 = (PI / 180) * 0.5; STP2 = (PI / 180) * 10

Oekaki.app width: L, height: L do
  draw do
    color(0, 0, 0)
    rectangle(true, 0, 0, L, L)
  end

  i = 0

  timer(20) do
    x = L / 2 + (R1 * cos(STP1 * i) + R2 * cos(STP2 * i))
    y = L / 2 - (R1 * sin(STP1 * i) + R2 * sin(STP2 * i))
    color(0, 65535, 0)
    arc(false, x, y, 3, 3, 0, 64 * 360)
    i += 1
  end

  key_in do |w, e|
    Gtk.main_quit if e.keyval == Gdk::Keyval::GDK_Return
  end
end


なお、Bundler での Gem のアップデートは
$ bundle update oekaki
でOK。

※追記
アップデートで「Bundler attempted to update oekaki but its version stayed the same」が出たら、

$ bundle exec gem uninstall oekaki
$ bundle update oekaki

をやってみる。または Gemfile.lock をいじる。

もしかしたら、Gemfile.lock のその Gem に関する記述を除いて bundle update oekaki ???