require "rake_shared_context/version"
require "rake"

if defined? RSpec::SharedContext
  shared_context "rake" do
    let(:rake)      { Rake::Application.new }
    let(:task_name) { self.class.top_level_description }
    let(:task_path) { "lib/tasks/#{task_name.split(":").first}" }
    subject         { rake[task_name] }

    def loaded_files_excluding_current_rake_file
      $".reject {|file| file == Rails.root.join("#{task_path}.rake").to_s }
    end

    before do
      Rake.application = rake
      Rake.application.rake_require(task_path, [Rails.root.to_s], loaded_files_excluding_current_rake_file)

      Rake::Task.define_task(:environment)
    end
  end
end

require "rake_shared_context/version"
require "rake"

begin
  require "rspec/core"
  shared_context "rake" do
    let(:rake)      { Rake::Application.new }
    let(:task_name) { self.class.top_level_description }
    let(:task_path) { "lib/tasks/#{task_name.split(":").first}" }
    subject         { rake[task_name] }

    def loaded_files_excluding_current_rake_file
      $".reject {|file| file == Rails.root.join("#{task_path}.rake").to_s }
    end

    before do
      Rake.application = rake
      Rake.application.rake_require(task_path, [Rails.root.to_s], loaded_files_excluding_current_rake_file)

      Rake::Task.define_task(:environment)
    end
  end
rescue LoadError
end

Fix bug that raise error when running guard
Fix bug that raise error when running guard
