Assets.github.com%2fimages%2fgravatars%2fgravatar-user-420

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

  • Assets.github.com%2fimages%2fgravatars%2fgravatar-user-420 camelmasa posted in (Edited )
  • hayori@github
  • sexmachinegunmu@github
  • 14021939
  • kuboon
  • yahihi@github
  • yaotti
  • camelmasa
  • skyriser@github
  • bamtsk
  • sue738
  • shindo-r@github
  • tomiacannondale@github
  • YuuShigetani@github
  • yancya
  • kitak
  • yuua0216
  • lunchub
  • kitaindia
Edit

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の編集

Ruby
$:.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にアクセス

Hatena

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
Hatena

無事登録出来ました。

まとめ

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



Sign up and follow camelmasa :)

Sign up with GitHub/Twitter

x close