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
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を追加します。
サンプルプロジェクトの作成
プロジェクトの作成
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に登録すると色々指摘が貰えて幸せになれそうですね。
git init hub create animate-rails git add . git ci -m 'first commit' git push origin master
今回のgemはこちらにあります。
https://github.com/camelmasa/animate-rails