rails pluginコマンドで簡単に出来るgemの作成方法。

gemを作成する際、rails pluginコマンドを使用していますが、余り使われていない、記事にされていない印象を受けたので記事を書きました。

Rails Engine, rails pluginコマンドについて詳細はこちらです。
http://d.hatena.ne.jp/passingloop/20110801/p1


上記の記事にはRails Engineの作成する方法にrails pluginコマンドが書いてあります。
(実際にはrails plugin new gem_name --mountable)
その際一緒にGemfileも作成されるので、gem pushするだけで実は簡単にgemの登録が出来てしまいます。

実際にやってみる

今日githubのexploreにあったdaneden/amimate.cssをGemfileに1行追加して簡単に利用出来るgemを作成し、Rubygems.orgにpushしてみます。
(https://github.com/daneden/animate.css)

Rails Engineの作成

まずrails pluginコマンド

rails plugin new animate-rails --mountable

作成されたディレクトリ内に先のcssを入れる

mkdir -p vendor/assets/stylesheets/animate
cd vendor/assets/stylesheets/animate
wget https://raw.github.com/daneden/animate.css/master/animate.min.css
mv animate.min.css index.css

animate-rails.gemspecの編集

$:.push File.expand_path("../lib", __FILE__)

# Maintain your gem's version:
require "animate-rails/version"

# Describe your gem and declare its dependencies:
Gem::Specification.new do |s|
  s.name        = "animate-rails"
  s.version     = AnimateRails::VERSION
  s.authors     = ["Masahiro Saito"]
  s.email       = ["camelmasa@gmail.com"]
  s.homepage    = "https://github.com/camelmasa/animate-rails"
  s.summary     = "animate.css for rails"
  s.description = "animate.css for rails"
                          
  s.files = Dir["{lib, vendor}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
  s.test_files = Dir["test/**/*"]
                      
  s.add_dependency "rails", "~> 3.2.9"
  # s.add_dependency "jquery-rails"
                          
  # s.add_development_dependency "sqlite3"
end

”TODO”の文言が入っている箇所を編集し、s.filesにvendorを追加します。

これでgemの完成です。
実際にRailsで読み込んでanimate.cssが動くか試してみます。

サンプルプロジェクトの作成

プロジェクトの作成

rails new animate-rails-sample

Gemfileに追加

gem 'animate-rails', path:"../animate-rails"

app/assets/stylesheets/application.cssに1行追加

*= require animate

サーバーの立ち上げ

rails s

ブラウザからhttp://localhost:3000/assets/animate/index.css?body=1にアクセス

animate.cssが表示されるのが確認できました。

Rubygems.orgに登録する

次にRubygemsに登録します。
animate-railsディレクトリに移動。

下記コマンドを実行

gem build animate-rails.gemspec

WARNING:  description and summary are identical
  Successfully built RubyGem
  Name: animate-rails
  Version: 0.0.1
  File: animate-rails-0.0.1.gem

WARNINGはdescriptionとsummaryが一緒の場合に表示されます。

最後にRubygems.orgに登録。

gem push animate-rails-0.0.1.gem

https://rubygems.org/gems/animate-rails

無事登録出来ました。

まとめ

rails pluginコマンドで簡単にgemを作成してみました。
後はgithubに登録すると色々指摘が貰えて幸せになれそうですね。

animate-railsディレクトリで

git init
hub create animate-rails
git add .
git ci -m 'first commit'
git push origin master


今回のgemはこちらにあります。
https://github.com/camelmasa/animate-rails