やーまんぶろぐ

気が向いた時にだけ書くブログ

RubyGemを自作してローカルで動かす方法

RubyGemを自作してローカルで動かしてみました。

下のリンクを参考にしています。
morizyun.github.io

まずはテスト動かすところまでメモしていきます。

THETA Sのgemを作成する予定なので名前はruby_thetaで進めていきます。

RICOH THETA S 360度 全天球カメラ 910720

RICOH THETA S 360度 全天球カメラ 910720

雛形作成

bundle gem ruby_theta -t
  • (ハイフン)を使うと、階層ができてしまったので_(アンスコ)を使いました。

gemspecの修正

修正した箇所だけメモしておきます。

  spec.summary       = %q{Small library to work with theta.}
  spec.description   = %q{https://github.com/yamano/ruby_theta}
  spec.homepage      = "http://yamano3201.hatenablog.jp"

  spec.add_development_dependency "pry"
  spec.add_development_dependency "vcr"
  spec.add_development_dependency "webmock"
  spec.add_dependency "httparty"

使いそうなgemは既に追加しておきました。
add_development_dependency は開発時だけ必要なgemで、add_dependency は本番で必要なgemになります。

Gemの実装

lib/ruby_theta.rb に実装していきます。

require "ruby_theta/version"

module RubyTheta
  def self.greet
    'Hello World!'
  end
end

実行コマンドを実行

事前にbundle install しておきます。
そして、bin/run_ruby_theta を追加します。

#!/usr/bin/env ruby

require 'ruby_theta'

puts RubyTheta.greet

実行するには権限が必要です。

chmod 755 bin/run_ruby_theta
./bin/run_ruby_theta

正しく動くことを確認しましょう。

Rspecを書いて実行

spec/ruby_theta_spec.rb に下の部分を追加してみます。

  describe '#greet' do
    it 'returns "Hello World!"' do
      expect(RubyTheta.greet).to eq('Hello World!')
    end
  end

Rakeコマンドで実行します。

bundle exec rake spec

これでローカルで動かすことができました。

最後に

参考にした記事とほとんど同じになってしまいました。。
もう少し書いたらgithubにも上げたいと思います。

気が向いたら、また書きます。