ошибка gemspec при создании нового движка rails

#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