Я написал движок Rails под названием annotator-store. Для этого требуется явный require 'annotator_store'
в /config/application.rb
в основном приложении (даже если он находится в Gemfile). Это сбивает меня с толку, потому что я написал гем до того, как это не нужно делать.
Это поведение движков Rails по дизайну, или я что-то упустил?
Вот мой файл gemspec:
$:.push File.expand_path('../lib', __FILE__)
require 'annotator_store/version'
Gem::Specification.new do |spec|
spec.name = 'annotator-store'
spec.version = AnnotatorStore::VERSION
spec.date = Time.new.getutc.strftime('%Y-%m-%d')
spec.authors = ["Job King'ori Maina"]
spec.email = ['[email protected]']
spec.homepage = 'http://itsmrwave.github.io/annotator-store'
spec.summary = 'Rails engine to implement a Ruby backend store implementation for Annotator.'
spec.description = 'Rails engine to implement a Ruby backend store implementation for Annotator, an open-source JavaScript library to easily add annotation functionality to any webpage.'
spec.license = 'MIT'
spec.files = Dir['{app,config,db,lib}/**/*', 'CHANGELOG.md', 'CONTRIBUTING.md', 'LICENSE.md', 'Rakefile', 'README.md']
spec.require_paths = ['lib']
spec.required_ruby_version = '>= 1.9.3'
# Database dependencies
spec.add_development_dependency 'mysql2'
spec.add_development_dependency 'pg'
# Development dependencies
spec.add_development_dependency 'appraisal'
spec.add_development_dependency 'database_cleaner'
spec.add_development_dependency 'factory_girl_rails'
spec.add_development_dependency 'faker'
spec.add_development_dependency 'json-schema'
spec.add_development_dependency 'rspec-rails'
# Runtime dependencies
spec.add_runtime_dependency 'jbuilder'
spec.add_runtime_dependency 'rails', '>= 4.0'
end
Как видите, я добавил папку lib
в папку require_paths
. Согласно документации gemspec на rubygems.org... что делает require_paths=(val)
и что это ...
Пути в драгоценном камне для добавления к
$LOAD_PATH
при активации этого драгоценного камня.
Я правильно настроил все в папке lib
, так что когда вы require 'annotator_store'
все работает отлично.
Что мне не хватает?