LoginSignup
8
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-09-15

概説

自分で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も依存解決してくれる
~

終わり

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8