プロジェクト全体で使用したいいくつかのクラスを含む最初の ruby gem を構築しようとしています。この質問のために、それは test_service_api と呼ばれます。
「gem build test_service_api.spec」を使用して、gem を作成およびビルドしました。次に、「gem install test_service_api-0.0.2.gem」を実行しました。
仕様ファイルは次のとおりです。
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/test_service_api/version', __FILE__)
Gem::Specification.new do |gem|
gem.authors = ["Tyler Power"]
gem.email = ["tyler@xxx.com"]
gem.description = %q{}
gem.summary = %q{}
gem.homepage = ""
gem.files = `git ls-files`.split($\)
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.name = "test_service_api"
gem.require_paths = ["lib"]
gem.version = TestServiceApi::VERSION
end
私は今、小さなテスト プロジェクトで gem を使用しようとしています。テスト プロジェクト Gemfile では、ビルドした gem への依存関係を指定しました。
source 'https://rubygems.org'
gem 'sinatra'
gem 'test_service_api'
その後、「バンドル インストール」を実行すると、バンドラーがすべての依存関係を正しく検出し、それらをベンダー/キャッシュに配置します。
Tylers-MacBook-Pro:Test tyler$ bundle install
Using rack (1.4.1)
Using rack-protection (1.2.0)
Using test_service_api (0.0.2)
Using tilt (1.3.3)
Using sinatra (1.3.2)
Using bundler (1.1.3)
Updating .gem files in vendor/cache
Your bundle is complete! It was installed into ./vendor/bundle
これまでのところすべてがうまくいくように、私が抱えている問題は、テストプロジェクトのソースファイルでgemを要求しようとすると、それが見つからないということです:
require 'rubygems'
require 'sinatra'
require 'test_service_api'
get '/' do
res = ''
ENV.each do |k, v|
res << "#{k}: #{v}<br/>"
end
res
end
私の IDE は「ロードするファイルがありません」と文句を言います。アプリを実行しようとすると、次のようになります。
./app.rb:3:in `require': no such file to load -- test_service_api (LoadError)
from ./app.rb:3
私は髪を引き抜くところです...これを解決する方法について誰かアイデアがありますか?