Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2021-08-27 21:09:27 +00:00
parent db4d102e60
commit 30c06def1c
2 changed files with 48 additions and 0 deletions

View file

@ -0,0 +1,27 @@
# frozen_string_literal: true
# This can be removed after the problem gets fixed on upstream.
# You can follow https://github.com/ruby-grape/grape-entity/pull/355 to see the progress.
#
# For more information about the issue;
# https://github.com/ruby/did_you_mean/issues/158#issuecomment-906056018
require 'grape-entity'
module Grape
class Entity
# Upstream version: https://github.com/ruby-grape/grape-entity/blob/675d3c0e20dfc1d6cf6f5ba5b46741bd404c8be7/lib/grape_entity/entity.rb#L520
def exec_with_object(options, &block)
if block.parameters.count == 1
instance_exec(object, &block)
else
instance_exec(object, options, &block)
end
rescue StandardError => e
# it handles: https://github.com/ruby/ruby/blob/v3_0_0_preview1/NEWS.md#language-changes point 3, Proc
raise Grape::Entity::Deprecated.new e.message, 'in ruby 3.0' if e.is_a?(ArgumentError)
raise e
end
end
end

View file

@ -0,0 +1,21 @@
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'Grape::Entity patch' do
let(:entity_class) { Class.new(Grape::Entity) }
describe 'NameError in block exposure with argument' do
subject(:represent) { entity_class.represent({}, serializable: true) }
before do
entity_class.expose :raise_no_method_error do |_|
foo
end
end
it 'propagates the error to the caller' do
expect { represent }.to raise_error(NameError)
end
end
end