Edited at

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

More than 5 years have passed since last update.

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