не удается загрузить такую ошибку файла при запуске локального gem

#ruby

#ruby

Вопрос:

Я пытаюсь протестировать простой локальный драгоценный камень, над которым я работаю, но я получаю сообщение об ошибке при локальном тестировании драгоценного камня. Я установил путь к локальному gem в Gemfile моего проекта.

Gemfile

 # frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rake"

gem "valet-tasks", path: "../../Gems/valet-tasks"
 

Rakefile

 
require 'valet-tasks'
 

Это ошибка, которую я получаю:

 rake -T --trace
rake aborted!
LoadError: cannot load such file -- valet-tasks
/Users/myuser/Sites/mysite/Rakefile:2:in `<top (required)>'
 

Вот как выглядит мой драгоценный камень valet-tasks:

Gemfile

 # frozen_string_literal: true

source "https://rubygems.org"

# Specify your gem's dependencies in valet-tasks.gemspec
gemspec

gem "rake", "~> 13.0"
 

lib/valet-tasks.rb

 # frozen_string_literal: true

require 'rake'
require 'rake/tasklib'

require_relative "valet-tasks/version"
require_relative 'valet-tasks/hello'

module ValetTasks
  class Error < StandardError; end
  # Your code goes here...
end
 

lib/valet-tasks/hello.rb

 module ValetTasks
  module Task
    include Rake::DSL if defined? Rake::DSL

      class Hello < ::Rake::TaskLib
      def initialize
        super

        namespace :hello do
          desc 'Prints hello'
          task :one do
            puts 'Testing one two three'
          end
        end

      end
    end
  end
end

ValetTasks::Task::Hello.new
 

Я чувствую, что все настроено правильно. Может ли быть так, что это невозможно внутри файла Rakefile?

Ответ №1:

Похоже, вам не хватает bundle exec

 bundle exec rake -T
 

Комментарии:

1. Спасибо, что сработало. Как только я установлю Gem без использования удаленного пути, смогу ли я вызвать команду без bundle exec ?

2. Нет, вам все равно понадобится bundle exec . В качестве альтернативы, вы могли бы добавить require 'bundler/setup' в свой Rakefile .