#ruby-on-rails #ruby-on-rails-plugins #rails-engines
#ruby-on-rails #ruby-on-rails-plugins #rails-движки
Вопрос:
Я пытаюсь создать движок rails, используя приведенную ниже ссылку:http://guides.rubyonrails.org/engines.html
Я получил следующие ошибки
У вас есть одна или несколько недопустимых gemspec, которые необходимо исправить. Спецификация gemspec в /home/shariq/Documents/plugin/blorgh/blorgh.gemspec недопустима. Пожалуйста, исправьте эту gemspec.
Ошибка проверки была '"FIXME" or "TODO" is not a description'
Я уже пробовал обновление пакета и установку пакета
Вот вся моя работа
журнал
shariq@SDEV-MACHINE:~/Documents/plugin$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
shariq@SDEV-MACHINE:~/Documents/plugin$ rails -v
Rails 5.0.0.1
shariq@SDEV-MACHINE:~/Documents/plugin$ mysql --version
mysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using EditLine wrapper
shariq@SDEV-MACHINE:~/Documents/plugin$ rails plugin new blorgh --mountable -d mysql
create
create README.md
create Rakefile
create blorgh.gemspec
create MIT-LICENSE
create .gitignore
create Gemfile
create app
create app/controllers/blorgh/application_controller.rb
create app/helpers/blorgh/application_helper.rb
create app/jobs/blorgh/application_job.rb
create app/mailers/blorgh/application_mailer.rb
create app/models/blorgh/application_record.rb
create app/views/layouts/blorgh/application.html.erb
create app/assets/images/blorgh
create app/assets/images/blorgh/.keep
create config/routes.rb
create lib/blorgh.rb
create lib/tasks/blorgh_tasks.rake
create lib/blorgh/version.rb
create lib/blorgh/engine.rb
create app/assets/config/blorgh_manifest.js
create app/assets/stylesheets/blorgh/application.css
create app/assets/javascripts/blorgh/application.js
create bin/rails
create test/test_helper.rb
create test/blorgh_test.rb
append Rakefile
create test/integration/navigation_test.rb
vendor_app test/dummy
run bundle install
You have one or more invalid gemspecs that need to be fixed.
The gemspec at /home/shariq/Documents/plugin/blorgh/blorgh.gemspec is not valid. Please fix this gemspec.
The validation error was '"FIXME" or "TODO" is not a description'
shariq@SDEV-MACHINE:~/Documents/plugin$
вот файл gemspec:
##### log #######
$:.push File.expand_path("../lib", __FILE__)
require "blorgh/version"
Gem::Specification.new do |s|
s.name = "blorgh"
s.version = Blorgh::VERSION
s.authors = ["Shariq"]
s.email = ["gr8shariq@live.com"]
s.homepage = "TODO"
s.summary = "TODO: Summary of Blorgh."
s.description = "TODO: Description of Blorgh."
s.license = "MIT"
s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]
s.add_dependency "rails", "~> 5.0.0", ">= 5.0.0.1"
end
Ответ №1:
Ошибка не требует пояснений. Вы должны заменить строки «TODO» в gemspec некоторыми «актуальными» описаниями.
Комментарии:
1. моя проблема решена, спасибо. но при создании каждого движка требуется модификация? или есть способ ее решить?
Ответ №2:
В репозитории rails уже закрыта проблема #26474
:
rails plugin new
не завершается должным образом, начиная с пакета 1.12
Член команды Ruby on Rails випулнсвард сказал:
Мы не устанавливаем пакет сейчас — fbd1e98
fbd1e98
сообщение о фиксации объясняет:
Не запускайтесь
bundle install
при создании нового плагина.Начиная с bundler 1.12.0, gemspec проверяется, поэтому
bundle install
команда завершится ошибкой сразу после создания gem, что приведет к путанице у пользователей. Это изменение было исправлением ошибки для правильной проверки gemspecs.
Добавьте опцию -B
для пропуска bundle install
:
rails plugin new NAME -B
Если вам нужно запустить bundler, вы можете удалить все вхождения TODO
и FIXME
из вашего .gemspec
файла, а затем запустить bundle install
.
Ответ №3:
Я столкнулся с проблемой сегодня. Вот что я сделал (git diff), чтобы выжить.
@@ -9,15 9,15 @@ Gem::Specification.new do |spec|
spec.version = Blorgh::VERSION
spec.authors = ["Torvalds Du"]
spec.email = ["torvalds@ekohe.com"]
- spec.homepage = "TODO"
- spec.summary = "TODO: Summary of Blorgh."
- spec.description = "TODO: Description of Blorgh."
spec.homepage = ""
spec.summary = "Summary of Blorgh."
spec.description = "Description of Blorgh."
spec.license = "MIT"
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
# to allow pushing to a single host or delete this section to allow pushing to any host.
if spec.respond_to?(:metadata)
- spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
spec.metadata["allowed_push_host"] = "http://mygemserver.com"
else
raise "RubyGems 2.0 or newer is required to protect against "
"public gem pushes."
следовательно, вы должны удалить весь текст TODO
из gem_name.gemspec
.
Удачи.
Ответ №4:
Поместите это вместо.
Gem::Specification.new do |spec|
...
spec.homepage = "https://example.com"
spec.summary = "Summary of App."
spec.description = "Description of App."
spec.metadata["allowed_push_host"] = spec.homepage
spec.metadata["homepage_uri"] = spec.homepage
spec.metadata["source_code_uri"] = spec.homepage
spec.metadata["changelog_uri"] = spec.homepage
...
end