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