Edited at

gemを作ってgithubに上げてrailsから使ってみる

More than 3 years have passed since last update.


概説

自分でgemを作って、railsから使いたくなったので調べながらやってみました。

流れとしては


  • gemを作る


  • gitに上げる


  • railsから使う



gemを作る


参考:君がOpsでもRubyで書いたライブラリはGemで配ろう


シェルからbundle gemを実行してgemの雛形を作ります

$bundle gem my_gem

create my_gem/Gemfile
create my_gem/Rakefile
create my_gem/LICENSE.txt
create my_gem/README.md
create my_gem/.gitignore
create my_gem/my_gem.gemspec
create my_gem/lib/my_gem.rb
create my_gem/lib/my_gem/version.rb

次にmy_gem.gemspecを編集

今回はlambda_driverを使うということにします


my_gem.gemspec

# coding: utf-8

lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'my_gem/version'

Gem::Specification.new do |spec|
spec.name = "my_gem"
spec.version = MyGem::VERSION
spec.authors = ["techno-tanoC"]
spec.email = ["techno.tanoc@gmail.com"]
spec.summary = %q{my gem for sample} #summaryを編集
spec.description = %q{my gem for sample} #descriptionを編集
spec.homepage = ""
spec.license = "MIT"

spec.files = `git ls-files -z`.split("\x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]

spec.add_development_dependency "bundler", "~> 1.6"
spec.add_development_dependency "rake"
spec.add_dependency "lambda_driver" #依存するライブラリを追加
end


spec.add_development_dependencyは開発用のgemで、railsでbundle installする時にはインストールされません。

spec.add_dependencyに書くと、railsでbundle installする時にインストールされるので、実行時に必要なものはこちらへ。


githubに上げる

普通にpushするだけ

$git init

$git add .
$git commit -m "version 0.0.1"
$git remote add origin [githubのリポジトリ]
$git push origin master


railsから使う


参考:Gems from git repositories


gemの指定で、githubのリポジトリをハッシュで指定します

gem 'my_gem', :git => [githubのリポジトリ]

あとはbundle install

$bundle install

~
Installing lambda_driver 1.2.4 #spec.add_dependencyで書いたgemも依存解決してくれる
~

終わり