概説
自分でgemを作って、railsから使いたくなったので調べながらやってみました。
流れとしては
gemを作る
gitに上げる
railsから使う
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から使う
gemの指定で、githubのリポジトリをハッシュで指定します
gem 'my_gem', :git => [githubのリポジトリ]
あとはbundle install
$bundle install
~
Installing lambda_driver 1.2.4 #spec.add_dependencyで書いたgemも依存解決してくれる
~
終わり