最小限度の Ruby Gem 作成と公開
必要最小のgemの作り方とインストール - ザリガニが見ていた...。
RubyGems.orgで公開する手順 - ザリガニが見ていた...。
このブログ記事に尽きている(感謝!)。あとは RubyGems.org の記述を参考に。
mygtk.rb を oekaki.rb として Gem 'oekaki' を作成した。
- oekakiフォルダを作成、その中にさらに lib フォルダを作って、oekaki.rb を入れる。
- oekakiフォルダの中に oekaki.gemspec を作成(書き方は上記事を参考に)。
- oekakiフォルダの中に移動して $ rbenv exec gem build oekaki.gemspec で Gem 作成。
- 同じ階層で $ rbenv exec gem install oekaki でインストール完了。
RubyGems.org への公開。
- まず、APIキーの作成と登録。RubyGems.org の [Edit profile] のところに「$ curl -u obelisk68 https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials」とか出ているので、それをコピペして実行するのが早い。これは次回からは不要。
- oekakiフォルダから $ rbenv exec gem push oekaki-0.0.1.gem を実行。これでアップロードされる。簡単!
- 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 ???